From 15961ef5b2ae30dedc4e76a85f34d07d852f0694 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 18 Jul 2012 21:26:56 +0200 Subject: Fix route submission --- chimere/forms.py | 15 +++++++++++++-- chimere/models.py | 8 ++++---- chimere/views.py | 18 +++++++++++++----- 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"%s"\ u"\n"\ u"
" % (_(u"Start \"hand\" drawing")) + style = '' + if value: + style = " style='display:block'" + tpl += u"\n
%s
"\ + u"\n
\n"\ + u"\n"\ + u"\n" % ( + style, help_modify, name, name, value, routefile_id) if value: tpl += u"\n
" else: + tpl += "\n
%s
"\ + % help_create tpl += u"\n
\n"\ u"
\n"\ u" "\ u"%s
\n"\ u"
" % (_(u"Move on the map"), _(u"Draw")) - tpl += "\n
%s
"\ - % help_create - style = '' - if value: - style = " style='display:block'" - tpl += u"\n
%s
"\ - u"\n
\n"\ - u"\n"\ - u"\n" % ( - style, help_modify, name, name, value, routefile_id) tpl += u"