# Refactoring payment view
* refactors views for adding, editing and removing payments
This commit is contained in:
parent
4a16727da1
commit
bc2e901ca9
@ -6,8 +6,10 @@ Created on: 18.08.22
|
||||
|
||||
"""
|
||||
from django import forms
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.translation import pgettext_lazy as _con, gettext_lazy as _
|
||||
|
||||
from compensation.models import Payment
|
||||
from konova.forms.modals import RemoveModalForm, BaseModalForm
|
||||
from konova.utils import validators
|
||||
from konova.utils.message_templates import PAYMENT_EDITED
|
||||
@ -103,7 +105,8 @@ class EditPaymentModalForm(NewPaymentForm):
|
||||
payment = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.payment = kwargs.pop("payment", None)
|
||||
payment_id = kwargs.pop("payment_id", None)
|
||||
self.payment = get_object_or_404(Payment, id=payment_id)
|
||||
super().__init__(*args, **kwargs)
|
||||
self.form_title = _("Edit payment")
|
||||
form_date = {
|
||||
@ -133,8 +136,8 @@ class RemovePaymentModalForm(RemoveModalForm):
|
||||
payment = None
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
payment = kwargs.pop("payment", None)
|
||||
self.payment = payment
|
||||
payment_id = kwargs.pop("payment_id", None)
|
||||
self.payment = get_object_or_404(Payment, id=payment_id)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
def save(self):
|
||||
|
||||
@ -6,11 +6,11 @@ Created on: 24.08.21
|
||||
|
||||
"""
|
||||
from django.urls import path
|
||||
from compensation.views.payment import *
|
||||
from compensation.views.payment import NewPaymentView, RemovePaymentView, EditPaymentView
|
||||
|
||||
app_name = "pay"
|
||||
urlpatterns = [
|
||||
path('<id>/new', new_payment_view, name='new'),
|
||||
path('<id>/remove/<payment_id>', payment_remove_view, name='remove'),
|
||||
path('<id>/edit/<payment_id>', payment_edit_view, name='edit'),
|
||||
path('<id>/new', NewPaymentView.as_view(), name='new'),
|
||||
path('<id>/remove/<payment_id>', RemovePaymentView.as_view(), name='remove'),
|
||||
path('<id>/edit/<payment_id>', EditPaymentView.as_view(), name='edit'),
|
||||
]
|
||||
|
||||
@ -5,84 +5,38 @@ Contact: michel.peltriaux@sgdnord.rlp.de
|
||||
Created on: 09.08.21
|
||||
|
||||
"""
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpRequest
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
|
||||
from compensation.forms.modals.payment 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
|
||||
from konova.views.base import BaseModalFormView
|
||||
|
||||
|
||||
@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
|
||||
class BasePaymentView(LoginRequiredMixin, BaseModalFormView):
|
||||
_MODEL_CLS = Intervention
|
||||
_REDIRECT_URL = "intervention:detail"
|
||||
|
||||
Args:
|
||||
request (HttpRequest): The incoming request
|
||||
id (str): The intervention's id for which a new payment shall be added
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
Returns:
|
||||
def _get_redirect_url(self, *args, **kwargs):
|
||||
url = super()._get_redirect_url(*args, **kwargs)
|
||||
return f"{url}#related_data"
|
||||
|
||||
"""
|
||||
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"
|
||||
)
|
||||
def _user_has_permission(self, user):
|
||||
return user.is_default_user()
|
||||
|
||||
|
||||
@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"
|
||||
)
|
||||
class NewPaymentView(BasePaymentView):
|
||||
_FORM_CLS = NewPaymentForm
|
||||
_MSG_SUCCESS = PAYMENT_ADDED
|
||||
|
||||
|
||||
@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"
|
||||
)
|
||||
class EditPaymentView(BasePaymentView):
|
||||
_MSG_SUCCESS = PAYMENT_EDITED
|
||||
_FORM_CLS = EditPaymentModalForm
|
||||
|
||||
class RemovePaymentView(BasePaymentView):
|
||||
_MSG_SUCCESS = PAYMENT_REMOVED
|
||||
_FORM_CLS = RemovePaymentModalForm
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user