summaryrefslogtreecommitdiff
path: root/archaeological_files/wizards.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-04-15 21:53:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-04-15 21:53:27 +0200
commit97e009c91f272fa040458f50f53c8be70b396155 (patch)
tree8f5c2a45f3afa5be9e1793f13ce5642fad2199ed /archaeological_files/wizards.py
parent1b97a7238ff85ee6363f9697bb6bb1dc77448fe9 (diff)
downloadIshtar-97e009c91f272fa040458f50f53c8be70b396155.tar.bz2
Ishtar-97e009c91f272fa040458f50f53c8be70b396155.zip
File wizard: manage unicity of numeric reference on multiple edit
Diffstat (limited to 'archaeological_files/wizards.py')
-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') \