diff options
| -rw-r--r-- | ishtar/furnitures/forms.py | 40 | 
1 files changed, 30 insertions, 10 deletions
| diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 8dfce73c8..6beec3744 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -148,11 +148,12 @@ class Wizard(NamedUrlSessionFormWizard):                      value = cleaned_data[key]                      if not value and value != False:                          continue -                    if value == True: -                        value = _("Yes") -                    if value == False: -                        value = _("No") -                    if key in associated_models: +                    if type(value) == bool: +                        if value == True: +                            value = _("Yes") +                        elif value == False: +                            value = _("No") +                    elif key in associated_models:                          value = unicode(associated_models[key].objects.get(                                                                        pk=value))                      form_datas.append((lbl, value, '')) @@ -1101,17 +1102,15 @@ class OperationWizard(Wizard):              step = self.determine_step(request, storage)          form = self.get_form_list(request, storage)[step] -        # put hidden year field for refs          general_form_key = 'general-' + self.url_name -        if not data and step.startswith('refs-') \ +        # put hidden year field for refs +        if data and step.startswith('refs-') \             and self.session_has_key(request, storage, general_form_key):              prefix = 'refs-' + self.url_name              year = int(request.session[storage.prefix]['step_data']\                                    [general_form_key][general_form_key+"-year"])              data[prefix+'-hidden_year'] = year -            max_val = models.Operation.objects.filter(year=year).aggregate( -                                Max('operation_code'))["operation_code__max"] -            data[prefix+'-operation_code'] = max_val and (max_val + 1) or 1 +            data[prefix+'-hidden_ope'] = True          # manage the dynamic choice of towns          if step.startswith('towns-') and hasattr(form, 'management_form') \             and self.session_has_key(request, storage, general_form_key): @@ -1155,6 +1154,24 @@ class OperationWizard(Wizard):                                                       data, files)          return form +    def get_form_initial(self, request, storage, step): +        initial = super(OperationWizard, self).get_form_initial(request, +                                                           storage, step) +        if initial: +            return initial +        # put hidden year and default operation_code field for refs +        general_form_key = 'general-' + self.url_name +        initial = {} +        if step.startswith('refs-') \ +           and self.session_has_key(request, storage, general_form_key): +            year = int(request.session[storage.prefix]['step_data']\ +                                  [general_form_key][general_form_key+"-year"]) +            initial['hidden_year'] = year +            max_val = models.Operation.objects.filter(year=year).aggregate( +                                Max('operation_code'))["operation_code__max"] +            initial['operation_code'] = max_val and (max_val + 1) or 1 +        return initial +      def get_formated_datas(self, forms):          """          Show a specific warning if no archaelogical file is provided @@ -1237,6 +1254,7 @@ class OperationFormReference(forms.Form):                           'operation_type':models.OperationType}      currents = {'associated_file':models.File}      hidden_year = forms.IntegerField(widget=forms.HiddenInput) +    hidden_ope = forms.BooleanField(widget=forms.HiddenInput, required=False)      operation_code = forms.IntegerField(label=u"Operation code")      if settings.COUNTRY == 'fr':          code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE", @@ -1245,6 +1263,8 @@ class OperationFormReference(forms.Form):                             validators=[validators.MaxLengthValidator(10)])      def clean(self):          cleaned_data = self.cleaned_data +        if 'hidden_ope' in cleaned_data and cleaned_data['hidden_ope']: +            return cleaned_data          year = cleaned_data.get("hidden_year")          operation_code = cleaned_data.get("operation_code")          ops = models.Operation.objects.filter(year=year, | 
