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 | 
