summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/forms.py2
-rw-r--r--chimere/tests.py7
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,