From fe1223155d868a5e970116af1f8f2f7d2ce8d210 Mon Sep 17 00:00:00 2001 From: magicfelix <felix@felix-zauberer.de> Date: Mon, 24 Mar 2025 11:34:46 +0100 Subject: [PATCH 1/2] Adjust to RegistryObject classvar name change --- aleksis/apps/tezor/models/base.py | 2 +- aleksis/apps/tezor/models/invoice.py | 6 ++++-- aleksis/apps/tezor/models/payment_variant.py | 8 ++++---- aleksis/apps/tezor/templates/tezor/invoice/full.html | 2 +- aleksis/apps/tezor/views.py | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/aleksis/apps/tezor/models/base.py b/aleksis/apps/tezor/models/base.py index fd51caa..18dc03a 100644 --- a/aleksis/apps/tezor/models/base.py +++ b/aleksis/apps/tezor/models/base.py @@ -9,7 +9,7 @@ class Client(ExtensibleModel): email = models.EmailField(verbose_name=_("Email")) def get_payment_variant_choices(self): - return [(v.name, v.verbose_name) for v in self.payment_variants.all()] + return [(v._class_name, v.verbose_name) for v in self.payment_variants.all()] def __str__(self): return self.name diff --git a/aleksis/apps/tezor/models/invoice.py b/aleksis/apps/tezor/models/invoice.py index b7f3781..550cbe0 100644 --- a/aleksis/apps/tezor/models/invoice.py +++ b/aleksis/apps/tezor/models/invoice.py @@ -127,14 +127,16 @@ class Invoice(BasePayment, PureDjangoModel): super().save(*args, **kwargs) def get_variant(self): - variants = [v for v in self.group.client.payment_variants.all() if v.name == self.variant] + variants = [ + v for v in self.group.client.payment_variants.all() if v._class_name == self.variant + ] return variants[0] if variants else None def get_absolute_url(self): return reverse("invoice_by_token", kwargs={"slug": self.token}) def get_variant_name(self) -> str: - return PaymentVariant.registered_objects_dict[self.variant].name + return PaymentVariant.registered_objects_dict[self.variant]._class_name def get_variant_icon(self) -> str: return PaymentVariant.registered_objects_dict[self.variant].icon diff --git a/aleksis/apps/tezor/models/payment_variant.py b/aleksis/apps/tezor/models/payment_variant.py index 1fb91aa..62d95f4 100644 --- a/aleksis/apps/tezor/models/payment_variant.py +++ b/aleksis/apps/tezor/models/payment_variant.py @@ -44,7 +44,7 @@ class PaymentVariant(RegistryObject, ExtensiblePolymorphicModel): class SofortPaymentVariant(PaymentVariant): icon = "simple-icons:klarna" verbose_name = _("Klarna/Sofort") - name = "sofort" + _class_name = "sofort" api_id = models.CharField(verbose_name=_("API ID"), max_length=255) api_key = models.CharField(verbose_name=_("API key"), max_length=255) @@ -64,7 +64,7 @@ class SofortPaymentVariant(PaymentVariant): class PaypalPaymentVariant(PaymentVariant): icon = "logos:paypal" verbose_name = _("PayPal") - name = "paypal" + _class_name = "paypal" api_client_id = models.CharField(verbose_name=_("Client ID"), max_length=255) secret = models.CharField(verbose_name=_("Secret"), max_length=255) @@ -90,7 +90,7 @@ class PaypalPaymentVariant(PaymentVariant): class SEPADirectDebitPaymentVariant(PaymentVariant): icon = "mdi:bank-transfer" verbose_name = _("SEPA Direct Debit") - name = "sdd" + _class_name = "sdd" creditor = models.CharField(verbose_name=_("Creditor name"), max_length=255) creditor_identifier = models.CharField( @@ -120,7 +120,7 @@ class SEPADirectDebitPaymentVariant(PaymentVariant): class PledgePaymentVariant(PaymentVariant): icon = "mdi:hand-coin" verbose_name = _("Payment pledge/Manual payment") - name = "pledge" + _class_name = "pledge" def get_provider(self): from djp_sepa.providers import PaymentPledgeProvider # noqa diff --git a/aleksis/apps/tezor/templates/tezor/invoice/full.html b/aleksis/apps/tezor/templates/tezor/invoice/full.html index 1263c94..7ea2caf 100644 --- a/aleksis/apps/tezor/templates/tezor/invoice/full.html +++ b/aleksis/apps/tezor/templates/tezor/invoice/full.html @@ -76,7 +76,7 @@ <td> <select name="variant" {% if not can_change_variant %}disabled{% endif %}> {% for payment_variant in object.group.client.payment_variants.all %} - <option value="{{ payment_variant.name }}" {% if object.variant == payment_variant.name %}selected{% endif %}>{{ payment_variant.verbose_name }}</option> + <option value="{{ payment_variant._class_name }}" {% if object.variant == payment_variant._class_name %}selected{% endif %}>{{ payment_variant.verbose_name }}</option> {% endfor %} </select> </td> diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py index 3fdabfe..e83aa70 100644 --- a/aleksis/apps/tezor/views.py +++ b/aleksis/apps/tezor/views.py @@ -54,7 +54,7 @@ class DoPaymentView(PermissionRequiredMixin, View): self.object = get_object_or_404(self.model, token=token) allowed_variants = [ - variant.name for variant in self.object.group.client.payment_variants.all() + variant._class_name for variant in self.object.group.client.payment_variants.all() ] new_variant = request.GET.get("variant", None) -- GitLab From e1160c5f5bdb3595834bacd4a2968dc59f6c9496 Mon Sep 17 00:00:00 2001 From: magicfelix <felix@felix-zauberer.de> Date: Mon, 24 Mar 2025 11:36:10 +0100 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 054e1dc..8df4111 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -12,6 +12,11 @@ Unreleased This version requires AlekSIS-Core 3.0. It is incompatible with any previous version. +Breaking +~~~~~~~~ + +* `PaymentVariant`'s class variable `name` has been renamed to `_class_name`. + Removed ~~~~~~~ -- GitLab