diff options
Diffstat (limited to 'ishtar/furnitures/forms.py')
| -rw-r--r-- | ishtar/furnitures/forms.py | 59 | 
1 files changed, 53 insertions, 6 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 68c672c01..1e23c9877 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -1017,6 +1017,10 @@ file_closing_wizard = FileWizard([  """  class FileAdministrativeActWizard(FileWizard): +    edit = False +    def get_associated_file(self, request, storage, dct): +        return self.get_current_object(request, storage) +      def done(self, request, storage, form_list, **kwargs):          '''          Save the administrative act @@ -1035,23 +1039,33 @@ 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_current_object(request, storage) +        associated_file = self.get_associated_file(request, storage, dct)          if not associated_file:              return self.render(request, storage, form)          dct['associated_file'] = associated_file          dct['history_modifier'] = request.user -        if 'pk_admact': -            pass -            #admact = models.AdministrativeAct.objects() -        else: -            admact = models.AdministrativeAct.objects(**dct) +        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)          res = render_to_response('wizard_done.html', {},                                    context_instance=RequestContext(request))          return res +class FileEditAdministrativeActWizard(FileAdministrativeActWizard): +    model = models.AdministrativeAct +    edit = True +    def get_associated_file(self, request, storage, dct): +        return self.get_current_object(request, storage).associated_file +  class AdministrativeActForm(forms.Form):      form_label = _("Administrative act") +    associated_models = {'act_type':models.ActType, +                         'signatory':models.Person}      act_type = forms.ChoiceField(label=_("Act type"),                  choices=models.ActType.get_types(dct={'intented_to':'F'}))      signatory = forms.IntegerField(label=_("Signatory"), @@ -1065,12 +1079,45 @@ class AdministrativeActForm(forms.Form):      if settings.COUNTRY == 'fr':          ref_sra = forms.CharField(label=u"Référence SRA", max_length=15) +class AdministrativeActFileSelect(forms.Form): +    associated_file__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':'F'})) + +class AdministrativeActFileFormSelection(forms.Form): +    form_label = _("Administrative Act") +    associated_models = {'pk':models.AdministrativeAct} +    currents = {'pk':models.AdministrativeAct} +    pk = forms.IntegerField(label="", required=False, +       widget=widgets.JQueryJqGrid(reverse_lazy('get-administrativeact'), +                       AdministrativeActFileSelect(), models.AdministrativeAct), +       validators=[models.valid_id(models.AdministrativeAct)]) + +    def clean(self): +        cleaned_data = self.cleaned_data +        if 'pk' not in cleaned_data or not cleaned_data['pk']: +            raise forms.ValidationError(_(u"You should select an administrative" +                                           " act.")) +        return cleaned_data + +  file_administrativeact_wizard = FileAdministrativeActWizard([         ('selec-file_administrativeact', FileFormSelection),         ('administrativeact-file_administrativeact', AdministrativeActForm),         ('final-file_administrativeact', FinalForm)],         url_name='file_administrativeact',) +file_administrativeact_modification_wizard = FileEditAdministrativeActWizard([ +       ('selec-file_administrativeact_modification', +                                            AdministrativeActFileFormSelection), +       ('administrativeact-file_administrativeact_modification', +                                            AdministrativeActForm), +       ('final-file_administrativeact_modification', FinalForm)], +       url_name='file_administrativeact_modification',) +  class OperationWizard(Wizard):      model = models.Operation  | 
