diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-03-08 13:18:44 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-03-08 13:53:26 +0100 |
commit | 4135c16fc28925ba8a42006d1e2849829b7e4ddd (patch) | |
tree | 5ceaff0b2e85bb35944a697fff2d3d2e76e9546d /archaeological_operations/views.py | |
parent | 5ec494564251e27e3f802e6c1aec3c6aa1890488 (diff) | |
download | Ishtar-4135c16fc28925ba8a42006d1e2849829b7e4ddd.tar.bz2 Ishtar-4135c16fc28925ba8a42006d1e2849829b7e4ddd.zip |
Site: quick add operation action (refs #4450)
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 7bbc4c0b4..8fa7e08c0 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -584,6 +584,27 @@ def site_delete(request, pk): return redirect(reverse(wizard_url, kwargs={"step": "final-" + wizard_url})) +def site_add_operation(request, pks, current_right=None): + pks = [int(p) for p in pks.split("-")] + for pk in pks: + q = models.ArchaeologicalSite.objects.filter(pk=pk) + if not q.count(): + raise Http404() + site = q.all()[0] + if not site.can_do(request, "view_archaeologicalsite") \ + or site.operations.count(): + raise Http404() + # operation add permission checked on view call + operation_creation_wizard(request) + wizards.OperationWizard.session_set_value( + request, "general-operation_creation", "archaeological_site", pks, + reset=True + ) + return redirect( + reverse("operation_creation", kwargs={"step": "general-operation_creation"}) + ) + + def site_add_top_operation(request, pks, current_right=None): q = models.ArchaeologicalSite.objects.filter(pk=pks) if not q.count(): |