diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-09-09 01:26:34 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-09-09 01:26:34 +0200 |
commit | 0ccc30e337bb046000fb76d2337c2fb9792bc71f (patch) | |
tree | bbf2307438389f91fdae1e618d0816238b0a015a /chimere/main/forms.py | |
parent | 5833aa61d039bf3d1f4372e0390ffc53b7d63eb9 (diff) | |
download | Chimère-0ccc30e337bb046000fb76d2337c2fb9792bc71f.tar.bz2 Chimère-0ccc30e337bb046000fb76d2337c2fb9792bc71f.zip |
Association of a GPX (or KML) file to a route (refs #302)
- new table in the model
- new form in route edition
- uploaded gpx file simplification
- automatic route creation from the GPX file
Diffstat (limited to 'chimere/main/forms.py')
-rw-r--r-- | chimere/main/forms.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/chimere/main/forms.py b/chimere/main/forms.py index 1ecd348..dc1fbad 100644 --- a/chimere/main/forms.py +++ b/chimere/main/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008-2010 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2011 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -106,9 +106,9 @@ class MarkerAdminForm(forms.ModelForm): """ # declare properties for property in PropertyModel.objects.filter(available=True): - exec('property_%d_%d = forms.CharField(label="%s", widget=%s, \ -required=False)' % (property.order, property.id, property.name, - PropertyModel.TYPE_WIDGET[property.type])) + exec('property_%d_%d = forms.CharField(label="%s", widget=%s, '\ + 'required=False)' % (property.order, property.id, property.name, + PropertyModel.TYPE_WIDGET[property.type])) class Meta: model = Marker @@ -219,9 +219,9 @@ class RouteForm(RouteAdminForm): exclude = ('status',) # marker properties for property in PropertyModel.objects.filter(available=True): - exec('property_%d_%d = forms.CharField(label="%s", widget=%s, \ -required=False)' % (property.order, property.id, property.name, - PropertyModel.TYPE_WIDGET[property.type])) + exec('property_%d_%d = forms.CharField(label="%s", widget=%s, '\ + 'required=False)' % (property.order, property.id, property.name, + PropertyModel.TYPE_WIDGET[property.type])) def save(self, *args, **keys): """ @@ -246,6 +246,17 @@ required=False)' % (property.order, property.id, property.name, new_marker.saveProperties(properties) return new_route +class FileForm(forms.Form): + raw_file = forms.FileField() + + def clean_raw_file(self): + data = self.cleaned_data['raw_file'] + if '.' not in data.name or \ + data.name.split('.')[-1].lower() not in ('kml', 'gpx'): + raise forms.ValidationError(_(u"Bad file format: this must be a "\ + u"GPX or KML file")) + return data + class AreaAdminForm(forms.ModelForm): """ Admin page to create an area |