summaryrefslogtreecommitdiff
path: root/chimere/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-17 13:13:15 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-22 02:08:33 +0200
commit1091d481584af4662488ee83d7fa1421f8d1700c (patch)
tree0fb060c8cc3c7280a4f9d643db34216597a0b302 /chimere/forms.py
parent232a1de132fa75431b45c008b72dafbcc6130b14 (diff)
downloadChimère-1091d481584af4662488ee83d7fa1421f8d1700c.tar.bz2
Chimère-1091d481584af4662488ee83d7fa1421f8d1700c.zip
Improve routing interface and functionalities
* fix POI clicking * create a nominatim widget to get coordinates from text * create a JQuery UI button select widget * create a routing form to get itinerary from a textual form * CSS for the routing form * Reverse nominatim: when a point is get for routing on the map label for this point is get from nominatim * Add transport management by user choice * Update french translation
Diffstat (limited to 'chimere/forms.py')
-rw-r--r--chimere/forms.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index d877a22..f49a903 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -35,7 +35,7 @@ from chimere.models import Marker, Route, PropertyModel, Property, Area,\
News, Category, SubCategory, RouteFile, MultimediaFile, MultimediaType, \
PictureFile, Importer
from chimere.widgets import AreaField, PointField, TextareaWidget, \
- DatePickerWidget
+ DatePickerWidget, ButtonSelectWidget, NominatimWidget
from datetime import timedelta, datetime, tzinfo
@@ -454,3 +454,19 @@ class AreaForm(AreaAdminForm):
class Meta:
model = Area
+class RoutingForm(forms.Form):
+ transport = forms.ChoiceField(label='', widget=ButtonSelectWidget,
+ choices=settings.CHIMERE_ROUTING_TRANSPORT,
+ initial=settings.CHIMERE_ROUTING_TRANSPORT[0][0])
+ start = forms.CharField(label=_(u"Start"), widget=NominatimWidget)
+ end = forms.CharField(label=_(u"Finish"), widget=NominatimWidget)
+ speed = forms.ChoiceField(label=_(u"Speed"), choices=[], required=False)
+
+ def __init__(self, *args, **kwargs):
+ super(RoutingForm, self).__init__(*args, **kwargs)
+ if not settings.CHIMERE_ROUTING_SPEEDS:
+ self.fields.pop('speed')
+ for transport in settings.CHIMERE_ROUTING_SPEEDS:
+ for speed, lbl in settings.CHIMERE_ROUTING_SPEEDS[transport]:
+ self.fields['speed'].widget.choices.append(
+ ("%s_%d" % (transport, speed), lbl))