diff options
| 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 |
| commit | 1091d481584af4662488ee83d7fa1421f8d1700c (patch) | |
| tree | 0fb060c8cc3c7280a4f9d643db34216597a0b302 /chimere/forms.py | |
| parent | 232a1de132fa75431b45c008b72dafbcc6130b14 (diff) | |
| download | Chimè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.py | 18 |
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)) |
