summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/forms_operations.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/forms_operations.py')
-rw-r--r--ishtar/furnitures/forms_operations.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/ishtar/furnitures/forms_operations.py b/ishtar/furnitures/forms_operations.py
index 17fd8f69d..3c2dbd734 100644
--- a/ishtar/furnitures/forms_operations.py
+++ b/ishtar/furnitures/forms_operations.py
@@ -118,7 +118,6 @@ class OperationWizard(Wizard):
year = int(request.session[storage.prefix]['step_data']\
[general_form_key][general_form_key+"-year"])
data[prefix+'-hidden_year'] = year
- data[prefix+'-hidden_ope'] = True
# manage the dynamic choice of towns
if step.startswith('towns-') and hasattr(form, 'management_form'):
data['TOWNS'] = self.get_towns(request, storage)
@@ -158,13 +157,11 @@ class OperationWizard(Wizard):
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):
+ and self.session_has_key(request, storage, general_form_key)\
+ and 'operation_code' not in initial:
year = int(request.session[storage.prefix]['step_data']\
[general_form_key][general_form_key+"-year"])
initial['hidden_year'] = year
@@ -258,23 +255,24 @@ class OperationFormReference(forms.Form):
'associated_file':models.File,
'operation_type':models.OperationType}
currents = {'associated_file':models.File}
+ pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
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",
required=False)
code_dracar = forms.CharField(label=u"Code DRACAR", required=False,
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,
- operation_code=operation_code).count()
- if ops:
+ operation_code=operation_code)
+ if 'pk' in cleaned_data and cleaned_data['pk']:
+ ops = ops.exclude(pk=cleaned_data['pk'])
+ if ops.count():
max_val = models.Operation.objects.filter(year=year).aggregate(
Max('operation_code'))["operation_code__max"]
raise forms.ValidationError(_(u"Operation code already exist for "