diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-31 18:45:10 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-03-31 18:45:10 +0200 |
| commit | 09264888638ba506b33f6fc08350950b4629df0a (patch) | |
| tree | 26aadf9f3582344e271826f437d5c6201a85b81f /archaeological_context_records/views.py | |
| parent | ed72a1cbbdd35f0997bec4d2cf25d4a012ea79db (diff) | |
| download | Ishtar-develop-5.0-BPC.tar.bz2 Ishtar-develop-5.0-BPC.zip | |
✨ sites - datings: manage datings (forms, sheet)develop-5.0-BPC
Diffstat (limited to 'archaeological_context_records/views.py')
| -rw-r--r-- | archaeological_context_records/views.py | 79 |
1 files changed, 3 insertions, 76 deletions
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py index 0bc11031d..df7e83141 100644 --- a/archaeological_context_records/views.py +++ b/archaeological_context_records/views.py @@ -19,10 +19,9 @@ import json -from django.core.exceptions import PermissionDenied from django.db.models import Q from django.http import HttpResponse, HttpResponseRedirect, Http404 -from django.shortcuts import redirect, render +from django.shortcuts import redirect from django.urls import reverse from ishtar_common.utils import gettext_lazy as _ from django.views.generic import RedirectView @@ -35,6 +34,8 @@ from archaeological_operations.views import site_extra_context, get_relation_mod from archaeological_context_records import forms from ishtar_common.views import ( + get_dating_delete, + get_dating_form, IshtarMixin, LoginRequiredMixin, QAItemForm, @@ -194,58 +195,6 @@ context_record_modify_relations = get_relation_modify( filter_operations=True ) - -def get_dating_form(model, dating_model, url_name): - def _dating_form(request, pk, dating_pk=None, current_right=None): - try: - item = model.objects.get(pk=pk) - except model.DoesNotExist: - raise Http404() - # permission not provided - if not current_right: - raise PermissionDenied() - # specificaly check permission for own item, otherwise already checked - if "_own_" in current_right: - if not request.user.has_perm(current_right, item): - raise PermissionDenied() - initial = {} - if dating_pk: - try: - dating_item = dating_model.objects.get(pk=dating_pk) - initial = dict( - (attr, getattr(dating_item, attr)) - for attr in [ - "pk", "reference", "period_id", "start_date", "end_date", - "quality_id", "dating_type_id", "precise_dating"] - ) - except dating_model.DoesNotExist: - raise Http404() - if request.method == 'POST': - form = forms.QADating(request.POST, dating_model=dating_model, - current_item=item) - if form.is_valid(): - form.save() - return HttpResponseRedirect(reverse("success")) - else: - form = forms.QADating(dating_model=dating_model, - current_item=item, initial=initial) - button_name = _("Add") if not dating_pk else _("Modify") - icon = "fa fa-plus" if not dating_pk else "fa fa-pencil" - url_args = [pk] - if dating_pk: - url_args.append(dating_pk) - return render( - request, - "ishtar/forms/qa_form.html", { - "page_name": _("Dating"), - "icon": icon, - "action_name": button_name, - "form": form, - "url": reverse(url_name, args=url_args) - }) - return _dating_form - - context_record_dating_add = get_dating_form( models.ContextRecord, models.ContextRecordDating, "context-record-dating-add" ) @@ -256,28 +205,6 @@ 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" ) |
