diff options
Diffstat (limited to 'archaeological_context_records/views.py')
| -rw-r--r-- | archaeological_context_records/views.py | 27 |
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 |
