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