diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-11 16:23:17 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-02-11 16:23:17 +0100 |
commit | e33edf08f9310a0cfe9841a5db8ee7ab35a1190e (patch) | |
tree | 2a3c3b1f5e726e2cab5b7332ef5251a92098c3f5 /ishtar/furnitures/forms.py | |
parent | b68a5c24fa8e590255fb64fd649b506ce59ff2c9 (diff) | |
download | Ishtar-e33edf08f9310a0cfe9841a5db8ee7ab35a1190e.tar.bz2 Ishtar-e33edf08f9310a0cfe9841a5db8ee7ab35a1190e.zip |
Modification of operation's admin act (refs #141)
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r-- | ishtar/furnitures/forms.py | 52 |
1 files changed, 42 insertions, 10 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 1e23c9877..672f2e67a 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -1018,7 +1018,7 @@ file_closing_wizard = FileWizard([ class FileAdministrativeActWizard(FileWizard): edit = False - def get_associated_file(self, request, storage, dct): + def get_associated_item(self, request, storage, dct): return self.get_current_object(request, storage) def done(self, request, storage, form_list, **kwargs): @@ -1039,19 +1039,22 @@ class FileAdministrativeActWizard(FileWizard): if key in associated_models and value: value = associated_models[key].objects.get(pk=value) dct[key] = value - associated_file = self.get_associated_file(request, storage, dct) - if not associated_file: + associated_item = self.get_associated_item(request, storage, dct) + if not associated_item: return self.render(request, storage, form) - dct['associated_file'] = associated_file + if isinstance(associated_item, models.File): + dct['associated_file'] = associated_item + elif isinstance(associated_item, models.Operation): + dct['operation'] = associated_item dct['history_modifier'] = request.user if self.edit: admact = self.get_current_object(request, storage) for k in dct: if hasattr(admact, k): setattr(admact, k, dct[k]) - admact.save() else: admact = models.AdministrativeAct(**dct) + admact.save() res = render_to_response('wizard_done.html', {}, context_instance=RequestContext(request)) return res @@ -1059,11 +1062,11 @@ class FileAdministrativeActWizard(FileWizard): class FileEditAdministrativeActWizard(FileAdministrativeActWizard): model = models.AdministrativeAct edit = True - def get_associated_file(self, request, storage, dct): + def get_associated_item(self, request, storage, dct): return self.get_current_object(request, storage).associated_file class AdministrativeActForm(forms.Form): - form_label = _("Administrative act") + form_label = _("General") associated_models = {'act_type':models.ActType, 'signatory':models.Person} act_type = forms.ChoiceField(label=_("Act type"), @@ -1510,13 +1513,42 @@ operation_deletion_wizard = OperationDeletionWizard([ class OperationAdministrativeActWizard(FileAdministrativeActWizard): model = models.Operation -class OpeAdministrativeActForm(AdministrativeActForm): - form_label = _("Administrative act") +class OperationEditAdministrativeActWizard(FileAdministrativeActWizard): + model = models.AdministrativeAct + edit = True + def get_associated_item(self, request, storage, dct): + return self.get_current_object(request, storage).operation + +class AdministrativeActOpeSelect(forms.Form): + operation__towns = forms.IntegerField(label=_(u"Town"), + widget=widgets.JQueryAutoComplete("/" + settings.URL_PATH + \ + 'autocomplete-town', associated_model=models.Town), + validators=[models.valid_id(models.Town)]) + act_type = forms.ChoiceField(label=_("Act type"), + choices=models.ActType.get_types(dct={'intented_to':'O'})) + +class AdministrativeActOpeFormSelection(AdministrativeActFileFormSelection): + pk = forms.IntegerField(label="", required=False, + widget=widgets.JQueryJqGrid(reverse_lazy('get-administrativeact'), + AdministrativeActOpeSelect(), models.AdministrativeAct), + validators=[models.valid_id(models.AdministrativeAct)]) + +class AdministrativeActOpeForm(AdministrativeActForm): + form_label = _("General") act_type = forms.ChoiceField(label=_("Act type"), choices=models.ActType.get_types(dct={'intented_to':'O'})) operation_administrativeact_wizard = OperationAdministrativeActWizard([ ('selec-operation_administrativeact', OperationFormSelection), - ('administrativeact-operation_administrativeact', OpeAdministrativeActForm), + ('administrativeact-operation_administrativeact', AdministrativeActOpeForm), ('final-operation_administrativeact', FinalForm)], url_name='operation_administrativeact',) + +operation_administrativeact_modification_wizard = \ + OperationEditAdministrativeActWizard([ + ('selec-operation_administrativeact_modification', + AdministrativeActOpeFormSelection), + ('administrativeact-operation_administrativeact_modification', + AdministrativeActOpeForm), + ('final-operation_administrativeact_modification', FinalForm)], + url_name='operation_administrativeact_modification',) |