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

1from django import template 

2from django.db.models import Model 

3 

4from payments.exceptions import PaymentError 

5from payments.models import PaymentUser 

6from payments.payables import payables 

7 

8register = template.Library() 

9 

10 

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") 

15 

16 payable = payables.get_payable(model) 

17 

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 }