summaryrefslogtreecommitdiff
path: root/inventory/fabmap/views.py
blob: 2e080e4304de21c8d24c3d7c3affd1b6755e92c9 (plain)
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
import settings
from django.shortcuts import render_to_response
from fabmap.models import *
from fabmap.xmlrpc import *
from django.http import HttpResponse
from django.contrib.auth.models import User
import simplejson
import time

def index(request):
        addsiteform = SiteForm(auto_id="addsite_")
        editsiteform = SiteForm(auto_id="editsite_")
        return render_to_response("fabmap/index.html", {"addsiteform": addsiteform, "editsiteform": editsiteform, "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(GetSiteList()))
        else:
                # FIXME: This isn't actually a real search function at the moment.
                return HttpResonse(simplejson.encode(GetSiteList()))

def setsite(request):
        if not request.has_key('siteid'):
                return HttpResponse(simplejson.encode({'error': 'Must supply site ID'}))
        
        siteid = request.GET['siteid']
        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
                        
        SetSite(siteid, **vars)

def getsite(request):
        if not request.GET['siteid']:
                return HttpResponse(simplejson.encode({'error': 'Must supply site ID'}))
        return HttpResponse(simplejson.encode(GetSiteDetails(request.GET['siteid'])))

def addsite(request):
        # Handle Add Site requests
        response = {'saved': False, 'error': "Not handled"}

        siteform = SiteForm(request.GET)
        
        if not request.user.is_authenticated():
                response["error"] = "You must be logged in to register sites."
                return HttpResponse(simplejson.encode(response))
                
        if siteform.is_valid():
                site = siteform.save(commit=False)
                site.manager = request.user
                site.save()
                response["saved"] = True
                return HttpResponse(simplejson.encode(response))
        else:
                response["error"] = "Must fill required fields."
                response["newtable"] = siteform.as_table()
                return HttpResponse(simplejson.encode(response))

def sitedetails(request):
        # Return very detailed information about a site.
        if not request.GET.has_key('siteid'):
                return HttpResponse(simplejson.encode({'error': 'Must supply ID'}))
        
        return HttpResponse(simplejson.encode(GetSiteDetails(request.GET['siteid'])))
        

def addequipment(request):
        return HttpResponse("")
        
def addequipmenttype(request):
        return HttpResponse("")

def siteoutput(request):
        if type(request) == int:
                siteid = request
        else:
                siteid = request.GET['siteid']
                
        site = GetSiteDetails(siteid)
        datetime = time.ctime()

        return {"site": site, "time": datetime}

def sitetoxml(request): 
        return render_to_response("fabmap/site.xml", siteoutput(request))

def sitetoyaml(request):
        return render_to_response("fabmap/site.yaml", siteoutput(request))