diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-11-14 16:12:53 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-11-14 17:58:17 +0100 |
| commit | 6d902258dd5e1b96fe5849a47d280375c5b74a34 (patch) | |
| tree | d6280e9430dfdc0dcfc346c700ec18359c08939a /archaeological_context_records/views.py | |
| parent | 222506fddb21d3c4e87fc6faf9b905dd988062c6 (diff) | |
| download | Ishtar-6d902258dd5e1b96fe5849a47d280375c5b74a34.tar.bz2 Ishtar-6d902258dd5e1b96fe5849a47d280375c5b74a34.zip | |
✨ datings refactoring: delete view
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 |
