diff options
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 287 |
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 |