Example #1
0
def trace_object(request, trace_uuid):
    """ Displays detail of the given Trace.
    Updates related mongo instance if necessary 
    (Serves regular GET and Ajax PUT from Backbone.js). """

    trace = get_object_or_404(Trace, uuid=trace_uuid)
    location = location_from_request(request)
    center = (location['latitude'], location['longitude'])

    fire_start = 'fire_start' in request.GET
    db = Trace.mongo_objects.db
    traces_mongo = db.find_one(dict(uuid=trace.uuid))
    if not traces_mongo:
        traces_mongo = dict(uuid=trace.uuid, points=[])
        db.insert(traces_mongo)

    if request.method == 'PUT':
        trace_dict = json.loads(request.raw_post_data)
        if 'points' in trace_dict:
            traces_mongo['points'].extend(trace_dict['points'])
            db.save(traces_mongo)
        return HttpResponse(json.dumps(traces_mongo, cls=MongoJSONEncoder))

    traces = get_traces(request).exclude(pk=trace.pk)
    points = traces_mongo and traces_mongo['points'] or []
    points = json.dumps(points)
    return locals()
Example #2
0
def index(request, country_slug=None, city_slug=None):
    """ A Home page """
    location = location_from_request(request)
    center = (location['latitude'], location['longitude'])
    city = location['city']
    traces = get_traces(request)
    return locals()
Example #3
0
def index(request, country_slug=None, city_slug=None):
    """ A Home page """
    location = location_from_request(request)
    center = (location['latitude'], location['longitude'])
    city = location['city']
    traces = get_traces(request)
    return locals()
Example #4
0
def trace_object(request, trace_uuid):
    """ Displays detail of the given Trace.
    Updates related mongo instance if necessary 
    (Serves regular GET and Ajax PUT from Backbone.js). """

    trace = get_object_or_404(Trace, uuid=trace_uuid)
    location = location_from_request(request)
    center = (location['latitude'], location['longitude'])

    fire_start = 'fire_start' in request.GET
    db = Trace.mongo_objects.db
    traces_mongo = db.find_one(dict(uuid=trace.uuid))
    if not traces_mongo:
        traces_mongo = dict(uuid=trace.uuid, points=[])
        db.insert(traces_mongo)

    if request.method == 'PUT':
        trace_dict = json.loads(request.raw_post_data)
        if 'points' in trace_dict:
            traces_mongo['points'].extend(trace_dict['points'])
            db.save(traces_mongo)
        return HttpResponse(json.dumps(traces_mongo, cls=MongoJSONEncoder))

    traces = get_traces(request).exclude(pk=trace.pk)
    points = traces_mongo and traces_mongo['points'] or []
    points = json.dumps(points)
    return locals()
Example #5
0
def location(request):
    """ Just returns location JSON. """
    location = location_from_request(request)
    return HttpResponse(json.dumps(location, cls=DjangoJSONEncoder))