1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
import settings
from django.shortcuts import render_to_response
from locations.models import *
from locations.xmlrpc import *
from django.http import HttpResponse
from django.contrib.auth.models import User
import simplejson
import time
def index(request):
addlocationform = LocationForm(auto_id="addlocation_")
editlocationform = LocationForm(auto_id="editlocation_")
return render_to_response("locations/index.html",
{"addlocationform": addlocationform,
"editlocationform": editlocationform,
"user": request.user,
"userauthed": request.user.is_authenticated()})
def search(request):
# Handle search requests
query = request.GET['q']
if not query or query == "":
return HttpResonse(simplejson.encode(GetLocationList()))
else:
# FIXME: This isn't actually a real search function at the moment.
return HttpResonse(simplejson.encode(GetLocationList()))
def setlocation(request):
if not request.has_key('locationid'):
return HttpResponse(simplejson.encode({'error': 'Must supply location ID'}))
locationid = request.GET['locationid']
vars = {}
for a in ('name', 'locname', 'latitude', 'longitude', 'website', 'access'):
if request.GET.has_key(a):
vars[a] = request.GET[a]
else:
vars[a] = None
SetLocation(locationid, **vars)
def getlocation(request):
if not request.GET['locationid']:
return HttpResponse(simplejson.encode({'error': 'Must supply location ID'}))
return HttpResponse(simplejson.encode(GetLocationDetails(request.GET['locationid'])))
def addlocation(request):
# Handle Add Location requests
response = {'saved': False, 'error': "Not handled"}
locationform = LocationForm(request.GET)
if not request.user.is_authenticated():
response["error"] = "You must be logged in to register locations."
return HttpResponse(simplejson.encode(response))
if locationform.is_valid():
location = locationform.save(commit=False)
location.manager = request.user
location.save()
response["saved"] = True
return HttpResponse(simplejson.encode(response))
else:
response["error"] = "Must fill required fields."
response["newtable"] = locationform.as_table()
return HttpResponse(simplejson.encode(response))
def locationdetails(request):
# Return very detailed information about a location.
if not request.GET.has_key('locationid'):
return HttpResponse(simplejson.encode({'error': 'Must supply ID'}))
return HttpResponse(simplejson.encode(GetLocationDetails(request.GET['locationid'])))
def addequipment(request):
return HttpResponse("")
def addequipmenttype(request):
return HttpResponse("")
def locationoutput(request):
if type(request) == int:
locationid = request
else:
locationid = request.GET['locationid']
location = GetLocationDetails(locationid)
datetime = time.ctime()
return {"location": location, "time": datetime}
def locationtoxml(request):
return render_to_response("locations/location.xml", locationoutput(request))
def locationtoyaml(request):
return render_to_response("locations/location.yaml", locationoutput(request))
|