Coverage for website/payments/templatetags/payments.py: 85.71%
12 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django import template
2from django.db.models import Model
4from payments.exceptions import PaymentError
5from payments.models import PaymentUser
6from payments.payables import payables
8register = template.Library()
11@register.inclusion_tag("payments/templatetags/payment_button.html")
12def payment_button(model: Model, redirect_to: str):
13 if model.pk is None: 13 ↛ 14line 13 didn't jump to line 14 because the condition on line 13 was never true
14 raise PaymentError("Payable does not exist")
16 payable = payables.get_payable(model)
18 return {
19 "member": PaymentUser.objects.get(pk=payable.payment_payer.pk)
20 if payable.payment_payer
21 else None,
22 "payable": payable,
23 "payable_hash": hash(payable),
24 "app_label": model._meta.app_label,
25 "model_name": model._meta.model_name,
26 "redirect_to": redirect_to,
27 }