From 97e009c91f272fa040458f50f53c8be70b396155 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 15 Apr 2016 21:53:27 +0200 Subject: File wizard: manage unicity of numeric reference on multiple edit --- archaeological_files/wizards.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'archaeological_files/wizards.py') 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') \ -- cgit v1.2.3