summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py30
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