""" Author: Michel Peltriaux Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany 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.shortcuts import get_object_or_404 from django.urls import reverse from compensation.forms.modals.compensation_action import RemoveCompensationActionModalForm, \ EditCompensationActionModalForm, NewCompensationActionModalForm from compensation.models import CompensationAction from ema.models import Ema from konova.decorators import shared_access_required, conservation_office_group_required from konova.utils.message_templates import COMPENSATION_ACTION_REMOVED, COMPENSATION_ACTION_EDITED, \ COMPENSATION_ACTION_ADDED @login_required @conservation_office_group_required @shared_access_required(Ema, "id") def action_new_view(request: HttpRequest, id: str): """ Renders a form for adding new actions for an EMA Args: request (HttpRequest): The incoming request id (str): The EMA's id to which the new state will be related Returns: """ ema = get_object_or_404(Ema, id=id) form = NewCompensationActionModalForm(request.POST or None, instance=ema, request=request) return form.process_request( request, msg_success=COMPENSATION_ACTION_ADDED, redirect_url=reverse("ema:detail", args=(id,)) + "#related_data" ) @login_required @conservation_office_group_required @shared_access_required(Ema, "id") def action_edit_view(request: HttpRequest, id: str, action_id: str): """ Renders a form for editing an actions for an EMA Args: request (HttpRequest): The incoming request id (str): The EMA's id action_id (str): The action id Returns: """ ema = get_object_or_404(Ema, id=id) action = get_object_or_404(CompensationAction, id=action_id) form = EditCompensationActionModalForm(request.POST or None, instance=ema, action=action, request=request) return form.process_request( request, msg_success=COMPENSATION_ACTION_EDITED, redirect_url=reverse("ema:detail", args=(id,)) + "#related_data" ) @login_required @conservation_office_group_required @shared_access_required(Ema, "id") def action_remove_view(request: HttpRequest, id: str, action_id: str): """ Renders a form for removing an EMA action Args: request (HttpRequest): The incoming request id (str): The ema id id (str): The action's id Returns: """ ema = get_object_or_404(Ema, id=id) action = get_object_or_404(CompensationAction, id=action_id) form = RemoveCompensationActionModalForm(request.POST or None, instance=ema, action=action, request=request) return form.process_request( request, msg_success=COMPENSATION_ACTION_REMOVED, redirect_url=reverse("ema:detail", args=(id,)) + "#related_data" )