diff --git a/aleksis/apps/tezor/models/invoice.py b/aleksis/apps/tezor/models/invoice.py index 1ed1fa8c5ce579b5e0fee51deb11adb37049bdd8..3ea79e3480bc510a9a2182f9412d8faf10aaae37 100644 --- a/aleksis/apps/tezor/models/invoice.py +++ b/aleksis/apps/tezor/models/invoice.py @@ -6,7 +6,7 @@ from django.shortcuts import reverse from django.utils.translation import gettext_lazy as _ from djmoney.models.fields import CurrencyField, MoneyField -from payments import PurchasedItem +from payments import PaymentStatus, PurchasedItem from payments.models import BasePayment from aleksis.core.mixins import ExtensibleModel, PureDjangoModel @@ -40,6 +40,15 @@ class Invoice(BasePayment, PureDjangoModel): "pledge": (_("Payment pledge / manual payment"), "mdi:hand-coin"), "sdd": (_("SEPA Direct Debit"), "mdi:bank-transfer"), } + STATUS_ICONS = { + PaymentStatus.WAITING: "mdi:cash-lock-open", + PaymentStatus.INPUT: "mdi:cash-lock-open", + PaymentStatus.PREAUTH: "mdi:cash-lock", + PaymentStatus.CONFIRMED: "mdi:cash-check", + PaymentStatus.REFUNDED: "mdi:cash-refund", + PaymentStatus.REJECTED: "mdi:cash-remove", + PaymentStatus.ERROR: "mdi:cash-remove", + } group = models.ForeignKey( InvoiceGroup, verbose_name=_("Invoice group"), related_name="invoices", on_delete=models.SET_NULL, null=True @@ -64,6 +73,9 @@ class Invoice(BasePayment, PureDjangoModel): def get_variant_icon(self): return self.__class__.VARIANT_DISPLAY[self.variant][1] + def get_status_icon(self): + return self.__class__.STATUS_ICONS[self.status] + def get_purchased_items(self): return self.for_object.get_purchased_items() diff --git a/aleksis/apps/tezor/templates/tezor/invoice/full.html b/aleksis/apps/tezor/templates/tezor/invoice/full.html index e51b62ff66a11eb61ed56a70bdf426fb354fa05e..2e0d735acda5b27ec16482d6ccfd380d4bd01f9c 100644 --- a/aleksis/apps/tezor/templates/tezor/invoice/full.html +++ b/aleksis/apps/tezor/templates/tezor/invoice/full.html @@ -72,17 +72,7 @@ </tr> <tr> <td> - {% if object.status == "waiting" or object.status == "input" %} - <i class="material-icons iconify" data-icon="mdi:cash-lock-open"></i> - {% elif object.status == "rejected" or object.status == "error" %} - <i class="material-icons iconify" data-icon="mdi:cash-remove"></i> - {% elif object.status == "preauth" %} - <i class="material-icons iconify" data-icon="mdi:cash-lock"></i> - {% elif object.status == "confirmed" %} - <i class="material-icons iconify" data-icon="mdi:cash-check"></i> - {% elif object.status == "refunded" %} - <i class="material-icons iconify" data-icon="mdi:cash-refund"></i> - {% endif %} + <i class="material-icons iconify" data-icon="object.get_status_icon"></i> </td> <td> {{ object.get_status_display }}