Skip to content
Snippets Groups Projects
Commit 4b0f3cea authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Merge branch 'renovate/django-payments-1.x' of...

Merge branch 'renovate/django-payments-1.x' of edugit.org:AlekSIS/onboarding/AlekSIS-App-Tezor into renovate/django-payments-1.x
parents 1036eb66 68fb0de2
No related branches found
No related tags found
1 merge request!15Update dependency django-payments to v1
......@@ -8,14 +8,12 @@ from .models.invoice import Invoice
class InvoicesFilter(FilterSet):
variant = ChoiceFilter(choices=Invoice.get_variant_choices())
status = ChoiceFilter(choices=PaymentStatus.CHOICES)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.form.layout = Layout(
Row("variant", "status"),
)
class Meta:
models = Invoice
from django.conf import settings
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
......@@ -105,11 +104,17 @@ class Invoice(BasePayment, PureDjangoModel):
super().save(*args, **kwargs)
@classmethod
def get_variant_choices(cls):
def get_variant_choices(self=None):
choices = []
for variant in settings.PAYMENT_VARIANTS.keys():
choices.append((variant, cls.VARIANT_DISPLAY[variant][0]))
for variant in Invoice.VARIANT_DISPLAY.keys():
if (
self
and self.group
and self.group.client
and not getattr(self.group.client, f"{variant}_enabled")
):
continue
choices.append((variant, Invoice.VARIANT_DISPLAY[variant][0]))
return choices
def get_variant_name(self):
......
from django.conf import settings
from django.core.exceptions import PermissionDenied, SuspiciousOperation
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse, reverse_lazy
......@@ -48,7 +47,7 @@ class DoPaymentView(PermissionRequiredMixin, View):
new_variant = request.GET.get("variant", None)
if new_variant:
if request.user.has_perm("tezor.change_payment_variant", self.object):
if new_variant in settings.PAYMENT_VARIANTS:
if new_variant in dict(self.object.get_variant_choices()).keys():
self.object.variant = new_variant
self.object.save()
else:
......@@ -145,7 +144,9 @@ class InvoiceGroupDetailView(PermissionRequiredMixin, DetailView):
def post(self, request, *args, **kwargs):
r = super().get(request, *args, **kwargs)
if self.invoices_action_form.is_valid():
action = self.invoices_action_form._get_actions_dict()[self.invoices_action_form.cleaned_data["action"]]
action = self.invoices_action_form._get_actions_dict()[
self.invoices_action_form.cleaned_data["action"]
]
if request.user.has_perm(action.permission):
self.invoices_action_form.execute()
return r
......@@ -162,7 +163,9 @@ class InvoiceGroupDetailView(PermissionRequiredMixin, DetailView):
RequestConfig(self.request).configure(invoices_table)
context["invoices_table"] = invoices_table
self.invoices_action_form = InvoicesActionForm(self.request, self.request.POST or None, queryset=invoices)
self.invoices_action_form = InvoicesActionForm(
self.request, self.request.POST or None, queryset=invoices
)
context["action_form"] = self.invoices_action_form
return context
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment