diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-07-14 19:07:59 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-07-14 19:07:59 +0200 |
commit | 05fca7f6b77e155b1a0fd721e2c19243061e716b (patch) | |
tree | 7bdd80ff4f8932ab1a137e6b8c597c595ebb66db /archaeological_files/forms.py | |
parent | d90d5d320c9cf2ade01591d40429dce8736ade3a (diff) | |
download | Ishtar-05fca7f6b77e155b1a0fd721e2c19243061e716b.tar.bz2 Ishtar-05fca7f6b77e155b1a0fd721e2c19243061e716b.zip |
File: numeric index management (refs #2673)
* allow modification
* prevent assigning of the same index
Diffstat (limited to 'archaeological_files/forms.py')
-rw-r--r-- | archaeological_files/forms.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index ac3c9fe83..b03877a3d 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -228,7 +228,21 @@ class FileFormGeneralRO(FileFormGeneral): year = forms.IntegerField(label=_(u"Year"), widget=forms.TextInput(attrs={'readonly':True})) numeric_reference = forms.IntegerField(label=_(u"Numeric reference"), - widget=forms.TextInput(attrs={'readonly':True})) + widget=forms.TextInput()) + id = forms.IntegerField(' ', widget=forms.HiddenInput, required=False) + + def clean(self): + cleaned_data = self.cleaned_data + year = cleaned_data.get('year') + pk = cleaned_data.get('id') + numeric_reference = cleaned_data.get('numeric_reference') + q = models.File.objects.filter(year=year, + numeric_reference=numeric_reference + ).exclude(pk=pk) + if numeric_reference and q.count(): + raise forms.ValidationError( + _(u"Another file with this numeric id exists.")) + return cleaned_data RESPONSIBLE_PLANNING_SERVICE, created = PersonType.objects.get_or_create( txt_idx='responsible_planning_service') |