diff options
Diffstat (limited to 'chimere/main/views.py')
| -rw-r--r-- | chimere/main/views.py | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/chimere/main/views.py b/chimere/main/views.py index 86d98e7..dae5f82 100644 --- a/chimere/main/views.py +++ b/chimere/main/views.py @@ -40,10 +40,21 @@ from chimere.main.widgets import getMapJS, PointChooserWidget, \ from chimere.main.forms import MarkerForm, RouteForm, ContactForm, \ notifySubmission, notifyStaff -base_response_dct = {'media_path':settings.MEDIA_URL, - 'extra_url':settings.EXTRA_URL,} +def get_base_response(area_name=""): + """ + Get the base url + """ + base_response_dct = {'media_path':settings.MEDIA_URL,} + base_url = settings.EXTRA_URL + if not base_url.startswith('/'): + base_url = '/' + base_url + if area_name: + base_url = '/' + area_name + base_url + base_response_dct['extra_url'] = base_url + base_response_dct['area_name'] = area_name + return base_response_dct -def index(request): +def index(request, area_name=None, default_area=None): """ Main page """ @@ -62,10 +73,10 @@ def index(request): request.session['last_visit'] != today: request.session['last_visit'] = today display_welcome = True - response_dct = base_response_dct + response_dct = get_base_response(area_name) response_dct.update({'actions':actions, 'action_selected':('view',), - 'error_message':'', - 'extra_head':extra + getMapJS(), + 'error_message':'', 'default_area':default_area, + 'extra_head':extra + getMapJS(area_name), 'welcome':welcome(request, display_welcome), 'areas':Area.getAvailable(), 'map_layer':settings.MAP_LAYER, @@ -86,7 +97,7 @@ def index(request): response_dct['p_checked_categories'] = ''; return render_to_response('main_map.html', response_dct) -def edit(request): +def edit(request, area_name=""): """ Edition page """ @@ -100,13 +111,15 @@ def edit(request): marker.status = 'S' marker.save() notifySubmission(marker) - return HttpResponseRedirect('/' + settings.EXTRA_URL +'submited/edit') + response_dct = get_base_response(area_name) + return HttpResponseRedirect(response_dct['extra_url'] + \ +'submited/edit') else: # An unbound form form = MarkerForm() # get the « manualy » declared_fields. Ie: properties declared_fields = form.declared_fields.keys() - response_dct = base_response_dct + response_dct = get_base_response(area_name) response_dct.update({'actions':actions, 'action_selected':('contribute', 'edit'), 'error_message':'', @@ -114,7 +127,8 @@ def edit(request): 'form':form, 'extra_head':form.media, 'sub_categories':SubCategory.getAvailable(['M', 'B']), - 'point_widget':PointChooserWidget().render('point', None), + 'point_widget':PointChooserWidget().render('point', None, + area_name=area_name), 'properties':declared_fields }) # manualy populate the custom widget @@ -122,7 +136,7 @@ def edit(request): response_dct['current_category'] = int(form.data['subcategory']) return render_to_response('edit.html', response_dct) -def editRoute(request): +def editRoute(request, area_name=""): """ Route edition page """ @@ -136,14 +150,15 @@ def editRoute(request): route.status = 'S' route.save() notifySubmission(route) - return HttpResponseRedirect('/' + settings.EXTRA_URL + \ - 'submited/edit_route') + response_dct = get_base_response(area_name) + return HttpResponseRedirect(response_dct['extra_url'] + \ +'submited/edit') else: # An unbound form form = RouteForm() # get the « manualy » declared_fields. Ie: properties declared_fields = form.declared_fields.keys() - response_dct = base_response_dct + response_dct = get_base_response(area_name) response_dct.update({'actions':actions, 'action_selected':('contribute', 'edit_route'), 'error_message':'', @@ -151,7 +166,8 @@ def editRoute(request): 'form':form, 'extra_head':form.media, 'sub_categories':SubCategory.getAvailable(['R', 'B']), - 'route_widget':RouteChooserWidget().render('route', None), + 'route_widget':RouteChooserWidget().render('route', None, + area_name=area_name), 'properties':declared_fields }) # manualy populate the custom widget @@ -167,15 +183,15 @@ def welcome(request, display=None): response_dct['news_lst'] = News.objects.filter(available=True) return loader.render_to_string('welcome.html', response_dct) -def submited(request, action): +def submited(request, area_name="", action=""): """ Successful submission page """ - response_dct = base_response_dct + response_dct = get_base_response(area_name) response_dct.update({'actions':actions, 'action_selected':action,}) return render_to_response('submited.html', response_dct) -def contactus(request): +def contactus(request, area_name=""): """ Contact page """ @@ -196,9 +212,9 @@ details.") msg = _(u"Temporary error. Renew your message later.") else: form = ContactForm() - response_dct = base_response_dct - response_dct = ({'actions':actions, 'action_selected':('contact',), - 'contact_form':form, 'message':msg}) + response_dct = get_base_response(area_name) + response_dct.update({'actions':actions, 'action_selected':('contact',), + 'contact_form':form, 'message':msg}) return render_to_response('contactus.html', response_dct) def getDetail(request, marker_id): @@ -209,7 +225,7 @@ def getDetail(request, marker_id): marker = Marker.objects.filter(id=int(marker_id), status='A')[0] except (ValueError, IndexError): return HttpResponse('no results') - response_dct = base_response_dct + response_dct = get_base_response() response_dct['marker'] = marker return render_to_response('detail.html', response_dct) @@ -221,7 +237,7 @@ def getDescriptionDetail(request, category_id): category = Category.objects.filter(id=int(category_id))[0] except (ValueError, IndexError): return HttpResponse('no results') - response_dct = base_response_dct + response_dct = get_base_response() response_dct['category'] = category return render_to_response('category_detail.html', response_dct) @@ -266,7 +282,7 @@ def getAvailableCategories(request, area=None, status='A', force=None): ''' if settings.DYNAMIC_CATEGORIES and not area: return "" - response_dct = base_response_dct + response_dct = get_base_response() if not settings.DYNAMIC_CATEGORIES: subcategories = SubCategory.getAvailable() response_dct['sub_categories'] = subcategories |
