From bf1076a75b3e2709f62efce248886065c1961498 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 6 Jul 2018 11:41:33 +0200 Subject: Fix admin save for non available properties --- chimere/forms.py | 15 ++++++++------- chimere/models.py | 7 +++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/chimere/forms.py b/chimere/forms.py index 2b1c35f..1af454b 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -20,6 +20,7 @@ """ Forms """ + import collections from django import forms @@ -149,9 +150,9 @@ class ContactForm(forms.Form): class SubCategoryAdminForm(forms.ModelForm): - ''' + """ Add a tinyMCE widget to fill description - ''' + """ description = forms.CharField(widget=FullTextareaWidget, required=False) class Meta: @@ -219,10 +220,10 @@ class ImporterAdminForm(forms.ModelForm): exclude = [] def clean(self): - ''' + """ Verify that only one type of source is provided Verify that shapefiles are zipped - ''' + """ if self.cleaned_data.get('importer_type') == 'OSM' and \ not self.cleaned_data.get('filtr'): raise forms.ValidationError( @@ -437,7 +438,7 @@ class MarkerAdminFormBase(forms.ModelForm): properties = dict( [(k.split('_')[-1], self.cleaned_data[k]) for k in self.cleaned_data.keys() if k.startswith('property_')]) - new_marker.saveProperties(properties) + new_marker.saveProperties(properties, is_admin=self.is_admin) return new_marker @@ -803,9 +804,9 @@ class AreaAdminForm(forms.ModelForm): super(AreaAdminForm, self).__init__(*args, **keys) def clean(self): - ''' + """ Verify that the area is not empty - ''' + """ if not self.cleaned_data.get('upper_left_lat') \ and not self.cleaned_data.get('upper_left_lon') \ and not self.cleaned_data.get('lower_right_lat') \ diff --git a/chimere/models.py b/chimere/models.py index 452fc63..4bbe1bc 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -779,11 +779,14 @@ class GeographicItem(models.Model): property.value = value property.save() - def saveProperties(self, values): + def saveProperties(self, values, is_admin=False): """ Save properties """ - for propertymodel in PropertyModel.objects.filter(available=True): + q = PropertyModel.objects + if not is_admin: + q = q.filter(available=True) + for propertymodel in q.all(): val = "" if str(propertymodel.id) in values: val = values[str(propertymodel.id)] -- cgit v1.2.3