diff options
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r-- | archaeological_operations/forms.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index bf69a74b5..8954dae77 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -1273,7 +1273,7 @@ class SiteFormSelection(IshtarForm): reverse_lazy('get-site'), SiteSelect, models.ArchaeologicalSite, source_full=reverse_lazy('get-site-full')), - validators=[valid_id(models.Operation)]) + validators=[valid_id(models.ArchaeologicalSite)]) @classmethod def form_label(cls): @@ -1292,6 +1292,7 @@ class SiteForm(ManageOldType): form_label = _(u"General") form_admin_name = _(u"Archaeological site - 010 - General") associated_models = {'period': models.Period, 'remain': models.RemainType} + pk = forms.IntegerField(required=False, widget=forms.HiddenInput) reference = forms.CharField(label=_(u"Reference"), max_length=20) name = forms.CharField(label=_(u"Name"), max_length=200, required=False) period = forms.MultipleChoiceField( @@ -1308,8 +1309,10 @@ class SiteForm(ManageOldType): def clean_reference(self): reference = self.cleaned_data['reference'] - if models.ArchaeologicalSite.objects.filter( - reference=reference).count(): + q = models.ArchaeologicalSite.objects.filter(reference=reference) + if 'pk' in self.cleaned_data and self.cleaned_data['pk']: + q = q.exclude(pk=self.cleaned_data['pk']) + if q.count(): raise forms.ValidationError(_(u"This reference already exists.")) return reference |