diff options
Diffstat (limited to 'archaeological_operations/wizards.py')
| -rw-r--r-- | archaeological_operations/wizards.py | 89 | 
1 files changed, 46 insertions, 43 deletions
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index 542d0118b..2dae72aad 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -31,35 +31,36 @@ class OperationWizard(Wizard):      model = models.Operation      object_parcel_type = 'operation' -    def get_template(self, request, storage): -        templates = super(OperationWizard, self).get_template(request, storage) +    def get_template_names(self): +        templates = super(OperationWizard, self).get_template_names()          current_step = storage.get_current_step() or self.get_first_step(                                                              request, storage)          if current_step.startswith('towns-'): -            templates = ['towns_wizard.html'] + templates +            # vérifier que le context_data est bien chargé +            #templates = ['ishtar/wizard/towns_wizard.html'] + templates +            templates = ['ishtar/wizar/towns_wizard.html'] + templates          return templates -    def get_extra_context(self, request, storage): +    def get_context_data(self, form, **kwargs):          """          Return extra context for templates          """ -        context = super(OperationWizard, self).get_extra_context(request, -                                                                 storage) +        context = super(OperationWizard, self).get_context_data(forms, +                                                                **kwargs)          #step = self.determine_step(request, storage)          step = self.steps.current          if not step.startswith('towns-'):              return context -        context['TOWNS'] = self.get_towns(request, storage) +        context['TOWNS'] = self.get_towns()          return context -    def get_towns(self, request, storage): +    def get_towns(self):          """          Obtention des villes disponibles          """          general_form_key = 'general-' + self.url_name          towns = [] -        file_id = self.session_get_value(request, storage, general_form_key, -                                             "associated_file") +        file_id = self.session_get_value(general_form_key, "associated_file")          if file_id:              try:                  for town in models.File.objects.get(pk=int(file_id) @@ -71,7 +72,7 @@ class OperationWizard(Wizard):          else:              return -1 -    def get_form(self, request, storage, step=None, data=None, files=None): +    def get_form(self, step=None, data=None, files=None):          """          Manage specifics fields          """ @@ -82,13 +83,13 @@ class OperationWizard(Wizard):          if not step:              #step = self.determine_step(request, storage)              step = self.steps.current -        form = self.get_form_list(request, storage)[step] +        form = self.get_form_list()[step]          general_form_key = 'general-' + self.url_name          # manage the dynamic choice of towns          if step.startswith('towns-') and hasattr(form, 'management_form'): -            data['TOWNS'] = self.get_towns(request, storage) +            data['TOWNS'] = self.get_towns()          elif step.startswith('parcels') and hasattr(form, 'management_form'): -            file_id = self.session_get_value(request, storage, general_form_key, +            file_id = self.session_get_value(general_form_key,                                               "associated_file")              if file_id:                  parcels = [] @@ -103,8 +104,8 @@ class OperationWizard(Wizard):                  town_form_key = step.startswith('parcelsgeneral') \                                  and 'townsgeneral-' or 'towns-'                  town_form_key += self.url_name -                town_ids = self.session_get_value(request, storage, -                                  town_form_key, 'town', multi=True) or [] +                town_ids = self.session_get_value(town_form_key, 'town', +                                                  multi=True) or []                  towns = []                  for town_id in town_ids:                      try: @@ -114,8 +115,7 @@ class OperationWizard(Wizard):                          pass                  data['TOWNS'] = sorted(towns, key=lambda x:x[1])          data = data or None -        form = super(OperationWizard, self).get_form(request, storage, step, -                                                     data, files) +        form = super(OperationWizard, self).get_form(step, data, files)          return form      def get_formated_datas(self, forms): @@ -138,7 +138,8 @@ class OperationModificationWizard(OperationWizard):  class OperationClosingWizard(ClosingWizard):      model = models.Operation      fields = ['year', 'operation_code', 'operation_type', 'associated_file', -'in_charge', 'start_date', 'excavation_end_date', 'comment', 'towns', 'remains'] +              'in_charge', 'start_date', 'excavation_end_date', 'comment', +              'towns', 'remains']  class OperationDeletionWizard(DeletionWizard):      model = models.Operation @@ -146,15 +147,14 @@ class OperationDeletionWizard(DeletionWizard):  class OperationSourceWizard(SourceWizard):      model = models.OperationSource -    def get_form_initial(self, request, storage, step): -        initial = super(OperationSourceWizard, self).get_form_initial(request, -                                                           storage, step) +    def get_form_initial(self, step): +        initial = super(OperationSourceWizard, self).get_form_initial(step)          # put default index and operation_id field in the main source form          general_form_key = 'selec-' + self.url_name          if step.startswith('source-') \ -           and self.session_has_key(request, storage, general_form_key): -            gen_storage = request.session[storage.prefix]['step_data']\ -                                         [general_form_key] +           and self.session_has_key(general_form_key): +            gen_storage = self.request.session[storage.prefix]['step_data']\ +                                              [general_form_key]              if general_form_key+"-operation" in gen_storage:                  operation_id = int(gen_storage[general_form_key+"-operation"])              elif general_form_key+"-pk" in gen_storage: @@ -180,27 +180,27 @@ class OperationSourceDeletionWizard(DeletionWizard):  class OperationAdministrativeActWizard(OperationWizard):      edit = False -    def get_extra_model(self, dct, request, storage, form_list): -        dct['history_modifier'] = request.user +    def get_extra_model(self, dct, form_list): +        dct['history_modifier'] = self.request.user          return dct -    def get_associated_item(self, request, storage, dct): -        return self.get_current_object(request, storage) +    def get_associated_item(self, dct): +        return self.get_current_object() -    def save_model(self, dct, m2m, whole_associated_models, request, storage, -                   form_list, return_object): -        associated_item = self.get_associated_item(request, storage, dct) +    def save_model(self, dct, m2m, whole_associated_models, form_list, +                   return_object): +        associated_item = self.get_associated_item(dct)          if not associated_item: -            return self.render(request, storage, form_list[-1]) +            return self.render(form_list[-1])          if isinstance(associated_item, models.File):              dct['associated_file'] = associated_item          elif isinstance(associated_item, models.Operation):              dct['operation'] = associated_item -        dct['history_modifier'] = request.user +        dct['history_modifier'] = self.request.user          if 'pk' in dct:              dct.pop('pk')          if self.edit: -            admact = self.get_current_object(request, storage) +            admact = self.get_current_object()              for k in dct:                  if hasattr(admact, k):                      setattr(admact, k, dct[k]) @@ -208,14 +208,14 @@ class OperationAdministrativeActWizard(OperationWizard):              admact = models.AdministrativeAct(**dct)          admact.save()          res = render_to_response('wizard_done.html', {}, -                                  context_instance=RequestContext(request)) +                                  context_instance=RequestContext(self.request))          return res  class OperationEditAdministrativeActWizard(OperationAdministrativeActWizard):      model = models.AdministrativeAct      edit = True -    def get_associated_item(self, request, storage, dct): -        return self.get_current_object(request, storage).operation +    def get_associated_item(self, dct): +        return self.get_current_object().operation  class AdministrativeActDeletionWizard(ClosingWizard):      model = models.AdministrativeAct @@ -224,11 +224,11 @@ class AdministrativeActDeletionWizard(ClosingWizard):      if settings.COUNTRY == 'fr':          fields += ['ref_sra'] -    def done(self, request, storage, form_list, **kwargs): -        obj = self.get_current_object(request, storage) +    def done(self, form_list, **kwargs): +        obj = self.get_current_object()          obj.delete()          return render_to_response('wizard_done.html', {}, -                                  context_instance=RequestContext(request)) +                                  context_instance=RequestContext(self.request))  def is_preventive(form_name, model, type_key='operation_type', key=''):      def func(self): @@ -241,8 +241,11 @@ def is_preventive(form_name, model, type_key='operation_type', key=''):                       request.session[storage.prefix]['step_data'][form_name]:              return False          try: -            typ = int(request.session[storage.prefix]['step_data']\ -                                     [form_name][form_name+'-'+type_key][0]) +            typ = request.session[storage.prefix]['step_data']\ +                                     [form_name][form_name+'-'+type_key] +            if type(typ) in (list, tuple): +                typ = typ[0] +            typ = int(typ)              return model.is_preventive(typ, key)          except ValueError:              return False  | 
