views.py 1.18 KB
Newer Older
1
from django.template import RequestContext
2
from website.models import Facility, OpenTime, BaseModel
3
from website.api import export_data
4
from django.shortcuts import render_to_response
5
6
7
8
from django.http import HttpResponse
from django.views.decorators.http import condition
import hashlib
import json
Daniel Bond's avatar
Daniel Bond committed
9

10

11
12
def facility_grid(request):
    """Display the facilities in a grid. Main page."""
13
14
15
16
    if 'sort' in request.GET:
        if request.GET['sort'] == 'location':
            # Display the grid by location (instead of listing alphabetically)
            pass  # Not implemented yet
17
    return render_to_response('facility_grid.html', 
18
            context_instance=RequestContext(request))
19
20
21
22
23
24
25
26
27
28
29
30

def gen_etag(request):
    return hashlib.sha1(str(OpenTime.objects.all())).hexdigest()

def gen_last_modified(request):
    return BaseModel.objects.all().order_by('-last_modified')[0].last_modified


@condition(etag_func=gen_etag, last_modified_func=gen_last_modified)
def ajax_schedule_data(request):
    # Wrapping up in an object to avoid possible CSRF attack on top-level
    # arrays in JSON objects
Renfred Harper's avatar
Renfred Harper committed
31
    return HttpResponse(json.dumps({'data': export_data()}, indent=4),
32
33
            content_type="application/json")