diff options
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/models.py | 11 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 5 | ||||
-rw-r--r-- | archaeological_operations/views.py | 18 | ||||
-rw-r--r-- | archaeological_operations/wizards.py | 6 |
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 |