summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/models.py11
-rw-r--r--archaeological_operations/urls.py5
-rw-r--r--archaeological_operations/views.py18
-rw-r--r--archaeological_operations/wizards.py6
4 files changed, 40 insertions, 0 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index ea4b6c244..eeee9e8aa 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1969,6 +1969,17 @@ class Operation(
True,
),
] + end
+ if profile.files and self.can_do(request, "add_administrativeact"):
+ actions += [
+ (
+ reverse("operation-add-adminact", args=[self.pk]),
+ _("Add associated administrative act"),
+ "fa fa-plus",
+ _("admin. act"),
+ "",
+ False,
+ ),
+ ]
if can_edit_operation:
actions += [
(
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 7e2b71589..05c03bc51 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -75,6 +75,11 @@ urlpatterns = [
name="operation_search",
),
url(
+ r"^operation-add-adminact/(?P<pk>[0-9-]+)/$",
+ check_rights(["add_administrativeact"])(views.operation_adminact_add),
+ name="operation-add-adminact",
+ ),
+ url(
r"operation_creation/(?P<step>.+)?$",
check_rights(["add_operation", "add_own_operation"])(
views.operation_creation_wizard
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 8fa7e08c0..08a1ee05c 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -720,6 +720,24 @@ def operation_administrativeactop_delete(request, pk):
return redirect(reverse(wizard_url, kwargs={"step": "final-" + wizard_url}))
+def operation_adminact_add(request, pk, current_right=None):
+ try:
+ models.Operation.objects.get(pk=pk)
+ except models.Operation.DoesNotExist:
+ raise Http404()
+ operation_administrativeactop_wizard(request)
+
+ wizards.OperationAdministrativeActWizard.session_set_value(
+ request, "selec-operation_administrativeactop", "pk", pk, reset=True
+ )
+ return redirect(
+ reverse(
+ "operation_administrativeactop",
+ kwargs={"step": "administrativeact-operation_administrativeactop"},
+ )
+ )
+
+
administrativact_register_wizard = SearchWizard.as_view(
[
(
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 402219e41..581652c8f 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -350,6 +350,12 @@ class OperationAdministrativeActWizard(OperationWizard):
res = render(self.request, "ishtar/wizard/wizard_done.html", dct)
return res
+ def get_form_initial(self, step, data=None):
+ if not self.edit:
+ return {}
+ initial = super().get_form_initial(step)
+ return initial
+
class OperationEditAdministrativeActWizard(OperationAdministrativeActWizard):
model = models.AdministrativeAct