diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 18:02:50 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-10 18:02:50 +0200 |
commit | 05ed481007604079612aa4b0f1f3bb8d4d35a6e5 (patch) | |
tree | f84171501c3d98df394c94fcc6d32cc3dd5c6539 /archaeological_operations/views.py | |
parent | 1d5254416b11ef1010d5ac31f2a53677254c6497 (diff) | |
download | Ishtar-05ed481007604079612aa4b0f1f3bb8d4d35a6e5.tar.bz2 Ishtar-05ed481007604079612aa4b0f1f3bb8d4d35a6e5.zip |
Locks: prevent edit actions
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 4563f815e..d8d9f30d5 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -307,6 +307,14 @@ def operation_modify(request, pk): 'warning' ) return HttpResponseRedirect("/") + + q = models.Operation.objects.filter(pk=pk) + if not q.count(): + raise Http404() + item = q.all()[0] + if item.locked: + raise Http404() + OperationModificationWizard.session_set_value( request, 'selec-operation_modification', 'pk', pk, reset=True) return redirect(reverse('operation_modification', @@ -392,7 +400,23 @@ site_modification_wizard = SiteModificationWizard.as_view( def site_modify(request, pk): - site_modification_wizard(request) + try: + site_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' + ) + return HttpResponseRedirect("/") + + q = models.ArchaeologicalSite.objects.filter(pk=pk) + if not q.count(): + raise Http404() + item = q.all()[0] + if item.locked: + raise Http404() + SiteModificationWizard.session_set_value( request, 'selec-site_modification', 'pk', pk, reset=True) return redirect(reverse('site_modification', |