ece7ba2f188351bea483e2ea38e490e2c21adb26
[wolnelektury.git] / src / funding / templatetags / funding_tags.py
1 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
3 #
4 from django import template
5 from django.template.loader import render_to_string
6 from django.core.paginator import Paginator, InvalidPage
7
8 from ..models import Offer
9 from ..utils import sanitize_payment_title
10
11
12 register = template.Library()
13
14
15 @register.simple_tag
16 def funding_top_bar():
17     offer = Offer.current()
18     return offer.top_bar() if offer is not None else ''
19
20
21 register.filter(sanitize_payment_title)
22
23
24 @register.simple_tag(takes_context=True)
25 def fundings(context, offer):
26     fundings = offer.funding_payed()
27     page = context['request'].GET.get('page', 1)
28     paginator = Paginator(fundings, 10, 2)
29     try:
30         page_obj = paginator.page(int(page))
31     except InvalidPage:
32         return ''
33     else:
34         return render_to_string("funding/includes/fundings.html", {
35             "paginator": paginator,
36             "page_obj": page_obj,
37             "fundings": page_obj.object_list,
38         })