From 6cb0937a6f57cd3644669c366dece6a50950d766 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 28 Mar 2013 18:29:44 +0100 Subject: Fix conditionnal parameters for routing --- chimere/forms.py | 10 ++++++++-- chimere/templatetags/chimere_tags.py | 2 ++ chimere/urls.py | 8 +++++++- chimere/views.py | 3 ++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/chimere/forms.py b/chimere/forms.py index 22cdc8f..655bbd3 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -603,13 +603,19 @@ class AreaForm(AreaAdminForm): class Meta: model = Area -CHIMERE_ROUTING_TRANSPORT = [(idx, _(lbl)) +CHIMERE_ROUTING_TRANSPORT = [] +ROUTING_INIT = None +if hasattr(settings, 'CHIMERE_ROUTING_TRANSPORT'): + CHIMERE_ROUTING_TRANSPORT = [(idx, _(lbl)) for idx, lbl in settings.CHIMERE_ROUTING_TRANSPORT] + if CHIMERE_ROUTING_TRANSPORT: + ROUTING_INIT = CHIMERE_ROUTING_TRANSPORT[0][0] + class RoutingForm(forms.Form): transport = forms.ChoiceField(label='', widget=ButtonSelectWidget, choices=CHIMERE_ROUTING_TRANSPORT, - initial=CHIMERE_ROUTING_TRANSPORT[0][0]) + initial=ROUTING_INIT) start = forms.CharField(label=_(u"Start"), widget=NominatimWidget) end = forms.CharField(label=_(u"Finish"), widget=NominatimWidget) speed = forms.ChoiceField(label=_(u"Speed"), choices=[], diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index 14860b8..ed835a8 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -164,6 +164,8 @@ def map_menu(context): @register.inclusion_tag('chimere/blocks/routing.html', takes_context=True) def routing(context): + if not settings.CHIMERE_ENABLE_ROUTING: + return {'routing':False} context_data = { 'routing':settings.CHIMERE_ENABLE_ROUTING, 'itinerary_form':context['itinerary_form'], diff --git a/chimere/urls.py b/chimere/urls.py index aa95921..164ef68 100644 --- a/chimere/urls.py +++ b/chimere/urls.py @@ -20,6 +20,7 @@ from django.conf import settings from django.conf.urls.defaults import * from django.contrib import admin +from django.core.exceptions import ImproperlyConfigured admin.autodiscover() from chimere.models import Area @@ -51,7 +52,12 @@ if settings.CHIMERE_FEEDS: LatestPOIsByZoneID(), name='feeds-areaid'), ) -if settings.CHIMERE_ENABLE_ROUTING: +if hasattr(settings, 'CHIMERE_ENABLE_ROUTING') \ + and settings.CHIMERE_ENABLE_ROUTING: + if not hasattr(settings, 'CHIMERE_ROUTING_TRANSPORT') \ + or not settings.CHIMERE_ROUTING_TRANSPORT: + raise ImproperlyConfigured(u"CHIMERE_ROUTING_TRANSPORT must be set in"\ + u" settings if you enable routing") urlpatterns += patterns('chimere.views', url(r'^(?P[a-zA-Z0-9_-]*/)?route/'\ r'(?P(%s))/((?P[0-9][0-9]*)/)?' diff --git a/chimere/views.py b/chimere/views.py index a8c3f19..f6e3f84 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -174,10 +174,11 @@ def index(request, area_name=None, default_area=None, simple=False, 'map_layer':settings.CHIMERE_DEFAULT_MAP_LAYER, 'dynamic_categories':response_dct['dynamic_categories'], 'zoomout':zoomout, - 'contact_email':settings.CONTACT_EMAIL, 'has_default_area':Area.objects.filter(default=True).count(), 'zoomout':zoomout }) + if settings.CONTACT_EMAIL: + response_dct['contact_email'] = settings.CONTACT_EMAIL response_dct['share_networks'], net_dct = \ getShareNetwork(request, response_dct['area_name']) tpl = 'chimere/main_map.html' -- cgit v1.2.3