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