diff options
Diffstat (limited to 'archaeological_files/wizards.py')
-rw-r--r-- | archaeological_files/wizards.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index 6e1e3ba03..ea06a48f7 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -50,13 +50,25 @@ class FileWizard(OperationWizard): def done(self, form_list, **kwargs): ''' - Save parcels + Save parcels and make numeric_reference unique ''' r = super(FileWizard, self).done(form_list, return_object=True, **kwargs) if type(r) not in (list, tuple) or len(r) != 2: return r obj, res = r + # numeric_reference check + if not self.modification: + numeric_reference = obj.numeric_reference + changed = False + while obj.__class__.objects.filter( + numeric_reference=numeric_reference, + year=obj.year).exclude(pk=obj.pk).count(): + numeric_reference += 1 + changed = True + if changed: + obj.numeric_reference = numeric_reference + obj.save() obj.parcels.clear() for form in form_list: if not hasattr(form, 'prefix') \ |