Coverage for website/events/templatetags/frontpage_events.py: 48.39%
21 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.utils import timezone
3from django.utils.translation import gettext as _
5from events import services
6from events.models import Event
8register = template.Library()
11@register.inclusion_tag("events/frontpage_events.html", takes_context=True)
12def render_frontpage_events(context, events=None):
13 if events is None: 13 ↛ 20line 13 didn't jump to line 20 because the condition on line 13 was always true
14 events = Event.objects.filter(
15 published=True,
16 start__gte=timezone.now() - timezone.timedelta(hours=24),
17 end__gte=timezone.now(),
18 ).order_by("start")[:6]
20 cards = []
21 for event in events: 21 ↛ 22line 21 didn't jump to line 22 because the loop on line 21 never started
22 user_registration = None
24 if context["user"] and services.is_user_registered(context["user"], event):
25 if services.user_registration_pending(context["user"], event):
26 user_registration = {
27 "class": "pending-registration",
28 "text": _("In queue for this event"),
29 }
30 else:
31 user_registration = {
32 "class": "has-registration",
33 "text": _("Registered for this event"),
34 }
35 elif event.registration_required:
36 user_registration = {
37 "class": "open-registration",
38 "text": _("Not registered for this event"),
39 }
41 cards.append({"event": event, "current_user_registration": user_registration})
43 return {"events": cards}