summaryrefslogtreecommitdiff
path: root/chimere/main/forms.py
diff options
context:
space:
mode:
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
commit0ccc30e337bb046000fb76d2337c2fb9792bc71f (patch)
treebbf2307438389f91fdae1e618d0816238b0a015a /chimere/main/forms.py
parent5833aa61d039bf3d1f4372e0390ffc53b7d63eb9 (diff)
downloadChimè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.py25
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