diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 14:13:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 14:13:46 +0200 |
commit | 9c0ee6ee690f176dd6c944d263ec45678ebec49e (patch) | |
tree | 8abead0cd473127fcbd18fd9581470af8f48e654 /archaeological_files | |
parent | 801e31fc093bc554ae62ff50a5540659634098b4 (diff) | |
download | Ishtar-9c0ee6ee690f176dd6c944d263ec45678ebec49e.tar.bz2 Ishtar-9c0ee6ee690f176dd6c944d263ec45678ebec49e.zip |
Delete action: context records, files, finds, treatments, treatments files, admin acts
Diffstat (limited to 'archaeological_files')
-rw-r--r-- | archaeological_files/models.py | 1 | ||||
-rw-r--r-- | archaeological_files/urls.py | 4 | ||||
-rw-r--r-- | archaeological_files/views.py | 45 |
3 files changed, 34 insertions, 16 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index e089df24e..6d7fbe048 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -87,6 +87,7 @@ class File(ClosedItem, DocumentItem, BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, DashboardFormItem): SLUG = 'file' SHOW_URL = 'show-file' + DELETE_URL = 'delete-file' TABLE_COLS = ['numeric_reference', 'year', 'internal_reference', 'file_type', 'saisine_type', 'towns_label', ] # statistics diff --git a/archaeological_files/urls.py b/archaeological_files/urls.py index 9823cf924..2b1e70b8c 100644 --- a/archaeological_files/urls.py +++ b/archaeological_files/urls.py @@ -46,6 +46,9 @@ urlpatterns = [ check_rights(['change_administrativeact'])( views.file_administrativeactfile_modification_wizard), name='file_administrativeactfile_modification'), + url(r'file_administrativeactfile_delete/(?P<pk>.+)/$', + views.file_administrativeact_delete, + name='delete-administrativeact-file'), url(r'file_search/(?P<step>.+)?$', check_rights(['view_file', 'view_own_file'])( views.file_search_wizard), @@ -65,6 +68,7 @@ urlpatterns = [ check_rights(['delete_file', 'delete_own_file'])( views.file_deletion_wizard), name='file_deletion'), + url(r'^file_delete/(?P<pk>.+)/$', views.file_delete, name='delete-file'), url(r'autocomplete-file/$', views.autocomplete_file, name='autocomplete-file'), url(r'get-file/(?P<type>.+)?$', views.get_file, diff --git a/archaeological_files/views.py b/archaeological_files/views.py index e7307e882..08f875d54 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -26,6 +26,7 @@ from django.http import HttpResponse, Http404, HttpResponseRedirect from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ +from ishtar_common.views import wizard_is_available from ishtar_common.views_item import get_item, show_item, revert_item from archaeological_operations.wizards import AdministrativeActDeletionWizard, \ @@ -143,23 +144,10 @@ file_modification_wizard = FileModificationWizard.as_view( def file_modify(request, pk): - try: - file_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(file_modification_wizard, request, + models.File, pk): return HttpResponseRedirect("/") - q = models.File.objects.filter(pk=pk) - if not q.count(): - raise Http404() - item = q.all()[0] - if item.locked: - raise Http404() - FileModificationWizard.session_set_value( request, 'selec-file_modification', 'pk', pk, reset=True) return redirect(reverse('file_modification', @@ -177,6 +165,16 @@ file_deletion_wizard = FileDeletionWizard.as_view( label=_(u"File deletion"), url_name='file_deletion',) + +def file_delete(request, pk): + if not wizard_is_available(file_deletion_wizard, request, models.File, pk): + return HttpResponseRedirect("/") + + FileDeletionWizard.session_set_value( + request, 'selec-file_deletion', 'pk', pk, reset=True) + return redirect(reverse('file_deletion', + kwargs={'step': 'final-file_deletion'})) + file_administrativeactfile_search_wizard = \ SearchWizard.as_view([ ('selec-file_administrativeactfile_search', @@ -205,7 +203,9 @@ file_administrativeactfile_modification_wizard = \ def file_administrativeactfile_modify(request, pk): - file_administrativeactfile_modification_wizard(request) + if not wizard_is_available(file_administrativeactfile_modification_wizard, + request, AdministrativeAct, pk): + return HttpResponseRedirect("/") FileEditAdministrativeActWizard.session_set_value( request, 'selec-file_administrativeactfile_modification', 'pk', pk, reset=True) @@ -228,6 +228,19 @@ file_administrativeactfile_deletion_wizard = \ url_name='file_administrativeactfile_deletion',) +def file_administrativeact_delete(request, pk): + if not wizard_is_available(file_administrativeactfile_deletion_wizard, + request, AdministrativeAct, pk): + return HttpResponseRedirect("/") + + AdministrativeActDeletionWizard.session_set_value( + request, 'selec-file_administrativeactfile_deletion', 'pk', pk, + reset=True) + return redirect( + reverse('file_administrativeactfile_deletion', + kwargs={'step': 'final-file_administrativeactfile_deletion'})) + + def reset_wizards(request): for wizard_class, url_name in ( (FileWizard, 'file_creation'), |