diff options
Diffstat (limited to 'chimere/views.py')
| -rw-r--r-- | chimere/views.py | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/chimere/views.py b/chimere/views.py index 7c02216..f58b7ec 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -604,10 +604,17 @@ def getGeoObjects(request, area_name, category_ids, status): idx = 0 current_cat = c_cat colors = list(Color.objects.filter(color_theme = c_cat.color_theme)) + color = '000' if colors: - jsons.append(route.getGeoJSON(color=colors[idx % len(colors)].code)) - else: - jsons.append(route.getGeoJSON(color='000')) + color = colors[idx % len(colors)].code + if '#' not in color: + color = '#' + color + base_dct = {"type":"Feature", + "properties":{ + "color":color + } + } + jsons.append(route._getItems(base_dct)) idx += 1 try: q = checkDate(Q(status__in=status, categories__in=category_ids)) @@ -615,10 +622,28 @@ def getGeoObjects(request, area_name, category_ids, status): except: return HttpResponse('no results') category_ids = [int(cat_id) for cat_id in category_ids] - jsons += [geo_object.getGeoJSON(category_ids) for geo_object in list(query)] + for category_id in category_ids: + if not category_id: + continue + cat = SubCategory.objects.get(pk=category_id) + base_dct = {"type":"Feature", + "properties":{ + "icon_path":unicode(cat.icon.image), + "icon_hover_path":cat.hover_icon.image \ + if cat.hover_icon else '', + "icon_width":cat.icon.image.width, + 'icon_height':cat.icon.image.height, + 'category_name':cat.name} + } + for obj in query.filter(categories__pk=category_id).all(): + dct = base_dct.copy() + dct['properties'] = base_dct['properties'].copy() + jsons.append(obj._getItems(base_dct=dct)) if not jsons: return HttpResponse('no results') - data = '{"type": "FeatureCollection", "features":[%s]}' % ",".join(jsons) + data = {"type": "FeatureCollection", "features":jsons} + data = json.dumps(data) + return HttpResponse(data) def get_all_categories(request, area_name=None): @@ -803,6 +828,10 @@ def route(request, area_name, lon1, lat1, lonlat_steps, lon2, lat2, message) return HttpResponse(data) +def get_json(request, area_name='', app_name='', filename=''): + return HttpResponse(open(settings.STATIC_ROOT+app_name+'/json/'+filename+'.json'), + 'application/javascript', status=200) + def rss(request, area_name=''): ''' Redirect to RSS subscription page |
