Coverage for website/activemembers/templatetags/activemembers_cards.py: 26.19%

30 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from django import template 

2from django.templatetags.static import static 

3from django.utils.translation import gettext_lazy as _ 

4 

5from members.templatetags.member_card import member_card 

6from thaliawebsite.templatetags.grid_item import grid_item 

7from utils.media.services import get_thumbnail_url 

8 

9register = template.Library() 

10 

11 

12@register.inclusion_tag("includes/grid_item.html") 

13def membergroup_card(group): 

14 if group.photo: 

15 image_url = get_thumbnail_url(group.photo, "medium") 

16 else: 

17 image_url = static("activemembers/images/placeholder_overview.png") 

18 

19 return grid_item( 

20 title=group.name, 

21 meta_text="", 

22 url=group.get_absolute_url, 

23 image_url=image_url, 

24 class_name="membergroup-card", 

25 ) 

26 

27 

28@register.inclusion_tag("includes/grid_item.html") 

29def membergroup_member_card(membership): 

30 meta_text = "" 

31 

32 if membership.get("role"): 

33 meta_text += f'<p class="px-1">{membership['role']}</p>' 

34 

35 ribbon = None 

36 if membership["chair"] and not membership["until"]: 

37 ribbon = _("Chair") 

38 

39 if "since" in membership and not membership["is_board"]: 

40 since_text = "Member since: ?" 

41 if membership["since"].year > 1970: 

42 since_text = f"Member since: {membership['since'].year}" 

43 meta_text += f'<p class="px-1"><em>{since_text}</em></p>' 

44 

45 if "until" in membership and membership["until"] and membership["is_board"]: 

46 until_text = f"until {membership['until']}" 

47 meta_text += f'<p class="px-1"><em>{until_text}</em></p>' 

48 

49 return member_card(member=membership["member"], meta_text=meta_text, ribbon=ribbon)