summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-02-11 03:49:50 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-02-11 03:49:50 +0100
commita9b5d4dff598de052156c8586edac500aca8fede (patch)
tree4b5d5239772666448740fbf21dc00bb59549a130 /ishtar/furnitures/forms.py
parent107463ea683b02c90a090fab65c8803383b9596a (diff)
downloadIshtar-a9b5d4dff598de052156c8586edac500aca8fede.tar.bz2
Ishtar-a9b5d4dff598de052156c8586edac500aca8fede.zip
Modification of archaelogical file's admin act (refs #141)
Diffstat (limited to 'ishtar/furnitures/forms.py')
-rw-r--r--ishtar/furnitures/forms.py59
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