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()
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()
def location(request): """ Just returns location JSON. """ location = location_from_request(request) return HttpResponse(json.dumps(location, cls=DjangoJSONEncoder))