diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 16:52:49 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 16:52:49 +0200 |
commit | bbde20e66cf624a7919050548cbfa8248173c49f (patch) | |
tree | 5485667cc5b8610d1e8d538162faecba333366e5 /archaeological_operations | |
parent | 9dbf9e39344f8165482b116bfabcaa442eb66c6a (diff) | |
download | Ishtar-bbde20e66cf624a7919050548cbfa8248173c49f.tar.bz2 Ishtar-bbde20e66cf624a7919050548cbfa8248173c49f.zip |
Delete action: operations, sites, orgas, containers, warehouses
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/models.py | 4 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 13 | ||||
-rw-r--r-- | archaeological_operations/views.py | 107 |
3 files changed, 74 insertions, 50 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 91162f05c..601779e49 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -116,6 +116,7 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, QRCodeItem, APP = "archaeological-operations" MODEL = "archaeological-site" SHOW_URL = 'show-site' + DELETE_URL = 'delete-site' TABLE_COLS = ['reference', 'name', 'cached_towns_label', 'cached_periods', 'cached_remains'] NEW_QUERY_ENGINE = True @@ -596,6 +597,7 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem, APP = "archaeological-operations" MODEL = "operation" SHOW_URL = 'show-operation' + DELETE_URL = 'delete-operation' TABLE_COLS = ['code_patriarche', 'year', 'cached_towns_label', 'common_name', 'operation_type__label', 'start_date', 'excavation_end_date', 'cached_remains'] @@ -2052,6 +2054,8 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter): @property def DELETE_URL(self): + if self.operation: + return 'delete-administrativeact-operation' if self.associated_file: return 'delete-administrativeact-file' if self.treatment: diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py index 38dbe2cbf..a52aab3de 100644 --- a/archaeological_operations/urls.py +++ b/archaeological_operations/urls.py @@ -46,6 +46,10 @@ urlpatterns = [ check_rights(['change_administrativeact'])( views.operation_administrativeactop_deletion_wizard), name='operation_administrativeactop_deletion'), + url(r'operation_administrativeactop_delete/(?P<pk>.+)/$', + views.operation_administrativeactop_delete, + name='delete-administrativeact-operation'), + url(r'operation_search/(?P<step>.+)?$', check_rights(['view_operation', 'view_own_operation'])( views.operation_search_wizard), name='operation_search'), @@ -67,6 +71,9 @@ urlpatterns = [ url(r'operation_deletion/(?P<step>.+)?$', check_rights(['change_operation', 'change_own_operation'])( views.operation_deletion_wizard), name='operation_deletion'), + url(r'operation_delete/(?P<pk>.+)/$', + views.operation_delete, name='delete-operation'), + url(r'administrativact_register/(?P<step>.+)?$', check_rights(['view_administrativeact', 'view_own_administrativeact'])( views.administrativact_register_wizard), @@ -155,12 +162,14 @@ urlpatterns = [ 'change_own_archaeologicalsite'])( views.site_modification_wizard), name='site_modification'), + url(r'site_modify/(?P<pk>.+)/$', + views.site_modify, name='site_modify'), url(r'site_deletion/(?P<step>.+)?$', check_rights(['change_archaeologicalsite'])( views.site_deletion_wizard), name='site_deletion'), - url(r'site_modify/(?P<pk>.+)/$', - views.site_modify, name='site_modify'), + url(r'site_delete/(?P<pk>.+)/$', + views.site_delete, name='delete-site'), url(r'autocomplete-patriarche/$', views.autocomplete_patriarche, name='autocomplete-patriarche'), 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)], |