diff options
Diffstat (limited to 'archaeological_files/wizards.py')
| -rw-r--r-- | archaeological_files/wizards.py | 68 | 
1 files changed, 20 insertions, 48 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index 00949b8db..7fac15c66 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2012-2014  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2012-2015  Étienne Loks  <etienne.loks_AT_peacefrogsDOTnet>  # This program is free software: you can redistribute it and/or modify  # it under the terms of the GNU Affero General Public License as @@ -25,15 +25,14 @@ from django.template import RequestContext  from django.utils.translation import ugettext_lazy as _  from ishtar_common.forms import reverse_lazy -from ishtar_common.wizards import Wizard, ClosingWizard +from ishtar_common.wizards import ClosingWizard  from archaeological_operations.wizards import OperationWizard,\ -                                              OperationAdministrativeActWizard,\ -                                              AdministrativeActDeletionWizard -from ishtar_common.models import Town +    OperationAdministrativeActWizard  from archaeological_operations.models import AdministrativeAct, Parcel, \ -                                             Operation +    Operation  import models +  class FileWizard(OperationWizard):      model = models.File      object_parcel_type = 'associated_file' @@ -41,46 +40,11 @@ class FileWizard(OperationWizard):      town_step_keys = ['towns-']      wizard_done_window = reverse_lazy('show-file') -    ''' -    def get_form(self, step=None, data=None, files=None): -        """ -        Manage towns -        """ -        if data: -            data = data.copy() -        else: -            data = {} -        # manage the dynamic choice of towns -        if not step: -            # step = self.determine_step(request, storage) -            step = self.steps.current -        form = self.get_form_list()[step] -        town_form_key = self.town_step_key -        town_form_key += self.url_name -        if step.startswith(self.parcel_step_key) \ -           and hasattr(form, 'management_form') \ -           and self.session_has_key(town_form_key): -            towns = [] -            qdict = self.request.session[self.storage.prefix]['step_data']\ -                                        [town_form_key] -            for k in qdict.keys(): -                if k.endswith("town") and qdict[k]: -                    try: -                        town = Town.objects.get(pk=int(qdict[k][0])) -                        towns.append((town.pk, unicode(town))) -                    except (ObjectDoesNotExist, ValueError): -                        pass -            data['TOWNS'] = sorted(towns, key=lambda x:x[1]) -        form = super(FileWizard, self).get_form(step, data, files) -        """ -        return form -    ''' -      def get_extra_model(self, dct, form_list):          dct = super(FileWizard, self).get_extra_model(dct, form_list)          if not dct.get('numeric_reference'): -            current_ref = models.File.objects.filter(year=dct['year'] -                ).aggregate(Max('numeric_reference'))["numeric_reference__max"] +            current_ref = models.File.objects.filter(year=dct['year'])\ +                .aggregate(Max('numeric_reference'))["numeric_reference__max"]              dct['numeric_reference'] = current_ref and current_ref + 1 or 1          return dct @@ -126,9 +90,11 @@ class FileWizard(OperationWizard):                      parcel.save()          return res +  class FileModificationWizard(FileWizard):      modification = True +  class FileClosingWizard(ClosingWizard):      model = models.File      fields = ['year', 'numeric_reference', 'internal_reference', @@ -139,12 +105,14 @@ class FileClosingWizard(ClosingWizard):          fields += ['saisine_type', 'reference_number']      fields += ['towns'] +  class FileDeletionWizard(FileClosingWizard):      def get_formated_datas(self, forms):          datas = super(FileDeletionWizard, self).get_formated_datas(forms)          datas.append((_("Associated operations"), []))          for operation in Operation.objects.filter( -                                        associated_file=self.current_obj).all(): +                associated_file=self.current_obj).all(): +              if operation.end_date:                  datas[-1][1].append(('', unicode(operation)))          return datas @@ -154,8 +122,9 @@ class FileDeletionWizard(FileClosingWizard):          for operation in Operation.objects.filter(associated_file=obj).all():              operation.delete()          obj.delete() -        return render_to_response('ishtar/wizard/wizard_delete_done.html', {}, -                                  context_instance=RequestContext(self.request)) +        return render_to_response( +            'ishtar/wizard/wizard_delete_done.html', {}, +            context_instance=RequestContext(self.request))  class FileAdministrativeActWizard(OperationAdministrativeActWizard): @@ -168,8 +137,9 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard):              # and '_deletion' so it is creation              file_id = self.session_get_value(form_key, "pk")              try: -                return ((_(u"Archaelogical file"), -                      unicode(models.File.objects.get(pk=file_id))),) +                return ( +                    (_(u"Archaelogical file"), +                     unicode(models.File.objects.get(pk=file_id))),)              except models.File.DoesNotExist:                  return          else: @@ -183,8 +153,10 @@ class FileAdministrativeActWizard(OperationAdministrativeActWizard):              except AdministrativeAct.DoesNotExist:                  return +  class FileEditAdministrativeActWizard(FileAdministrativeActWizard):      model = AdministrativeAct      edit = True +      def get_associated_item(self, dct):          return self.get_current_object().associated_file  | 
