summaryrefslogtreecommitdiff
path: root/archaeological_files
diff options
context:
space:
mode:
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
commit6969da6fc4bc8b551d94ca328400e7609c50595d (patch)
tree8abead0cd473127fcbd18fd9581470af8f48e654 /archaeological_files
parent2e608dde86b1de6fa5b66ebbbcd8c1b719981b45 (diff)
downloadIshtar-6969da6fc4bc8b551d94ca328400e7609c50595d.tar.bz2
Ishtar-6969da6fc4bc8b551d94ca328400e7609c50595d.zip
Delete action: context records, files, finds, treatments, treatments files, admin acts
Diffstat (limited to 'archaeological_files')
-rw-r--r--archaeological_files/models.py1
-rw-r--r--archaeological_files/urls.py4
-rw-r--r--archaeological_files/views.py45
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'),