From 9bc04754f1a8a01cb7457c335c41a3b2fee0a68c Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 13 Sep 2019 16:52:49 +0200 Subject: Delete action: operations, sites, orgas, containers, warehouses --- archaeological_operations/views.py | 107 ++++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 48 deletions(-) (limited to 'archaeological_operations/views.py') diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index ca09510f7..d71bd0d02 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -52,7 +52,8 @@ from ishtar_common.forms import ClosingDateFormSelection, FinalForm, \ 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 +from ishtar_common.views import gen_generate_doc, QAItemEditForm, \ + QABaseLockView, wizard_is_available from ishtar_common.views_item import get_item, show_item, revert_item, \ new_qa_item from ishtar_common.wizards import SearchWizard @@ -163,7 +164,8 @@ show_operation = show_item(models.Operation, 'operation') revert_operation = revert_item(models.Operation) get_administrativeactop = get_item( - models.AdministrativeAct, 'get_administrativeactop', 'administrativeactop') + models.AdministrativeAct, 'get_administrativeactop', 'administrativeactop', + base_request={"operation__pk__isnull": False}) get_administrativeact = get_item( models.AdministrativeAct, 'get_administrativeact', 'administrativeact') @@ -299,27 +301,15 @@ operation_modification_wizard = OperationModificationWizard.as_view( def operation_modify(request, pk): - try: - operation_modification_wizard(request) - except IndexError: # no step available - put_session_message( - request.session.session_key, - _(u"You don't have sufficient permissions to do this action."), - 'warning' - ) + if not wizard_is_available(operation_modification_wizard, request, + models.Operation, pk): return HttpResponseRedirect("/") - q = models.Operation.objects.filter(pk=pk) - if not q.count(): - raise Http404() - item = q.all()[0] - if item.locked: - raise Http404() - + wizard_url = 'operation_modification' OperationModificationWizard.session_set_value( - request, 'selec-operation_modification', 'pk', pk, reset=True) - return redirect(reverse('operation_modification', - kwargs={'step': 'general-operation_modification'})) + request, 'selec-' + wizard_url, 'pk', pk, reset=True) + return redirect(reverse(wizard_url, + kwargs={'step': 'general-' + wizard_url})) def operation_add(request, file_id): @@ -352,6 +342,18 @@ operation_deletion_wizard = OperationDeletionWizard.as_view( url_name='operation_deletion',) +def operation_delete(request, pk): + if not wizard_is_available(operation_deletion_wizard, request, + models.Operation, pk): + return HttpResponseRedirect("/") + + wizard_url = 'operation_deletion' + OperationDeletionWizard.session_set_value( + request, 'selec-' + wizard_url, 'pk', pk, reset=True) + return redirect(reverse(wizard_url, + kwargs={'step': 'final-' + wizard_url})) + + # archaeological sites def site_extra_context(request, item): @@ -401,27 +403,14 @@ site_modification_wizard = SiteModificationWizard.as_view( def site_modify(request, pk): - try: - site_modification_wizard(request) - except IndexError: # no step available - put_session_message( - request.session.session_key, - _(u"You don't have sufficient permissions to do this action."), - 'warning' - ) + if not wizard_is_available(site_modification_wizard, request, + models.ArchaeologicalSite, pk): return HttpResponseRedirect("/") - - q = models.ArchaeologicalSite.objects.filter(pk=pk) - if not q.count(): - raise Http404() - item = q.all()[0] - if item.locked: - raise Http404() - + wizard_url = 'site_modification' SiteModificationWizard.session_set_value( - request, 'selec-site_modification', 'pk', pk, reset=True) - return redirect(reverse('site_modification', - kwargs={'step': 'general-site_modification'})) + request, 'selec-' + wizard_url, 'pk', pk, reset=True) + return redirect(reverse(wizard_url, + kwargs={'step': 'general-' + wizard_url})) site_deletion_steps = [ @@ -434,6 +423,17 @@ site_deletion_wizard = SiteDeletionWizard.as_view( label=_(u"Site deletion"), url_name='site_deletion',) + +def site_delete(request, pk): + if not wizard_is_available(site_deletion_wizard, request, + models.ArchaeologicalSite, pk): + return HttpResponseRedirect("/") + wizard_url = 'site_deletion' + SiteDeletionWizard.session_set_value( + request, 'selec-' + wizard_url, 'pk', pk, reset=True) + return redirect(reverse(wizard_url, + kwargs={'step': 'final-' + wizard_url})) + operation_administrativeactop_search_wizard = SearchWizard.as_view([ ('general-operation_administrativeactop_search', AdministrativeActOpeFormSelection)], @@ -465,17 +465,15 @@ operation_administrativeactop_modification_wizard = \ def operation_administrativeactop_modify(request, pk): - operation_administrativeactop_modification_wizard(request) + if not wizard_is_available( + operation_administrativeactop_modification_wizard, request, + models.AdministrativeAct, pk): + return HttpResponseRedirect("/") + wizard_url = 'operation_administrativeactop_modification' OperationEditAdministrativeActWizard.session_set_value( - request, 'selec-operation_administrativeactop_modification', - 'pk', pk, reset=True) + request, 'selec-' + wizard_url, 'pk', pk, reset=True) return redirect( - reverse( - 'operation_administrativeactop_modification', - kwargs={ - 'step': - 'administrativeact-operation_administrativeactop_modification' - })) + reverse(wizard_url, kwargs={'step': 'administrativeact-' + wizard_url})) operation_administrativeactop_deletion_wizard = \ @@ -487,6 +485,19 @@ operation_administrativeactop_deletion_wizard = \ label=_(u"Operation: administrative act deletion"), url_name='operation_administrativeactop_deletion',) + +def operation_administrativeactop_delete(request, pk): + if not wizard_is_available( + operation_administrativeactop_deletion_wizard, request, + models.AdministrativeAct, pk): + return HttpResponseRedirect("/") + wizard_url = 'operation_administrativeactop_deletion' + AdministrativeActDeletionWizard.session_set_value( + request, 'selec-' + wizard_url, 'pk', pk, reset=True) + return redirect( + reverse(wizard_url, kwargs={'step': 'final-' + wizard_url})) + + administrativact_register_wizard = SearchWizard.as_view([ ('general-administrativact_register', AdministrativeActRegisterFormSelection)], -- cgit v1.2.3