diff options
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',) | 
