diff options
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" ) |
