summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_files/wizards.py14
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') \