diff options
Diffstat (limited to 'archaeological_warehouse/views.py')
-rw-r--r-- | archaeological_warehouse/views.py | 73 |
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) |