summaryrefslogtreecommitdiff
path: root/archaeological_finds
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
commit9c0ee6ee690f176dd6c944d263ec45678ebec49e (patch)
tree8abead0cd473127fcbd18fd9581470af8f48e654 /archaeological_finds
parent801e31fc093bc554ae62ff50a5540659634098b4 (diff)
downloadIshtar-9c0ee6ee690f176dd6c944d263ec45678ebec49e.tar.bz2
Ishtar-9c0ee6ee690f176dd6c944d263ec45678ebec49e.zip
Delete action: context records, files, finds, treatments, treatments files, admin acts
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/models_finds.py1
-rw-r--r--archaeological_finds/models_treatments.py2
-rw-r--r--archaeological_finds/urls.py17
-rw-r--r--archaeological_finds/views.py136
4 files changed, 124 insertions, 32 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 73d6e8f32..8d4c65f1a 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -767,6 +767,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem,
APP = "archaeological-finds"
MODEL = "find"
SHOW_URL = 'show-find'
+ DELETE_URL = 'delete-find'
EXTERNAL_ID_KEY = 'find_external_id'
TABLE_COLS = ['external_id', 'label',
'base_finds__context_record__town__name',
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 120dfe6f2..07eeef260 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -68,6 +68,7 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
SLUG = 'treatment'
SHOW_URL = 'show-treatment'
+ DELETE_URL = 'delete-treatment'
TABLE_COLS = ('year', 'index', 'treatment_types__label',
'treatment_state__label',
'label', 'person__cached_label',
@@ -873,6 +874,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem):
SLUG = 'treatmentfile'
SHOW_URL = 'show-treatmentfile'
+ DELETE_URL = 'delete-treatmentfile'
TABLE_COLS = ['type', 'year', 'index', 'internal_reference', 'name']
BASE_SEARCH_VECTORS = [
SearchVectorConfig("type__label"),
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py
index b36c25888..b3fb16d25 100644
--- a/archaeological_finds/urls.py
+++ b/archaeological_finds/urls.py
@@ -38,11 +38,13 @@ urlpatterns = [
url(r'find_modification/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
views.find_modification_wizard), name='find_modification'),
+ url(r'find_modify/(?P<pk>.+)/$',
+ views.find_modify, name='find_modify'),
url(r'find_deletion/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
views.find_deletion_wizard), name='find_deletion'),
- url(r'find_modify/(?P<pk>.+)/$',
- views.find_modify, name='find_modify'),
+ url(r'find_delete/(?P<pk>.+)/$',
+ views.find_delete, name='delete-find'),
url(r'^find-qa-duplicate/(?P<pks>[0-9-]+)?/$',
check_rights(['change_find', 'change_own_find'])(
views.QAFindDuplicateFormView.as_view()),
@@ -168,6 +170,8 @@ urlpatterns = [
url(r'^treatment_deletion/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
views.treatment_deletion_wizard), name='treatment_deletion'),
+ url(r'treatment_delete/(?P<pk>.+)/$',
+ views.treatment_delete, name='delete-treatment'),
url(r'^treatment_admacttreatment_search/(?P<step>.+)?$',
check_rights(['change_administrativeact'])(
@@ -191,6 +195,9 @@ urlpatterns = [
url(r'^get-administrativeacttreatment/(?P<type>.+)?$',
views.get_administrativeacttreatment,
name='get-administrativeacttreatment'),
+ url(r'^/treatment_administrativeacttreatment_delete(?P<pk>.+)/$',
+ views.treatment_administrativeacttreatment_delete,
+ name='delete-administrativeact-treatment'),
url(r'^treatmentfle_admacttreatmentfle_search/(?P<step>.+)?$',
check_rights(['change_administrativeact'])(
@@ -211,6 +218,9 @@ urlpatterns = [
check_rights(['change_administrativeact'])(
views.treatmentfile_admacttreatmentfile_deletion_wizard),
name='treatmentfle_admacttreatmentfle_deletion'),
+ url(r'^treatmentfile_administrativeacttreatmentfile_delete/(?P<pk>.+)/$',
+ views.treatmentfile_administrativeacttreatmentfile_delete,
+ name='delete-administrativeact-treatmentfile'),
url(r'^treatmentfle_search/(?P<step>.+)?$',
check_rights(['change_find', 'change_own_find'])(
@@ -230,6 +240,9 @@ urlpatterns = [
check_rights(['change_find', 'change_own_find'])(
views.treatmentfile_deletion_wizard),
name='treatmentfile_deletion'),
+ url(r'^/treatmentfle_delete(?P<pk>.+)/$',
+ views.treatmentfile_delete, name='delete-treatmentfile'),
+
url(r'get-administrativeacttreatmentfile/(?P<type>.+)?$',
views.get_administrativeacttreatmentfile,
name='get-administrativeacttreatmentfile'),
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 1b49c8f13..537532511 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -47,7 +47,8 @@ from archaeological_operations.forms import FinalAdministrativeActDeleteForm
from archaeological_finds import forms
from ishtar_common.views import get_autocomplete_generic, IshtarMixin, \
- LoginRequiredMixin, QAItemEditForm, QAItemForm, QABaseLockView
+ LoginRequiredMixin, QAItemEditForm, QAItemForm, QABaseLockView, \
+ wizard_is_available
from ishtar_common.views_item import display_item, get_item, show_item, \
revert_item, get_autocomplete_item, get_autocomplete_queries
@@ -216,7 +217,9 @@ basket_modify_wizard = wizards.FindBasketEditWizard.as_view(
def find_basket_modify(request, pk):
- basket_modify_wizard(request)
+ if not wizard_is_available(basket_modify_wizard, request, models.FindBasket,
+ pk):
+ return HttpResponseRedirect("/")
key = 'selec-find_basket_modification'
wizards.FindBasketEditWizard.session_set_value(
request, key, 'pk', pk, reset=True)
@@ -322,19 +325,18 @@ find_modification_wizard = wizards.FindModificationWizard.as_view(
def find_modify(request, pk):
+ find = wizard_is_available(find_modification_wizard, request,
+ models.Find, pk)
+ if not find:
+ return HttpResponseRedirect("/")
find_modification_wizard(request)
key = 'selec-find_modification'
if get_current_profile().warehouse:
key = 'selecw-find_modification'
wizards.FindModificationWizard.session_set_value(
request, key, 'pk', pk, reset=True)
- q = models.Find.objects.filter(pk=pk)
- if not q.count():
- raise Http404()
+
step = 'find-find_modification'
- find = q.all()[0]
- if find.locked:
- raise Http404()
if find.base_finds.count() > 1:
step = 'simplefind-find_modification'
@@ -357,6 +359,23 @@ find_deletion_wizard = wizards.FindDeletionWizard.as_view(
label=_(u"Find deletion"),
url_name='find_deletion',)
+
+def find_delete(request, pk):
+ find = wizard_is_available(find_deletion_wizard, request,
+ models.Find, pk)
+ if not find:
+ return HttpResponseRedirect("/")
+ key = 'selec-find_deletion'
+ if get_current_profile().warehouse:
+ key = 'selecw-find_deletion'
+ wizards.FindDeletionWizard.session_set_value(
+ request, key, 'pk', pk, reset=True)
+
+ step = 'final-find_deletion'
+ return redirect(
+ reverse('find_deletion', kwargs={'step': step}))
+
+
autocomplete_objecttype = get_autocomplete_generic(models.ObjectType)
autocomplete_materialtype = get_autocomplete_generic(models.MaterialType)
autocomplete_treatmenttype = get_autocomplete_generic(models.TreatmentType)
@@ -562,7 +581,9 @@ treatment_modification_wizard = wizards.TreatmentModificationWizard.as_view(
def treatment_modify(request, pk):
- treatment_modification_wizard(request)
+ if not wizard_is_available(treatment_modification_wizard, request,
+ models.Treatment, pk):
+ return HttpResponseRedirect("/")
wizards.TreatmentModificationWizard.session_set_value(
request, 'selec-treatment_modification', 'pk', pk, reset=True)
return redirect(reverse(
@@ -703,6 +724,18 @@ treatment_deletion_wizard = wizards.TreatmentDeletionWizard.as_view([
label=_(u"Treatment deletion"),
url_name='treatment_deletion',)
+
+def treatment_delete(request, pk):
+ if not wizard_is_available(treatment_deletion_wizard, request,
+ models.Treatment, pk):
+ return HttpResponseRedirect("/")
+ wizards.TreatmentDeletionWizard.session_set_value(
+ request, 'selec-treatment_deletion', 'pk', pk, reset=True)
+ return redirect(reverse(
+ 'treatment_deletion',
+ kwargs={'step': 'final-treatment_deletion'}))
+
+
treatment_administrativeact_search_wizard = \
wizards.SearchWizard.as_view([
('selec-treatment_admacttreatment_search',
@@ -729,18 +762,11 @@ treatment_administrativeact_modification_wizard = \
label=_(u"Treatment: administrative act modification"),
url_name='treatment_admacttreatment_modification',)
-treatment_admacttreatment_deletion_wizard = \
- AdministrativeActDeletionWizard.as_view([
- ('selec-treatment_admacttreatment_deletion',
- forms.AdministrativeActTreatmentFormSelection),
- ('final-treatment_admacttreatment_deletion',
- FinalAdministrativeActDeleteForm)],
- label=_(u"Treatment: administrative act deletion"),
- url_name='treatment_admacttreatment_deletion',)
-
def treatment_administrativeacttreatment_modify(request, pk):
- treatment_administrativeact_modification_wizard(request)
+ if not wizard_is_available(treatment_administrativeact_modification_wizard,
+ request, AdministrativeAct, pk):
+ return HttpResponseRedirect("/")
wizards.TreatmentEditAdministrativeActWizard.session_set_value(
request,
'selec-treatment_admacttreatment_modification',
@@ -753,6 +779,26 @@ def treatment_administrativeacttreatment_modify(request, pk):
'administrativeact-treatment_admacttreatment_modification'
}))
+treatment_admacttreatment_deletion_wizard = \
+ AdministrativeActDeletionWizard.as_view([
+ ('selec-treatment_admacttreatment_deletion',
+ forms.AdministrativeActTreatmentFormSelection),
+ ('final-treatment_admacttreatment_deletion',
+ FinalAdministrativeActDeleteForm)],
+ label=_(u"Treatment: administrative act deletion"),
+ url_name='treatment_admacttreatment_deletion',)
+
+
+def treatment_administrativeacttreatment_delete(request, pk):
+ if not wizard_is_available(treatment_admacttreatment_deletion_wizard,
+ request, AdministrativeAct, pk):
+ return HttpResponseRedirect("/")
+ wizard_url = "treatment_admacttreatment_deletion"
+ AdministrativeActDeletionWizard.session_set_value(
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
+ return redirect(
+ reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
+
def treatment_adminact_add(request, pk, current_right=None):
try:
@@ -797,7 +843,9 @@ treatmentfile_modification_wizard = \
def treatmentfile_modify(request, pk):
- treatmentfile_modification_wizard(request)
+ if not wizard_is_available(treatmentfile_modification_wizard, request,
+ models.TreatmentFile, pk):
+ return HttpResponseRedirect("/")
wizards.TreatmentFileModificationWizard.session_set_value(
request, 'selec-treatmentfile_modification', 'pk', pk, reset=True)
return redirect(reverse(
@@ -822,6 +870,18 @@ treatmentfile_deletion_wizard = wizards.TreatmentFileDeletionWizard.as_view([
label=_(u"Treatment request deletion"),
url_name='treatmentfile_deletion',)
+
+def treatmentfile_delete(request, pk):
+ if not wizard_is_available(treatmentfile_deletion_wizard,
+ request, models.TreatmentFile, pk):
+ return HttpResponseRedirect("/")
+ wizard_url = "treatmentfile_deletion"
+ wizards.TreatmentFileDeletionWizard.session_set_value(
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
+ return redirect(
+ reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
+
+
treatmentfile_admacttreatmentfile_search_wizard = \
wizards.SearchWizard.as_view([
('selec-treatmentfle_admacttreatmentfle_search',
@@ -850,18 +910,12 @@ treatmentfile_admacttreatmentfile_modification_wizard = \
label=_(u"Treatment request: administrative act modification"),
url_name='treatmentfle_admacttreatmentfle_modification',)
-treatmentfile_admacttreatmentfile_deletion_wizard = \
- AdministrativeActDeletionWizard.as_view([
- ('selec-treatmentfle_admacttreatmentfle_deletion',
- forms.AdministrativeActTreatmentFileFormSelection),
- ('final-treatmentfle_admacttreatmentfle_deletion',
- FinalAdministrativeActDeleteForm)],
- label=_(u"Treatment request: administrative act deletion"),
- url_name='treatmentfle_admacttreatmentfle_deletion',)
-
def treatmentfile_administrativeacttreatmentfile_modify(request, pk):
- treatmentfile_admacttreatmentfile_modification_wizard(request)
+ if not wizard_is_available(
+ treatmentfile_admacttreatmentfile_modification_wizard,
+ request, AdministrativeAct, pk):
+ return HttpResponseRedirect("/")
wizards.TreatmentFileEditAdministrativeActWizard.session_set_value(
request,
'selec-treatmentfle_admacttreatmentfle_modification',
@@ -889,6 +943,28 @@ def treatmentfile_adminact_add(request, pk, current_right=None):
kwargs={'step': 'admact-treatmentfle_admacttreatmentfle'}))
+treatmentfile_admacttreatmentfile_deletion_wizard = \
+ AdministrativeActDeletionWizard.as_view([
+ ('selec-treatmentfle_admacttreatmentfle_deletion',
+ forms.AdministrativeActTreatmentFileFormSelection),
+ ('final-treatmentfle_admacttreatmentfle_deletion',
+ FinalAdministrativeActDeleteForm)],
+ label=_(u"Treatment request: administrative act deletion"),
+ url_name='treatmentfle_admacttreatmentfle_deletion',)
+
+
+def treatmentfile_administrativeacttreatmentfile_delete(request, pk):
+ if not wizard_is_available(
+ treatmentfile_admacttreatmentfile_deletion_wizard, request,
+ AdministrativeAct, pk):
+ return HttpResponseRedirect("/")
+ wizard_url = "treatmentfle_admacttreatmentfle_deletion"
+ AdministrativeActDeletionWizard.session_set_value(
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
+ return redirect(
+ reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
+
+
def reset_wizards(request):
for wizard_class, url_name in (
(wizards.FindWizard, 'find_creation'),