summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r--archaeological_warehouse/views.py73
1 files changed, 34 insertions, 39 deletions
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py
index b5ba1a784..f997be842 100644
--- a/archaeological_warehouse/views.py
+++ b/archaeological_warehouse/views.py
@@ -34,7 +34,7 @@ from archaeological_warehouse.forms import WarehouseForm, ContainerForm, \
ContainerDeletionForm, ContainerSelect, WarehouseSelect
from ishtar_common.forms import FinalForm
-from ishtar_common.views import QABaseLockView
+from ishtar_common.views import QABaseLockView, wizard_is_available
from ishtar_common.views_item import get_item, show_item, new_qa_item
from archaeological_finds.views import treatment_add
@@ -149,28 +149,14 @@ warehouse_modification_wizard = WarehouseModificationWizard.as_view([
def warehouse_modify(request, pk):
- try:
- warehouse_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(warehouse_modification_wizard, request,
+ models.Warehouse, pk):
return HttpResponseRedirect("/")
-
- q = models.Warehouse.objects.filter(pk=pk)
- if not q.count():
- raise Http404()
- item = q.all()[0]
- if item.locked:
- raise Http404()
-
+ wizard_url = 'warehouse_modification'
WarehouseModificationWizard.session_set_value(
- request, 'selec-warehouse_modification', 'pk', pk, reset=True)
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(
- reverse('warehouse_modification',
- kwargs={'step': 'warehouse-warehouse_modification'}))
+ reverse(wizard_url, kwargs={'step': 'warehouse-' + wizard_url}))
warehouse_deletion_wizard = WarehouseDeletionWizard.as_view([
@@ -180,6 +166,17 @@ warehouse_deletion_wizard = WarehouseDeletionWizard.as_view([
url_name='warehouse_deletion',)
+def warehouse_delete(request, pk):
+ if not wizard_is_available(warehouse_deletion_wizard, request,
+ models.Warehouse, pk):
+ return HttpResponseRedirect("/")
+ wizard_url = 'warehouse_deletion'
+ WarehouseDeletionWizard.session_set_value(
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
+ return redirect(
+ reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
+
+
class QAWarehouseLockView(QABaseLockView):
model = models.Warehouse
base_url = "warehouse-qa-lock"
@@ -213,28 +210,15 @@ container_modification_wizard = ContainerModificationWizard.as_view([
def container_modify(request, pk):
- try:
- container_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(container_modification_wizard, request,
+ models.Container, pk):
return HttpResponseRedirect("/")
-
- q = models.Container.objects.filter(pk=pk)
- if not q.count():
- raise Http404()
- item = q.all()[0]
- if item.locked:
- raise Http404()
-
+ wizard_url = 'container_modification'
ContainerModificationWizard.session_set_value(
- request, 'selec-container_modification', 'pk', pk, reset=True)
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
return redirect(
- reverse('container_modification',
- kwargs={'step': 'container-container_modification'}))
+ reverse(wizard_url, kwargs={'step': 'container-' + wizard_url}))
+
container_deletion_wizard = ContainerDeletionWizard.as_view([
('selec-container_deletion', MainContainerFormSelection),
@@ -243,6 +227,17 @@ container_deletion_wizard = ContainerDeletionWizard.as_view([
url_name='container_deletion',)
+def container_delete(request, pk):
+ if not wizard_is_available(container_deletion_wizard, request,
+ models.Container, pk):
+ return HttpResponseRedirect("/")
+ wizard_url = 'container_deletion'
+ ContainerDeletionWizard.session_set_value(
+ request, 'selec-' + wizard_url, 'pk', pk, reset=True)
+ return redirect(
+ reverse(wizard_url, kwargs={'step': 'final-' + wizard_url}))
+
+
def container_treatment_add(request, pk, current_right=None):
try:
container = models.Container.objects.get(pk=pk)