summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r--ishtar/furnitures/forms.py58
1 files changed, 56 insertions, 2 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py
index cb94e2889..caab07e8c 100644
--- a/ishtar/furnitures/forms.py
+++ b/ishtar/furnitures/forms.py
@@ -102,7 +102,12 @@ class Wizard(NamedUrlSessionFormWizard):
files=storage.get_step_files(form_key))
form_obj.is_valid()
final_form_list.append(form_obj)
+ last_form = final_form_list[-1]
context.update({'datas':self.get_formated_datas(final_form_list)})
+ if hasattr(last_form, 'confirm_msg'):
+ context.update({'confirm_msg':last_form.confirm_msg})
+ if hasattr(last_form, 'confirm_end_msg'):
+ context.update({'confirm_end_msg':last_form.confirm_end_msg})
return context
def get_formated_datas(self, forms):
@@ -911,8 +916,6 @@ class OperationFormGeneral(forms.Form):
choices=models.OperationType.get_types())
start_date = forms.DateField(label=_(u"Start date"), required=False,
widget=widgets.JQueryDate)
- end_date = forms.DateField(label=_(u"End date"), required=False,
- widget=widgets.JQueryDate)
year = forms.IntegerField(label=_("Year"),
initial=lambda:datetime.datetime.now().year,
validators=[validators.MinValueValidator(1900),
@@ -1015,3 +1018,54 @@ operation_modification_wizard = OperationWizard([
('remains-operation_modification', RemainFormSet),
('final-operation_modification', FinalForm)],
url_name='operation_modification',)
+
+class OperationDateFormSelection(forms.Form):
+ form_label = _("Closing date")
+ end_date = forms.DateField(label=_(u"Closing date"),
+ widget=widgets.JQueryDate)
+
+class OperationClosingWizard(Wizard):
+ model = models.Operation
+ fields = ['year', 'operation_code', 'operation_type', 'associated_file',
+ 'in_charge', 'start_date', 'end_date', 'comment', 'towns', 'remains']
+
+ def get_formated_datas(self, forms):
+ datas = super(OperationClosingWizard, self).get_formated_datas(forms)
+ current_obj = None
+ for form in forms:
+ if not hasattr(form, "cleaned_data"):
+ continue
+ for key in form.cleaned_data:
+ if key == 'pk':
+ model = form.associated_models['pk']
+ current_obj = model.objects.get(pk=form.cleaned_data['pk'])
+ if not current_obj:
+ return datas
+ res = {}
+ for field in self.model._meta.fields + self.model._meta.many_to_many:
+ if field.name not in self.fields:
+ continue
+ value = getattr(current_obj, field.name)
+ if not value:
+ continue
+ if hasattr(value, 'all'):
+ value = ", ".join([unicode(item) for item in value.all()])
+ if not value:
+ continue
+ else:
+ value = unicode(value)
+ res[field.name] = (field.verbose_name, value, '')
+ for field in self.fields:
+ if field in res:
+ datas[0][1].append(res[field])
+ return datas
+
+class FinalOperationClosingForm(FinalForm):
+ confirm_msg = " "
+ confirm_end_msg = _(u"Would you like to close this operation?")
+
+operation_closing_wizard = OperationClosingWizard([
+ ('selec-operation_closing', OperationFormSelection),
+ ('date-operation_closing', OperationDateFormSelection),
+ ('final-operation_closing', FinalOperationClosingForm)],
+ url_name='operation_closing',)