diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-10 18:05:07 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-10 18:05:07 +0100 |
commit | 68bf61d1c449feda30c064c1696d348918d618cf (patch) | |
tree | b2e724088163bd3a12f56e82f5d1abe2dfe6ab32 | |
parent | 8a0c70045e4af710193204fbef21bad2e2dd1fca (diff) | |
download | Ishtar-68bf61d1c449feda30c064c1696d348918d618cf.tar.bz2 Ishtar-68bf61d1c449feda30c064c1696d348918d618cf.zip |
Correction of operation index in modification (closes #161)
-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, |