summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit68bf61d1c449feda30c064c1696d348918d618cf (patch)
treeb2e724088163bd3a12f56e82f5d1abe2dfe6ab32
parent8a0c70045e4af710193204fbef21bad2e2dd1fca (diff)
downloadIshtar-68bf61d1c449feda30c064c1696d348918d618cf.tar.bz2
Ishtar-68bf61d1c449feda30c064c1696d348918d618cf.zip
Correction of operation index in modification (closes #161)
-rw-r--r--ishtar/furnitures/forms.py40
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,