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') \ | 
