#Create your views here

from django.shortcuts import render_to_response
from django.template import RequestContext
from wavedash.src.WavedashController import Controller
import wavedash.src.WaveformModel
from django.contrib.auth.decorators import login_required

"""Creates views to display the nodes
Gets the status of the nodes
Creates the tuples for each node position for the maps.
"""

"""
Returns the floor_list array which stores the status of the node as ip of the node.
@return the floor_list array that has the ip address of the node.
"""
def setFloorNodes():
	floorBuffer = 10 #used to calculate the ip address of the node
	floor1_usrp_status=[0,0,0,1,0,0,0,0,0,1,0,0]
	floor2_usrp_status=[1,1,0,1,0,1,0,1,0,0,1,0]
	floor3_usrp_status=[1,1,1,1,1,1,1,0,1,0,0,1]
	floor4_usrp_status=[1,0,1,1,0,0,1,0,0,1,0,0]
	floor_list=[floor1_usrp_status, floor2_usrp_status, floor3_usrp_status, floor4_usrp_status]
	for floor in floor_list:
		for index in range(len(floor)):
			floor[index] = floor[index]*(index+1+floorBuffer)
		floorBuffer += 12
	return floor_list
	
'''
Displays the static ossie interface page, which also has the javascript built into it.
'''
def ossie_view(request):
	return render_to_response("HtmlPages/ossie.html", locals(), context_instance=RequestContext(request))

'''
Declares the pixel value location of the nodes relative to the map.
Each coordinate is (x,y) where x is the width and y is the height from the relative origin
Also sets the floor_list with setFloorNodes()
'''
def map_view(request, floor_num):
	floor=floor_num
	node_position_1 = ((169,711),(170,651),(170,597),(211,576),(170,512),(170,449),(190,394),(170,334),(194,298),(170,247),(192,210),(158,145))
	node_position_2 = ((168,708),(168,639),(168,590),(200,542),(168,508),(204,431),(229,400),(168,338),(204,324),(204,273),(204,228),(204,193))
	node_position_3 = ((175,705),(175,653),(175,598),(206,558),(175,518),(209,452),(236,404),(158,377),(209,333),(210,285),(209,250),(207,206))
	node_position_4 = ((184,712),(184,666),(184,613),(219,557),(184,517),(222,437),(248,405),(168,372),(221,335),(220,275),(214,226),(219,190))
	floor_list = setFloorNodes()
	return render_to_response("HtmlPages/map.html", locals(), context_instance=RequestContext(request))

"""
Defines a range for how many nodes are on each floor.
Also sets the floor_list with setFloorNodes()
"""
def grid_view(request):
	number_of_nodes=range(1,13)
	floor_list = setFloorNodes()
	return render_to_response("HtmlPages/grid.html", locals(), context_instance=RequestContext(request))

"""
Testing	
"""
def node_menu(request):
	nodes=[Node(id=3-1, ip=33),
		Node(id=3-2, ip=34),
		Node(id=3-3, ip=35), 
		Node(id=3-4, ip=36), 
		Node(id=3-5, ip=37), 
		Node(id=3-6, ip=38)]
	return render_to_response("HtmlPages/node_menu.html", locals(), context_instance=RequestContext(request))

#@login_required
def loadNode(request, node_num):
	return render_to_response("HtmlPages/nodes.html", locals(), context_instance=RequestContext(request))

def properties_page(request):
	return render_to_response('HtmlPages/properties.html', locals(), context_instance=RequestContext(request))

def tasks_page(request):
	return render_to_response('HtmlPages/tasks.html', locals(), context_instance=RequestContext(request))

def workspace_page(request):
	return render_to_response('HtmlPages/workspace.html', locals(), context_instance=RequestContext(request))

#@login_required
#def views_page(request, view_type):
#	view = view_type
#	floor_list = setFloorNodes()
#	grid=range(1,13)
#	node_positions_floor_1 = ((169,711),(170,651),(170,597),(211,576),(170,512),(170,449),(190,394),(170,334),(194,298),(170,247),(192,210),(158,145))
#	return render_to_response('HtmlPages/views.html', locals(), context_instance=RequestContext(request))
