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
« 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 _
5from members.templatetags.member_card import member_card
6from thaliawebsite.templatetags.grid_item import grid_item
7from utils.media.services import get_thumbnail_url
9register = template.Library()
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")
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 )
28@register.inclusion_tag("includes/grid_item.html")
29def membergroup_member_card(membership):
30 meta_text = ""
32 if membership.get("role"):
33 meta_text += f'<p class="px-1">{membership['role']}</p>'
35 ribbon = None
36 if membership["chair"] and not membership["until"]:
37 ribbon = _("Chair")
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>'
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>'
49 return member_card(member=membership["member"], meta_text=meta_text, ribbon=ribbon)