Coverage for website/events/templatetags/frontpage_events.py: 42.86%

36 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2026-06-21 23:59 +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} 

44 

45 

46@register.inclusion_tag("events/registration_events.html", takes_context=True) 

47def render_frontpage_registration_events(context, events=None): 

48 if events is None: 48 ↛ 57line 48 didn't jump to line 57 because the condition on line 48 was always true

49 events = Event.objects.filter( 

50 published=True, 

51 registration_start__lte=timezone.now(), 

52 registration_start__gte=timezone.now() - timezone.timedelta(days=7), 

53 registration_end__gte=timezone.now(), 

54 optional_registrations=False, 

55 ).order_by("start")[:6] 

56 

57 cards = [] 

58 for event in events: 58 ↛ 59line 58 didn't jump to line 59 because the loop on line 58 never started

59 user_registration = None 

60 

61 if context["user"] and services.is_user_registered(context["user"], event): 

62 if services.user_registration_pending(context["user"], event): 

63 user_registration = { 

64 "class": "pending-registration", 

65 "text": _("In queue for this event"), 

66 } 

67 else: 

68 user_registration = { 

69 "class": "has-registration", 

70 "text": _("Registered for this event"), 

71 } 

72 elif event.registration_required: 

73 user_registration = { 

74 "class": "open-registration", 

75 "text": _("Not registered for this event"), 

76 } 

77 

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

79 

80 return {"events": cards}