From 6163889aae5f0724e4ad16cc91eee9c8cb15bb00 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 29 Jun 2011 13:27:09 +0200 Subject: Sources modification and deletion for Operations (refs #497) --- ishtar/ishtar_base/forms_operations.py | 63 +++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 9 deletions(-) (limited to 'ishtar/ishtar_base/forms_operations.py') diff --git a/ishtar/ishtar_base/forms_operations.py b/ishtar/ishtar_base/forms_operations.py index ffa310263..8b10f6e38 100644 --- a/ishtar/ishtar_base/forms_operations.py +++ b/ishtar/ishtar_base/forms_operations.py @@ -37,7 +37,8 @@ import widgets from forms import Wizard, FinalForm, FormSet, SearchWizard, ClosingWizard, \ DeletionWizard, formset_factory, get_now, reverse_lazy, get_form_selection from forms_common import TownForm, TownFormSet, ParcelFormSet, ParcelForm,\ - AuthorFormset, SourceForm, SourceWizard, get_town_field + AuthorFormset, SourceForm, SourceWizard, SourceSelect, SourceDeletionForm,\ + get_town_field def is_preventive(form_name, model, type_key='operation_type', key=''): def func(self, request, storage): @@ -484,6 +485,7 @@ operation_closing_wizard = OperationClosingWizard([ class OperationDeletionWizard(DeletionWizard): model = models.Operation + fields = OperationClosingWizard.fields class OperationDeletionForm(FinalForm): confirm_msg = " " @@ -494,20 +496,63 @@ operation_deletion_wizard = OperationDeletionWizard([ ('final-operation_deletion', OperationDeletionForm)], url_name='operation_deletion',) +#################################### +# Source management for operations # +#################################### + class OperationSourceWizard(SourceWizard): model = models.OperationSource -OperationSourceFormSelection = get_form_selection( - 'OperationSourceFormSelection', _(u"Operation search"), 'operation', +SourceOperationFormSelection = get_form_selection( + 'SourceOperationFormSelection', _(u"Operation search"), 'operation', models.Operation, OperationSelect, 'get-operation', _(u"You should select an operation.")) -operation_source_add_wizard = OperationSourceWizard([ - ('selec-operation_source_add', OperationSourceFormSelection), - ('source-operation_source_add', SourceForm), - ('authors-operation_source_add', AuthorFormset), - ('final-operation_source_add', FinalForm)], - url_name='operation_source_add',) +operation_source_creation_wizard = OperationSourceWizard([ + ('selec-operation_source_creation', SourceOperationFormSelection), + ('source-operation_source_creation', SourceForm), + ('authors-operation_source_creation', AuthorFormset), + ('final-operation_source_creation', FinalForm)], + url_name='operation_source_creation',) + +class OperationSourceSelect(SourceSelect): + operation__towns = get_town_field(label=_(u"Operation's town")) + operation__operation_type = forms.ChoiceField(label=_(u"Operation type"), + choices=[]) + operation__year = forms.IntegerField(label=_(u"Operation's year")) + + def __init__(self, *args, **kwargs): + super(OperationSourceSelect, self).__init__(*args, **kwargs) + self.fields['operation__operation_type'].choices = \ + models.OperationType.get_types() + self.fields['operation__operation_type'].help_text = \ + models.OperationType.get_help() + + +OperationSourceFormSelection = get_form_selection( + 'OperationSourceFormSelection', _(u"Documentation search"), 'pk', + models.OperationSource, OperationSourceSelect, 'get-operationsource', + _(u"You should select a document.")) + +operation_source_modification_wizard = OperationSourceWizard([ + ('selec-operation_source_modification', OperationSourceFormSelection), + ('source-operation_source_modification', SourceForm), + ('authors-operation_source_modification', AuthorFormset), + ('final-operation_source_modification', FinalForm)], + url_name='operation_source_modification',) + +class OperationSourceDeletionWizard(DeletionWizard): + model = models.OperationSource + fields = ['operation', 'title', 'source_type', 'authors',] + +operation_source_deletion_wizard = OperationSourceDeletionWizard([ + ('selec-operation_source_deletion', OperationSourceFormSelection), + ('final-operation_source_deletion', SourceDeletionForm)], + url_name='operation_source_deletion',) + +################################################ +# Administrative act management for operations # +################################################ class OperationAdministrativeActWizard(OperationWizard): edit = False -- cgit v1.2.3