summaryrefslogtreecommitdiff
path: root/archaeological_operations/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-02-16 14:42:01 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-02-16 14:42:01 +0100
commit36db82b63295ef2bec9b01c934ee0ad76bdc13b8 (patch)
tree757748dd103101658124bcde50edf99b9544b9e5 /archaeological_operations/forms.py
parent65fc62c22174697432bd8517e91f13cd03f3dcd4 (diff)
downloadIshtar-36db82b63295ef2bec9b01c934ee0ad76bdc13b8.tar.bz2
Ishtar-36db82b63295ef2bec9b01c934ee0ad76bdc13b8.zip
Site: modification wizard (refs #3913)
Diffstat (limited to 'archaeological_operations/forms.py')
-rw-r--r--archaeological_operations/forms.py9
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