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 |
