summaryrefslogtreecommitdiff
path: root/archaeological_operations/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r--archaeological_operations/views.py287
1 files changed, 161 insertions, 126 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 38280ccbf..657ee7b1e 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -28,33 +28,15 @@ from django.shortcuts import render, redirect
from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy
from archaeological_operations import models
-from archaeological_operations.forms import ArchaeologicalSiteForm, \
- OperationFormSelection, OperationFormFileChoice, OperationFormGeneral, \
- OperationFormModifGeneral, FinalOperationClosingForm, \
- CollaboratorForm, ArchaeologicalSiteFormSet, OperationFormPreventive, \
- OperationFormPreventiveDiag, TownFormset, SelectedTownFormset, \
- SelectedParcelGeneralFormSet, SelectedParcelFormSet, RemainForm, \
- PeriodForm, RecordRelationsFormSet, OperationFormAbstract, \
- OperationDeletionForm, SiteFormSelection, \
- AdministrativeActOpeFormSelection, AdministrativeActOpeForm, \
- AdministrativeActOpeModifForm, FinalAdministrativeActDeleteForm, \
- AdministrativeActRegisterFormSelection, DocumentGenerationAdminActForm, \
- SiteForm, SiteTownFormset, SiteUnderwaterForm, check_underwater_module, \
- CourtOrderedSeizureForm, SiteSelect, OperationSelect, \
- QAOperationFormMulti, OperationFormMultiSelection, SiteFormMultiSelection
-from archaeological_operations.wizards import has_associated_file, \
- is_preventive, is_judiciary, OperationWizard, OperationModificationWizard, \
- OperationClosingWizard, OperationDeletionWizard, SiteSearch, \
- OperationAdministrativeActWizard, OperationEditAdministrativeActWizard, \
- AdministrativeActDeletionWizard, SiteWizard, SiteModificationWizard, \
- SiteDeletionWizard, OperationSearch
+from archaeological_operations import forms
+from archaeological_operations import wizards
from ishtar_common.forms import ClosingDateFormSelection, FinalForm, \
FinalDeleteForm
from ishtar_common.models import get_current_profile, IshtarSiteProfile, \
DocumentTemplate
from ishtar_common.utils import put_session_message, check_rights_condition
from ishtar_common.views import gen_generate_doc, QAItemEditForm, \
- QABaseLockView, wizard_is_available
+ QABaseLockView, wizard_is_available, QAItemForm
from ishtar_common.views_item import get_item, show_item, revert_item, \
new_qa_item
from ishtar_common.wizards import SearchWizard
@@ -108,7 +90,7 @@ def autocomplete_archaeologicalsite(request):
new_archaeologicalsite = new_qa_item(models.ArchaeologicalSite,
- ArchaeologicalSiteForm, many=True)
+ forms.ArchaeologicalSiteForm, many=True)
def autocomplete_operation(request):
@@ -159,7 +141,7 @@ def get_available_operation_code(request, year=None):
get_operation = get_item(models.Operation, 'get_operation', 'operation',
- search_form=OperationSelect)
+ search_form=forms.OperationSelect)
show_operation = show_item(models.Operation, 'operation')
revert_operation = revert_item(models.Operation)
@@ -183,28 +165,28 @@ def dashboard_operation(request, *args, **kwargs):
return render(request, 'ishtar/dashboards/dashboard_operation.html', dct)
-operation_search_wizard = OperationSearch.as_view(
- [('general-operation_search', OperationFormSelection)],
+operation_search_wizard = wizards.OperationSearch.as_view(
+ [('general-operation_search', forms.OperationFormSelection)],
label=_(u"Operation search"),
url_name='operation_search',)
wizard_steps = [
- ('filechoice-operation_creation', OperationFormFileChoice),
- ('general-operation_creation', OperationFormGeneral),
- ('judiciary-operation_creation', CourtOrderedSeizureForm),
- ('collaborators-operation_creation', CollaboratorForm),
- ('archaeologicalsite-operation_creation', ArchaeologicalSiteFormSet),
- ('preventive-operation_creation', OperationFormPreventive),
- ('preventivediag-operation_creation', OperationFormPreventiveDiag),
- ('townsgeneral-operation_creation', TownFormset),
- ('towns-operation_creation', SelectedTownFormset),
- ('parcelsgeneral-operation_creation', SelectedParcelGeneralFormSet),
- ('parcels-operation_creation', SelectedParcelFormSet),
- ('remains-operation_creation', RemainForm),
- ('periods-operation_creation', PeriodForm),
- ('relations-operation_creation', RecordRelationsFormSet),
- ('abstract-operation_creation', OperationFormAbstract),
+ ('filechoice-operation_creation', forms.OperationFormFileChoice),
+ ('general-operation_creation', forms.OperationFormGeneral),
+ ('judiciary-operation_creation', forms.CourtOrderedSeizureForm),
+ ('collaborators-operation_creation', forms.CollaboratorForm),
+ ('archaeologicalsite-operation_creation', forms.ArchaeologicalSiteFormSet),
+ ('preventive-operation_creation', forms.OperationFormPreventive),
+ ('preventivediag-operation_creation', forms.OperationFormPreventiveDiag),
+ ('townsgeneral-operation_creation', forms.TownFormset),
+ ('towns-operation_creation', forms.SelectedTownFormset),
+ ('parcelsgeneral-operation_creation', forms.SelectedParcelGeneralFormSet),
+ ('parcels-operation_creation', forms.SelectedParcelFormSet),
+ ('remains-operation_creation', forms.RemainForm),
+ ('periods-operation_creation', forms.PeriodForm),
+ ('relations-operation_creation', forms.RecordRelationsFormSet),
+ ('abstract-operation_creation', forms.OperationFormAbstract),
('final-operation_creation', FinalForm)]
@@ -224,49 +206,51 @@ check_files_for_operation = get_check_files_for_operation()
ope_crea_condition_dict = {
'filechoice-operation_creation': check_files_for_operation,
- 'judiciary-operation_creation': is_judiciary(
+ 'judiciary-operation_creation': wizards.is_judiciary(
'general-operation_creation', models.OperationType, 'operation_type',
),
'preventive-operation_creation':
get_check_files_for_operation(
- is_preventive('general-operation_creation', models.OperationType,
- 'operation_type', 'prev_excavation')),
+ wizards.is_preventive('general-operation_creation',
+ models.OperationType, 'operation_type',
+ 'prev_excavation')),
'preventivediag-operation_creation':
get_check_files_for_operation(
- is_preventive('general-operation_creation', models.OperationType,
- 'operation_type', 'arch_diagnostic')),
- 'townsgeneral-operation_creation': has_associated_file(
+ wizards.is_preventive('general-operation_creation',
+ models.OperationType, 'operation_type',
+ 'arch_diagnostic')),
+ 'townsgeneral-operation_creation': wizards.has_associated_file(
'filechoice-operation_creation', negate=True),
- 'towns-operation_creation': has_associated_file(
+ 'towns-operation_creation': wizards.has_associated_file(
'filechoice-operation_creation'),
- 'parcelsgeneral-operation_creation': has_associated_file(
+ 'parcelsgeneral-operation_creation': wizards.has_associated_file(
'filechoice-operation_creation', negate=True),
- 'parcels-operation_creation': has_associated_file(
+ 'parcels-operation_creation': wizards.has_associated_file(
'filechoice-operation_creation'),
}
-operation_creation_wizard = OperationWizard.as_view(
+operation_creation_wizard = wizards.OperationWizard.as_view(
wizard_steps,
label=_(u"New operation"),
condition_dict=ope_crea_condition_dict,
url_name='operation_creation',)
operation_modif_wizard_steps = [
- ('selec-operation_modification', OperationFormSelection),
- ('general-operation_modification', OperationFormModifGeneral),
- ('judiciary-operation_modification', CourtOrderedSeizureForm),
- ('collaborators-operation_modification', CollaboratorForm),
- ('archaeologicalsite-operation_modification', ArchaeologicalSiteFormSet),
- ('preventive-operation_modification', OperationFormPreventive),
- ('preventivediag-operation_modification', OperationFormPreventiveDiag),
- ('towns-operation_modification', SelectedTownFormset),
- ('townsgeneral-operation_modification', TownFormset),
- ('parcels-operation_modification', SelectedParcelFormSet),
- ('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet),
- ('remains-operation_modification', RemainForm),
- ('periods-operation_modification', PeriodForm),
- ('relations-operation_modification', RecordRelationsFormSet),
- ('abstract-operation_modification', OperationFormAbstract),
+ ('selec-operation_modification', forms.OperationFormSelection),
+ ('general-operation_modification', forms.OperationFormModifGeneral),
+ ('judiciary-operation_modification', forms.CourtOrderedSeizureForm),
+ ('collaborators-operation_modification', forms.CollaboratorForm),
+ ('archaeologicalsite-operation_modification', forms.ArchaeologicalSiteFormSet),
+ ('preventive-operation_modification', forms.OperationFormPreventive),
+ ('preventivediag-operation_modification', forms.OperationFormPreventiveDiag),
+ ('towns-operation_modification', forms.SelectedTownFormset),
+ ('townsgeneral-operation_modification', forms.TownFormset),
+ ('parcels-operation_modification', forms.SelectedParcelFormSet),
+ ('parcelsgeneral-operation_modification', forms.SelectedParcelGeneralFormSet),
+ ('remains-operation_modification', forms.RemainForm),
+ ('periods-operation_modification', forms.PeriodForm),
+ ('relations-operation_modification', forms.RecordRelationsFormSet),
+ ('abstract-operation_modification', forms.OperationFormAbstract),
('final-operation_modification', FinalForm)
]
@@ -274,27 +258,29 @@ operation_modif_wizard_steps = [
ope_modif_condition_dict = {
'preventive-operation_modification':
get_check_files_for_operation(
- is_preventive('general-operation_modification', models.OperationType,
- 'operation_type', 'prev_excavation')),
+ wizards.is_preventive('general-operation_modification',
+ models.OperationType, 'operation_type',
+ 'prev_excavation')),
'preventivediag-operation_modification':
get_check_files_for_operation(
- is_preventive('general-operation_modification', models.OperationType,
- 'operation_type', 'arch_diagnostic')),
- 'judiciary-operation_modification': is_judiciary(
+ wizards.is_preventive('general-operation_modification',
+ models.OperationType, 'operation_type',
+ 'arch_diagnostic')),
+ 'judiciary-operation_modification': wizards.is_judiciary(
'general-operation_modification', models.OperationType, 'operation_type',
),
- 'townsgeneral-operation_modification': has_associated_file(
+ 'townsgeneral-operation_modification': wizards.has_associated_file(
'general-operation_modification', negate=True),
- 'towns-operation_modification': has_associated_file(
+ 'towns-operation_modification': wizards.has_associated_file(
'general-operation_modification'),
- 'parcelsgeneral-operation_modification': has_associated_file(
+ 'parcelsgeneral-operation_modification': wizards.has_associated_file(
'general-operation_modification', negate=True),
- 'parcels-operation_modification': has_associated_file(
+ 'parcels-operation_modification': wizards.has_associated_file(
'general-operation_modification'),
}
-operation_modification_wizard = OperationModificationWizard.as_view(
+operation_modification_wizard = wizards.OperationModificationWizard.as_view(
operation_modif_wizard_steps,
label=_(u"Operation modification"),
condition_dict=ope_modif_condition_dict,
@@ -307,7 +293,7 @@ def operation_modify(request, pk):
return HttpResponseRedirect("/")
wizard_url = 'operation_modification'
- OperationModificationWizard.session_set_value(
+ wizards.OperationModificationWizard.session_set_value(
request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(reverse(wizard_url,
kwargs={'step': 'general-' + wizard_url}))
@@ -315,29 +301,29 @@ def operation_modify(request, pk):
def operation_add(request, file_id):
operation_creation_wizard(request)
- OperationWizard.session_set_value(
+ wizards.OperationWizard.session_set_value(
request, 'filechoice-operation_creation', 'associated_file',
file_id, reset=True)
return redirect(reverse('operation_creation',
kwargs={'step': 'general-operation_creation'}))
operation_closing_steps = [
- ('selec-operation_closing', OperationFormSelection),
+ ('selec-operation_closing', forms.OperationFormSelection),
('date-operation_closing', ClosingDateFormSelection),
- ('final-operation_closing', FinalOperationClosingForm)]
+ ('final-operation_closing', forms.FinalOperationClosingForm)]
-operation_closing_wizard = OperationClosingWizard.as_view(
+operation_closing_wizard = wizards.OperationClosingWizard.as_view(
operation_closing_steps,
label=_(u"Operation closing"),
url_name='operation_closing',)
operation_deletion_steps = [
- ('selec-operation_deletion', OperationFormMultiSelection),
- ('final-operation_deletion', OperationDeletionForm)
+ ('selec-operation_deletion', forms.OperationFormMultiSelection),
+ ('final-operation_deletion', forms.OperationDeletionForm)
]
-operation_deletion_wizard = OperationDeletionWizard.as_view(
+operation_deletion_wizard = wizards.OperationDeletionWizard.as_view(
operation_deletion_steps,
label=_(u"Operation deletion"),
url_name='operation_deletion',)
@@ -349,7 +335,7 @@ def operation_delete(request, pk):
return HttpResponseRedirect("/")
wizard_url = 'operation_deletion'
- OperationDeletionWizard.session_set_value(
+ wizards.OperationDeletionWizard.session_set_value(
request, 'selec-' + wizard_url, 'pks', pk, reset=True)
return redirect(reverse(wizard_url,
kwargs={'step': 'final-' + wizard_url}))
@@ -362,43 +348,44 @@ def site_extra_context(request, item):
get_site = get_item(models.ArchaeologicalSite, 'get_site', 'site',
- search_form=SiteSelect)
+ search_form=forms.SiteSelect)
show_site = show_item(
models.ArchaeologicalSite, 'site',
extra_dct=site_extra_context
)
revert_site = revert_item(models.ArchaeologicalSite)
-site_search_wizard = SiteSearch.as_view(
- [('general-site_search', SiteFormSelection)],
+site_search_wizard = wizards.SiteSearch.as_view(
+ [('general-site_search', forms.SiteFormSelection)],
url_name='site_search',
)
site_creation_steps = [
- ('general-site_creation', SiteForm),
- ('towns-site_creation', SiteTownFormset),
- ('underwater-site_creation', SiteUnderwaterForm),
+ ('general-site_creation', forms.SiteForm),
+ ('towns-site_creation', forms.SiteTownFormset),
+ ('underwater-site_creation', forms.SiteUnderwaterForm),
('final-site_creation', FinalForm)
]
-site_creation_wizard = SiteWizard.as_view(
+site_creation_wizard = wizards.SiteWizard.as_view(
site_creation_steps,
- condition_dict={'underwater-site_creation': check_underwater_module},
+ condition_dict={'underwater-site_creation': forms.check_underwater_module},
url_name='site_creation',
)
site_modification_steps = [
- ('selec-site_modification', SiteFormSelection),
- ('general-site_modification', SiteForm),
- ('towns-site_modification', SiteTownFormset),
- ('underwater-site_modification', SiteUnderwaterForm),
+ ('selec-site_modification', forms.SiteFormSelection),
+ ('general-site_modification', forms.SiteForm),
+ ('towns-site_modification', forms.SiteTownFormset),
+ ('underwater-site_modification', forms.SiteUnderwaterForm),
('final-site_modification', FinalForm)
]
-site_modification_wizard = SiteModificationWizard.as_view(
+site_modification_wizard = wizards.SiteModificationWizard.as_view(
site_modification_steps,
- condition_dict={'underwater-site_modification': check_underwater_module},
+ condition_dict={
+ 'underwater-site_modification': forms.check_underwater_module},
url_name='site_modification',
)
@@ -408,18 +395,18 @@ def site_modify(request, pk):
models.ArchaeologicalSite, pk):
return HttpResponseRedirect("/")
wizard_url = 'site_modification'
- SiteModificationWizard.session_set_value(
+ wizards.SiteModificationWizard.session_set_value(
request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(reverse(wizard_url,
kwargs={'step': 'general-' + wizard_url}))
site_deletion_steps = [
- ('selec-site_deletion', SiteFormMultiSelection),
+ ('selec-site_deletion', forms.SiteFormMultiSelection),
('final-site_deletion', FinalDeleteForm)
]
-site_deletion_wizard = SiteDeletionWizard.as_view(
+site_deletion_wizard = wizards.SiteDeletionWizard.as_view(
site_deletion_steps,
label=_(u"Site deletion"),
url_name='site_deletion',)
@@ -430,38 +417,38 @@ def site_delete(request, pk):
models.ArchaeologicalSite, pk):
return HttpResponseRedirect("/")
wizard_url = 'site_deletion'
- SiteDeletionWizard.session_set_value(
+ wizards.SiteDeletionWizard.session_set_value(
request, 'selec-' + wizard_url, 'pks', pk, reset=True)
return redirect(reverse(wizard_url,
kwargs={'step': 'final-' + wizard_url}))
-operation_administrativeactop_search_wizard = SearchWizard.as_view([
+operation_administrativeactop_search_wizard = wizards.SearchWizard.as_view([
('general-operation_administrativeactop_search',
- AdministrativeActOpeFormSelection)],
+ forms.AdministrativeActOpeFormSelection)],
label=_(u"Administrative act search"),
url_name='operation_administrativeactop_search',)
administrativeactop_steps = [
- ('selec-operation_administrativeactop', OperationFormSelection),
+ ('selec-operation_administrativeactop', forms.OperationFormSelection),
('administrativeact-operation_administrativeactop',
- AdministrativeActOpeForm),
+ forms.AdministrativeActOpeForm),
('final-operation_administrativeactop', FinalForm)]
operation_administrativeactop_wizard = \
- OperationAdministrativeActWizard.as_view(
+ wizards.OperationAdministrativeActWizard.as_view(
administrativeactop_steps,
label=_(u"Operation: new administrative act"),
url_name='operation_administrativeactop',)
operation_administrativeactop_modification_wizard = \
- OperationEditAdministrativeActWizard.as_view([
+ wizards.OperationEditAdministrativeActWizard.as_view([
('selec-operation_administrativeactop_modification',
- AdministrativeActOpeFormSelection),
+ forms.AdministrativeActOpeFormSelection),
('administrativeact-operation_administrativeactop_modification',
- AdministrativeActOpeModifForm),
+ forms.AdministrativeActOpeModifForm),
('final-operation_administrativeactop_modification', FinalForm)],
- label=_(u"Operation: administrative act modification"),
+ label=_("Operation: administrative act modification"),
url_name='operation_administrativeactop_modification',)
@@ -471,18 +458,18 @@ def operation_administrativeactop_modify(request, pk):
models.AdministrativeAct, pk):
return HttpResponseRedirect("/")
wizard_url = 'operation_administrativeactop_modification'
- OperationEditAdministrativeActWizard.session_set_value(
+ wizards.OperationEditAdministrativeActWizard.session_set_value(
request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(
reverse(wizard_url, kwargs={'step': 'administrativeact-' + wizard_url}))
operation_administrativeactop_deletion_wizard = \
- AdministrativeActDeletionWizard.as_view([
+ wizards.AdministrativeActDeletionWizard.as_view([
('selec-operation_administrativeactop_deletion',
- AdministrativeActOpeFormSelection),
+ forms.AdministrativeActOpeFormSelection),
('final-operation_administrativeactop_deletion',
- FinalAdministrativeActDeleteForm)],
+ forms.FinalAdministrativeActDeleteForm)],
label=_(u"Operation: administrative act deletion"),
url_name='operation_administrativeactop_deletion',)
@@ -493,7 +480,7 @@ def operation_administrativeactop_delete(request, pk):
models.AdministrativeAct, pk):
return HttpResponseRedirect("/")
wizard_url = 'operation_administrativeactop_deletion'
- AdministrativeActDeletionWizard.session_set_value(
+ wizards.AdministrativeActDeletionWizard.session_set_value(
request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(
reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
@@ -501,7 +488,7 @@ def operation_administrativeactop_delete(request, pk):
administrativact_register_wizard = SearchWizard.as_view([
('general-administrativact_register',
- AdministrativeActRegisterFormSelection)],
+ forms.AdministrativeActRegisterFormSelection)],
label=pgettext_lazy('admin act register', u"Register"),
url_name='administrativact_register',)
@@ -511,7 +498,7 @@ generatedoc_administrativeactop = gen_generate_doc(models.AdministrativeAct)
def administrativeactfile_document(
request, file=False, treatment=False, treatment_file=False):
- search_form = AdministrativeActOpeFormSelection
+ search_form = forms.AdministrativeActOpeFormSelection
document_type = 'O'
if file:
from archaeological_files.forms import \
@@ -533,6 +520,7 @@ def administrativeactfile_document(
models.AdministrativeAct):
return HttpResponse(content_type='text/plain')
dct = {}
+ DocumentGenerationAdminActForm = forms.DocumentGenerationAdminActForm
if request.POST:
dct['search_form'] = search_form(request.POST)
dct['template_form'] = DocumentGenerationAdminActForm(
@@ -578,22 +566,22 @@ def administrativeactfile_document(
def reset_wizards(request):
for wizard_class, url_name in (
- (OperationWizard, 'operation_creation'),
- (OperationModificationWizard, 'operation_modification'),
- (OperationClosingWizard, 'operation_closing'),
- (OperationDeletionWizard, 'operation_deletion_wizard'),
- (OperationAdministrativeActWizard,
+ (wizards.OperationWizard, 'operation_creation'),
+ (wizards.OperationModificationWizard, 'operation_modification'),
+ (wizards.OperationClosingWizard, 'operation_closing'),
+ (wizards.OperationDeletionWizard, 'operation_deletion_wizard'),
+ (wizards.OperationAdministrativeActWizard,
'operation_administrativeactop'),
- (OperationEditAdministrativeActWizard,
+ (wizards.OperationEditAdministrativeActWizard,
'operation_administrativeactop_modification'),
- (AdministrativeActDeletionWizard,
+ (wizards.AdministrativeActDeletionWizard,
'operation_administrativeactop_deletion'),):
wizard_class.session_reset(request, url_name)
class QAOperationForm(QAItemEditForm):
model = models.Operation
- form_class = QAOperationFormMulti
+ form_class = forms.QAOperationFormMulti
class QAOperationLockView(QABaseLockView):
@@ -604,3 +592,50 @@ class QAOperationLockView(QABaseLockView):
class QASiteLockView(QABaseLockView):
model = models.ArchaeologicalSite
base_url = "site-qa-lock"
+
+
+class QAOperationdDuplicateFormView(QAItemForm):
+ template_name = 'ishtar/forms/qa_operation_duplicate.html'
+ model = models.Operation
+ page_name = _("Duplicate")
+ form_class = forms.QAOperationDuplicateForm
+ base_url = "operation-qa-duplicate"
+
+ def get_form_kwargs(self):
+ kwargs = super(QAOperationdDuplicateFormView, self).get_form_kwargs()
+ kwargs['user'] = self.request.user
+ return kwargs
+
+ def form_valid(self, form):
+ form.save()
+ return HttpResponseRedirect(reverse("success"))
+
+ def get_context_data(self, **kwargs):
+ data = super(QAOperationdDuplicateFormView, self).get_context_data(
+ **kwargs)
+ data['action_name'] = _("Duplicate")
+ return data
+
+
+class QAArchaeologicalSiteDuplicateFormView(QAItemForm):
+ template_name = 'ishtar/forms/qa_site_duplicate.html'
+ model = models.ArchaeologicalSite
+ page_name = _("Duplicate")
+ form_class = forms.QAArchaeologicalSiteDuplicateForm
+ base_url = "site-qa-duplicate"
+
+ def get_form_kwargs(self):
+ kwargs = super(QAArchaeologicalSiteDuplicateFormView,
+ self).get_form_kwargs()
+ kwargs['user'] = self.request.user
+ return kwargs
+
+ def form_valid(self, form):
+ form.save()
+ return HttpResponseRedirect(reverse("success"))
+
+ def get_context_data(self, **kwargs):
+ data = super(QAArchaeologicalSiteDuplicateFormView,
+ self).get_context_data(**kwargs)
+ data['action_name'] = _("Duplicate")
+ return data