diff options
Diffstat (limited to 'archaeological_context_records')
| -rw-r--r-- | archaeological_context_records/urls.py | 8 | ||||
| -rw-r--r-- | archaeological_context_records/views.py | 27 |
2 files changed, 35 insertions, 0 deletions
diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py index fe2b6bde1..b94a2b3ba 100644 --- a/archaeological_context_records/urls.py +++ b/archaeological_context_records/urls.py @@ -177,6 +177,14 @@ urlpatterns = [ ), name="context-record-dating-modify", ), + path( + "context-record-dating-delete/<int:dating_pk>/", + check_permissions(["archaeological_context_records.change_contextrecord", + "archaeological_context_records.change_own_contextrecord"])( + views.context_record_dating_delete + ), + name="context-record-dating-delete", + ), re_path( r"^operation-qa-contextrecord/(?P<pks>[0-9]+)/$", check_permissions(["archaeological_context_records.add_contextrecord"])( diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 057e3ab61..98e9ef0f2 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -255,6 +255,33 @@ context_record_dating_modify = get_dating_form( ) +def get_dating_delete(model, dating_model, url_name): + def _dating_form(request, dating_pk, current_right=None): + try: + dating_item = dating_model.objects.get(pk=dating_pk) + except dating_model.DoesNotExist: + raise Http404() + pk = getattr(dating_item, dating_model.CURRENT_MODEL_ATTR + "_id") + try: + item = model.objects.get(pk=pk) + except model.DoesNotExist: + raise Http404() + if "_own_" in current_right: + if not request.user.has_perm(current_right, item): + raise PermissionDenied() + elif current_right: + if not request.user.has_perm(current_right): + raise PermissionDenied() + dating_item.delete() + return HttpResponseRedirect(reverse("success")) + return _dating_form + + +context_record_dating_delete = get_dating_delete( + models.ContextRecord, models.ContextRecordDating, "context-record-dating-delete" +) + + class GenerateRelationImage(IshtarMixin, LoginRequiredMixin, RedirectView): upper_model = models.Operation model = models.ContextRecord |
