diff --git a/intervention/urls.py b/intervention/urls.py index 6676f777..2b42ad3e 100644 --- a/intervention/urls.py +++ b/intervention/urls.py @@ -8,7 +8,7 @@ Created on: 30.11.20 from django.urls import path from intervention.autocomplete.intervention import InterventionAutocomplete -from intervention.views.check import check_view +from intervention.views.check import InterventionCheckView from intervention.views.compensation import remove_compensation_view from intervention.views.deduction import NewInterventionDeductionView, EditInterventionDeductionView, \ RemoveInterventionDeductionView @@ -37,7 +37,7 @@ urlpatterns = [ path('/remove', RemoveInterventionView.as_view(), name='remove'), path('/share/', InterventionShareByTokenView.as_view(), name='share-token'), path('/share', InterventionShareFormView.as_view(), name='share-form'), - path('/check', check_view, name='check'), + path('/check', InterventionCheckView.as_view(), name='check'), path('/record', InterventionRecordView.as_view(), name='record'), path('/report', InterventionPublicReportView.as_view(), name='report'), path('/resub', InterventionResubmissionView.as_view(), name='resubmission-create'), diff --git a/intervention/views/check.py b/intervention/views/check.py index 1fae75bb..a217f989 100644 --- a/intervention/views/check.py +++ b/intervention/views/check.py @@ -5,35 +5,44 @@ Contact: ksp-servicestelle@sgdnord.rlp.de Created on: 19.08.22 """ -from django.contrib.auth.decorators import login_required -from django.http import HttpRequest +from django.contrib.auth.mixins import LoginRequiredMixin +from django.http import HttpRequest, HttpResponse from django.shortcuts import get_object_or_404 +from django.utils.decorators import method_decorator from django.utils.translation import gettext_lazy as _ +from django.views import View from intervention.forms.modals.check import CheckModalForm from intervention.models import Intervention from konova.decorators import registration_office_group_required, shared_access_required from konova.utils.message_templates import INTERVENTION_INVALID +class InterventionCheckView(LoginRequiredMixin, View): -@login_required -@registration_office_group_required -@shared_access_required(Intervention, "id") -def check_view(request: HttpRequest, id: str): - """ Renders check form for an intervention + def __process_request(self, request: HttpRequest, id: str, *args, **kwargs) -> HttpResponse: + """ Renders check form for an intervention - Args: - request (HttpRequest): The incoming request - id (str): Intervention's id + Args: + request (HttpRequest): The incoming request + id (str): Intervention's id - Returns: + Returns: - """ - intervention = get_object_or_404(Intervention, id=id) - form = CheckModalForm(request.POST or None, instance=intervention, request=request) - return form.process_request( - request, - msg_success=_("Check performed"), - msg_error=INTERVENTION_INVALID - ) + """ + intervention = get_object_or_404(Intervention, id=id) + form = CheckModalForm(request.POST or None, instance=intervention, request=request) + return form.process_request( + request, + msg_success=_("Check performed"), + msg_error=INTERVENTION_INVALID + ) + @method_decorator(registration_office_group_required) + @method_decorator(shared_access_required(Intervention, "id")) + def get(self, request: HttpRequest, id: str, *args, **kwargs) -> HttpResponse: + return self.__process_request(request, id, *args, **kwargs) + + @method_decorator(registration_office_group_required) + @method_decorator(shared_access_required(Intervention, "id")) + def post(self, request: HttpRequest, id: str, *args, **kwargs) -> HttpResponse: + return self.__process_request(request, id, *args, **kwargs)