summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base/forms_operations.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-06-29 13:27:09 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-06-29 13:27:09 +0200
commit6163889aae5f0724e4ad16cc91eee9c8cb15bb00 (patch)
tree7c483f9b207ccfa5b5391731f5ff5f03693fb42a /ishtar/ishtar_base/forms_operations.py
parent95773b4ccd0beaa31f76c93a7c9b5e24211401dc (diff)
downloadIshtar-6163889aae5f0724e4ad16cc91eee9c8cb15bb00.tar.bz2
Ishtar-6163889aae5f0724e4ad16cc91eee9c8cb15bb00.zip
Sources modification and deletion for Operations (refs #497)
Diffstat (limited to 'ishtar/ishtar_base/forms_operations.py')
-rw-r--r--ishtar/ishtar_base/forms_operations.py63
1 files changed, 54 insertions, 9 deletions
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