summaryrefslogtreecommitdiff
path: root/archaeological_context_records/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/views.py')
-rw-r--r--archaeological_context_records/views.py27
1 files changed, 27 insertions, 0 deletions
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