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,  | 
