diff options
-rw-r--r-- | chimere/forms.py | 2 | ||||
-rw-r--r-- | chimere/tests.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index 6a7d7aa..49f714f 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -478,6 +478,8 @@ class AreaAdminForm(forms.ModelForm): raise forms.ValidationError(msg) if self.cleaned_data.get('order'): q = Area.objects.filter(order=self.cleaned_data.get('order')) + if self.instance: + q = q.exclude(pk=self.instance.pk) if q.count(): msg= _(u"The area \"%s\" has the same order, you need to " u" choose another one.") % unicode(q.all()[0]) diff --git a/chimere/tests.py b/chimere/tests.py index eeb970c..a865d9b 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -290,9 +290,14 @@ class AreaAdminFormTest(TestCase): 'lower_right_corner':'SRID=4326;POINT(0 0)'} # order already given data = base_data.copy() - data['order'] = 1 + data['order'] = self.areas[0].order form = AreaAdminForm(data) self.assertEqual(form.is_valid(), False) + # update an already existing area + data = base_data.copy() + data['order'] = self.areas[0].order + form = AreaAdminForm(data, instance=self.areas[0]) + self.assertEqual(form.is_valid(), True) # empty area data = base_data.copy() data.update({'upper_left_lat': 0, |