diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 054e1dc63d669f99a3c67f4384abf77af7d9068c..8df41116abd320c3b09e782405463a27749fd3f6 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 ~~~~~~~ diff --git a/aleksis/apps/tezor/models/base.py b/aleksis/apps/tezor/models/base.py index fd51caa42aa650dc4056bd7bd28bf45ffb176d6c..18dc03a4e1cbc6139f1d288052efc9caa25645e0 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 b7f37816d9e7267a276727deccc532340d02fda4..550cbe08f1f122b9a7b97ef66e29224efbe3d760 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 1fb91aaf08c88252db9af64bfa9ecffc76762557..62d95f4b73fe06f073be1aef8553ca82ef3fefd1 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 1263c94d83783aa8e8ea7156088713362886947c..7ea2caf8db9110a2f825391234ac95bf7a4fb03b 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 3fdabfeea09bcb3dc655a869ba9d2321f07ca231..e83aa7072bd1cbbf71950edf7856353105baa811 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)