diff options
Diffstat (limited to 'chimere/views.py')
| -rw-r--r-- | chimere/views.py | 30 | 
1 files changed, 19 insertions, 11 deletions
| diff --git a/chimere/views.py b/chimere/views.py index a9c0480..5acf369 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -110,9 +110,14 @@ def get_edit_page(redirect_url, item_cls, item_form):      """      Edition page      """ -    def func(request, area_name="", item_id=None): +    def func(request, area_name="", item_id=None, subcategories=[]):          response_dct = get_base_response(area_name) +        listed_subcats = [] +        if subcategories: +            for cat, subcats in subcategories: +                listed_subcats.append((unicode(cat), +                         [(subcat.pk, subcat.name) for subcat in subcats]))          # if an item_id is provided: modification          init_item, ref_item = None, None          if item_id: @@ -138,7 +143,8 @@ def get_edit_page(redirect_url, item_cls, item_form):                                          request.session.session_key):                  inst = init_item -            form = item_form(request.POST, request.FILES, instance=inst) +            form = item_form(request.POST, request.FILES, instance=inst, +                             subcategories=listed_subcats)              formset_multi = MultimediaFileFormSet(request.POST, request.FILES,                                          initial=init_multi, prefix='multimedia')              formset_picture = PictureFileFormSet(request.POST, request.FILES, @@ -179,7 +185,7 @@ def get_edit_page(redirect_url, item_cls, item_form):                  response_dct['error_message'] = _(u"There are missing field(s)"                                          u" and/or errors in the submited form.")          else: -            form = item_form(instance=init_item) +            form = item_form(instance=init_item, subcategories=listed_subcats)              formset_multi = MultimediaFileFormSet(initial=init_multi,                                                    prefix='multimedia')              formset_picture = PictureFileFormSet(initial=init_picture, @@ -194,7 +200,9 @@ def edit(request, area_name="", item_id=None, submited=False):      """      Edition page      """ -    response, values = get_edit_marker(request, area_name, item_id) +    sub_categories = SubCategory.getAvailable(['M', 'B'], area_name) +    response, values = get_edit_marker(request, area_name, item_id, +                                       subcategories=sub_categories)      if response:          return response      item_id, init_item, response_dct, form, formset_multi, formset_picture = \ @@ -212,8 +220,7 @@ def edit(request, area_name="", item_id=None, submited=False):          'dated':settings.CHIMERE_DAYS_BEFORE_EVENT,          'extra_head':form.media,          'marker_id':item_id, -        'sub_categories':SubCategory.getAvailable(['M', 'B'], -                                                  area_name), +        'sub_categories':sub_categories,          'point_widget':PointChooserWidget().render('point',                init_item.point if init_item else None,                area_name=area_name), @@ -294,7 +301,9 @@ def editRoute(request, area_name="", item_id=None, submited=False):      """      Route edition page      """ -    response, values = get_edit_route(request, area_name, item_id) +    sub_categories = SubCategory.getAvailable(['M', 'B'], area_name) +    response, values = get_edit_route(request, area_name, item_id, +                                      subcategories=sub_categories)      if response:          return response      item_id, init_item, response_dct, form, formset_multi, formset_picture = \ @@ -312,8 +321,7 @@ def editRoute(request, area_name="", item_id=None, submited=False):          'formset_picture':formset_picture,          'dated':settings.CHIMERE_DAYS_BEFORE_EVENT,          'extra_head':form.media, -        'sub_categories':SubCategory.getAvailable(['R', 'B'], -                                                  area_name), +        'sub_categories':sub_categories,          'route_widget':RouteChooserWidget().render('route',                         init_item.route if init_item else None,                         area_name=area_name, routefile_id='',), @@ -492,7 +500,7 @@ def get_available_categories(request, area_name=None, area=None, status='A',      if not settings.CHIMERE_DYNAMIC_CATEGORIES:          # Categories are not updated dynamicaly when the user move the map          # so we return ALL the categories -        subcategories = SubCategory.getAvailable() +        subcategories = SubCategory.getAvailable(area_name=area_name)          context_data['sub_categories'] = subcategories          return render_to_response('chimere/blocks/categories.html', context_data,                                         context_instance=RequestContext(request)) @@ -509,7 +517,7 @@ def get_available_categories(request, area_name=None, area=None, status='A',          # bad extent format          return HttpResponse(default_message)      # if not force and area.isIn(SimpleArea(cookie.AREA):return -    categories = area.getCategories(status) +    categories = area.getCategories(status, area_name=area_name)      if not categories:          return HttpResponse(default_message)      get_cat = lambda subcat: subcat.category | 
