mpeltriaux
0bf2051bdf
* adds needed migrations * refactors forms.py (700+ lines) in main konova app * splits into forms/ and forms/modals and single class/topic-files for better maintainability and overview * fixes bug in main konova app migration which could occur if a certain compensation migration did not run before
90 lines
3.0 KiB
Python
90 lines
3.0 KiB
Python
"""
|
|
Author: Michel Peltriaux
|
|
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
|
|
Contact: michel.peltriaux@sgdnord.rlp.de
|
|
Created on: 09.08.21
|
|
|
|
"""
|
|
from django.urls import reverse
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.http import HttpRequest
|
|
from django.shortcuts import get_object_or_404
|
|
|
|
from compensation.forms.modalForms import NewPaymentForm, RemovePaymentModalForm, EditPaymentModalForm
|
|
from compensation.models import Payment
|
|
from intervention.models import Intervention
|
|
from konova.decorators import default_group_required, shared_access_required
|
|
from konova.utils.message_templates import PAYMENT_ADDED, PAYMENT_REMOVED, PAYMENT_EDITED
|
|
|
|
|
|
@login_required
|
|
@default_group_required
|
|
@shared_access_required(Intervention, "id")
|
|
def new_payment_view(request: HttpRequest, id: str):
|
|
""" Renders a modal view for adding new payments
|
|
|
|
Args:
|
|
request (HttpRequest): The incoming request
|
|
id (str): The intervention's id for which a new payment shall be added
|
|
|
|
Returns:
|
|
|
|
"""
|
|
intervention = get_object_or_404(Intervention, id=id)
|
|
form = NewPaymentForm(request.POST or None, instance=intervention, request=request)
|
|
return form.process_request(
|
|
request,
|
|
msg_success=PAYMENT_ADDED,
|
|
redirect_url=reverse("intervention:detail", args=(id,)) + "#related_data"
|
|
)
|
|
|
|
|
|
@login_required
|
|
@default_group_required
|
|
@shared_access_required(Intervention, "id")
|
|
def payment_remove_view(request: HttpRequest, id: str, payment_id: str):
|
|
""" Renders a modal view for removing payments
|
|
|
|
Args:
|
|
request (HttpRequest): The incoming request
|
|
id (str): The intervention's id
|
|
payment_id (str): The payment's id
|
|
|
|
Returns:
|
|
|
|
"""
|
|
intervention = get_object_or_404(Intervention, id=id)
|
|
payment = get_object_or_404(Payment, id=payment_id)
|
|
form = RemovePaymentModalForm(request.POST or None, instance=intervention, payment=payment, request=request)
|
|
return form.process_request(
|
|
request=request,
|
|
msg_success=PAYMENT_REMOVED,
|
|
redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data"
|
|
)
|
|
|
|
|
|
@login_required
|
|
@default_group_required
|
|
@shared_access_required(Intervention, "id")
|
|
def payment_edit_view(request: HttpRequest, id: str, payment_id: str):
|
|
""" Renders a modal view for editing payments
|
|
|
|
Args:
|
|
request (HttpRequest): The incoming request
|
|
id (str): The intervention's id
|
|
payment_id (str): The payment's id
|
|
|
|
Returns:
|
|
|
|
"""
|
|
intervention = get_object_or_404(Intervention, id=id)
|
|
payment = get_object_or_404(Payment, id=payment_id)
|
|
form = EditPaymentModalForm(request.POST or None, instance=intervention, payment=payment, request=request)
|
|
return form.process_request(
|
|
request=request,
|
|
msg_success=PAYMENT_EDITED,
|
|
redirect_url=reverse("intervention:detail", args=(payment.intervention_id,)) + "#related_data"
|
|
)
|
|
|