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

1from django import template 

2from django.utils import timezone 

3from django.utils.translation import gettext as _ 

4 

5from events import services 

6from events.models import Event 

7 

8register = template.Library() 

9 

10 

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] 

19 

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 

23 

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 } 

40 

41 cards.append({"event": event, "current_user_registration": user_registration}) 

42 

43 return {"events": cards}