# Remove-KOM-from-EIV view

* refactors view method into class
This commit is contained in:
mpeltriaux 2025-12-16 16:25:46 +01:00
parent 02dc0d0a59
commit e70a8b51d1
2 changed files with 35 additions and 27 deletions

View File

@ -9,7 +9,7 @@ from django.urls import path
from intervention.autocomplete.intervention import InterventionAutocomplete
from intervention.views.check import InterventionCheckView
from intervention.views.compensation import remove_compensation_view
from intervention.views.compensation import RemoveCompensationFromInterventionView
from intervention.views.deduction import NewInterventionDeductionView, EditInterventionDeductionView, \
RemoveInterventionDeductionView
from intervention.views.document import NewInterventionDocumentView, GetInterventionDocumentView, \
@ -43,7 +43,7 @@ urlpatterns = [
path('<id>/resub', InterventionResubmissionView.as_view(), name='resubmission-create'),
# Compensations
path('<id>/compensation/<comp_id>/remove', remove_compensation_view, name='remove-compensation'),
path('<id>/compensation/<comp_id>/remove', RemoveCompensationFromInterventionView.as_view(), name='remove-compensation'),
# Documents
path('<id>/document/new/', NewInterventionDocumentView.as_view(), name='new-doc'),

View File

@ -5,22 +5,23 @@ Contact: ksp-servicestelle@sgdnord.rlp.de
Created on: 19.08.22
"""
from django.contrib.auth.decorators import login_required
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpRequest, Http404
from django.http import HttpRequest, Http404, HttpResponse
from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views import View
from intervention.models import Intervention
from konova.decorators import shared_access_required, login_required_modal
from konova.decorators import shared_access_required
from konova.forms.modals import RemoveModalForm
from konova.utils.message_templates import COMPENSATION_REMOVED_TEMPLATE
@login_required_modal
@login_required
@shared_access_required(Intervention, "id")
def remove_compensation_view(request: HttpRequest, id: str, comp_id: str):
class RemoveCompensationFromInterventionView(LoginRequiredMixin, View):
def __process_request(self, request: HttpRequest, id: str, comp_id: str, *args, **kwargs) -> HttpResponse:
""" Renders a modal view for removing the compensation
Args:
@ -44,3 +45,10 @@ def remove_compensation_view(request: HttpRequest, id: str, comp_id: str):
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data",
)
@method_decorator(shared_access_required(Intervention, "id"))
def get(self, request, id: str, comp_id: str, *args, **kwargs) -> HttpResponse:
return self.__process_request(request, id, comp_id, *args, **kwargs)
@method_decorator(shared_access_required(Intervention, "id"))
def post(self, request, id: str, comp_id: str, *args, **kwargs) -> HttpResponse:
return self.__process_request(request, id, comp_id, *args, **kwargs)