diff options
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 |
commit | 15961ef5b2ae30dedc4e76a85f34d07d852f0694 (patch) | |
tree | 7edfcc5d3d1498f651e7cf9a2538aa88bd480ecc | |
parent | 5e2852daf206d6aee2453fabb5503466689f95cb (diff) | |
download | Chimère-15961ef5b2ae30dedc4e76a85f34d07d852f0694.tar.bz2 Chimère-15961ef5b2ae30dedc4e76a85f34d07d852f0694.zip |
Fix route submission
-rw-r--r-- | chimere/forms.py | 15 | ||||
-rw-r--r-- | chimere/models.py | 8 | ||||
-rw-r--r-- | chimere/views.py | 18 | ||||
-rw-r--r-- | chimere/widgets.py | 22 |
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();" |