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.py79
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"
)