summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-07-18 21:26:56 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-07-18 21:26:56 +0200
commit15961ef5b2ae30dedc4e76a85f34d07d852f0694 (patch)
tree7edfcc5d3d1498f651e7cf9a2538aa88bd480ecc
parent5e2852daf206d6aee2453fabb5503466689f95cb (diff)
downloadChimère-15961ef5b2ae30dedc4e76a85f34d07d852f0694.tar.bz2
Chimère-15961ef5b2ae30dedc4e76a85f34d07d852f0694.zip
Fix route submission
-rw-r--r--chimere/forms.py15
-rw-r--r--chimere/models.py8
-rw-r--r--chimere/views.py18
-rw-r--r--chimere/widgets.py22
4 files changed, 41 insertions, 22 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index e7115a5..3a93b55 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -232,7 +232,7 @@ class RouteForm(RouteAdminForm):
"""
Form for the edit page
"""
- picture = forms.ImageField(label=_("Image"), required=False)
+ description = forms.CharField(widget=TextareaWidget, required=False)
point = forms.CharField(label=" ", required=False, widget=forms.HiddenInput)
associated_file_id = forms.CharField(label=" ", required=False,
widget=forms.HiddenInput)
@@ -243,8 +243,19 @@ class RouteForm(RouteAdminForm):
def __init__(self, *args, **kwargs):
if kwargs.get('instance'):
try:
+ marker = Marker.objects.get(route=kwargs['instance'])
kwargs['initial'] = {
- 'point':Marker.objects.get(route=kwargs['instance']).point}
+ 'point':marker.point,
+ 'description':marker.description}
+ property_dct = {}
+ for pm in PropertyModel.objects.filter(available=True):
+ property = marker.getProperty(pm)
+ if property:
+ property_dct[pm.getNamedId()] = property.value
+ if 'initial' in kwargs:
+ kwargs['initial'].update(property_dct)
+ else:
+ kwargs['initial'] = property_dct
except:
pass
super(RouteForm, self).__init__(*args, **kwargs)
diff --git a/chimere/models.py b/chimere/models.py
index aa291ca..e54edfc 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -629,17 +629,17 @@ class Route(GeographicItem):
verbose_name = _(u"Route")
def get_init_multi(self):
- if not self.associated_file:
+ if not self.associated_marker.count():
return []
multis = [forms.model_to_dict(multi)
- for multi in self.associated_file.multimedia_files.all()]
+ for multi in self.associated_marker.all()[0].multimedia_files.all()]
return multis
def get_init_picture(self):
- if not self.associated_file:
+ if not self.associated_marker.count():
return []
picts = [forms.model_to_dict(pict)
- for pict in self.associated_file.pictures.all()]
+ for pict in self.associated_marker.all()[0].pictures.all()]
return picts
def getProperty(self, propertymodel, safe=None):
diff --git a/chimere/views.py b/chimere/views.py
index 6328215..8b824a0 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -199,11 +199,17 @@ def get_edit_page(redirect_url, item_cls, item_form):
item.status = 'S'
item.save()
- for f in formset_multi:
- f.save(item)
-
- for f in formset_picture:
- f.save(item)
+ marker = item
+ if not isinstance(marker, Marker) \
+ and item.associated_marker.count():
+ marker = item.associated_marker.all()[0]
+ if marker:
+ # manage multimedia items
+ for f in formset_multi:
+ f.save(marker)
+
+ for f in formset_picture:
+ f.save(marker)
base_uri = get_base_uri(request)
notifySubmission(base_uri, item)
response_dct = get_base_response(area_name)
@@ -340,6 +346,8 @@ def editRoute(request, area_name="", item_id=None, submited=False):
# get the "manualy" declared_fields. Ie: properties
declared_fields = form.declared_fields.keys()
+ if 'description' in declared_fields:
+ declared_fields.pop(declared_fields.index('description'))
response_dct.update({
'actions':actions,
'action_selected':('contribute', 'edit-route'),
diff --git a/chimere/widgets.py b/chimere/widgets.py
index ab827d8..da2bc54 100644
--- a/chimere/widgets.py
+++ b/chimere/widgets.py
@@ -292,9 +292,20 @@ class RouteChooserWidget(forms.TextInput):
u"<a href='#' onclick='return false;'>%s</a></div>"\
u"</div>\n"\
u"<hr class='spacer'/>" % (_(u"Start \"hand\" drawing"))
+ style = ''
+ if value:
+ style = " style='display:block'"
+ tpl += u"\n<div class='help-route' id='help-route-modify'%s>%s</div>"\
+ u"\n<hr class='spacer'/>\n"\
+ u"<input type='hidden' name='%s' id='id_%s' value=\"%s\"/>\n"\
+ u"<input type='hidden' name='associated_file_id' "\
+ u"id='id_associated_file_id' value=\"%s\"/>\n" % (
+ style, help_modify, name, name, value, routefile_id)
if value:
tpl += u"\n<div id='map_edit'></div>"
else:
+ tpl += "\n<div class='help-route' id='help-route-create'>%s</div>"\
+ % help_create
tpl += u"\n<div id='map_edit'>\n"\
u" <div class='map_button'>\n"\
u" <a href='#' id='button-move-map' class='toggle-button "\
@@ -304,17 +315,6 @@ class RouteChooserWidget(forms.TextInput):
u"toggle-button-inactive' onclick='toggleDrawOn();return false;'>"\
u"%s</a></div>\n"\
u" </div>" % (_(u"Move on the map"), _(u"Draw"))
- tpl += "\n<div class='help-route' id='help-route-create'>%s</div>"\
- % help_create
- style = ''
- if value:
- style = " style='display:block'"
- tpl += u"\n<div class='help-route' id='help-route-modify'%s>%s</div>"\
- u"\n<hr class='spacer'/>\n"\
- u"<input type='hidden' name='%s' id='id_%s' value=\"%s\"/>\n"\
- u"<input type='hidden' name='associated_file_id' "\
- u"id='id_associated_file_id' value=\"%s\"/>\n" % (
- style, help_modify, name, name, value, routefile_id)
tpl += u"<script type='text/javascript'><!--\n"
if not value:
tpl += u"jQuery('#map_edit').hide();"