Coverage for website/partners/templatetags/partner_cards.py: 31.58%
32 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.template.defaultfilters import striptags, truncatechars
4from thaliawebsite.templatetags.bleach_tags import bleach
5from thaliawebsite.templatetags.grid_item import grid_item
6from utils.media.services import get_thumbnail_url
8register = template.Library()
11@register.inclusion_tag("includes/grid_item.html")
12def partner_card(partner):
13 """Return grid item showing partner."""
14 image_url = ""
15 if partner.logo:
16 image_url = get_thumbnail_url(partner.logo, "fit_medium")
18 meta_text = truncatechars(bleach(striptags(partner.company_profile)), 80)
20 return grid_item(
21 title=partner.name,
22 meta_text=f'<p class="px-2 d-none d-md-block">{meta_text}</p>',
23 url=partner.get_absolute_url,
24 image_url=image_url,
25 class_name="partner-card contain-logo",
26 show_loading_animation=False,
27 )
30@register.inclusion_tag("includes/grid_item.html")
31def partner_image_card(image):
32 """Return grid item showing partner image."""
33 class_name = "partner-image-card"
34 image_url = get_thumbnail_url(image, "fit_medium")
36 return grid_item(
37 title="",
38 url=get_thumbnail_url(image, "fit_large"),
39 image_url=image_url,
40 class_name=class_name,
41 anchor_attrs='data-fancybox="gallery"',
42 )
45@register.inclusion_tag("partners/vacancy_card.html")
46def vacancy_card(vacancy):
47 """Return grid item showing vacancy."""
48 image_url = None
49 if vacancy.get_company_logo():
50 image_url = get_thumbnail_url(vacancy.get_company_logo(), "fit_medium")
52 description = truncatechars(bleach(striptags(vacancy.description)), 300)
53 extra_class = "external-vacancy"
54 url = f"#vacancy-{vacancy.id}"
55 keywords = vacancy.keywords.split(",")
56 location = vacancy.location
57 if vacancy.partner and vacancy.partner.is_active:
58 url = f"{vacancy.partner.get_absolute_url()}#vacancy-{vacancy.id}"
59 extra_class = ""
61 return {
62 "title": vacancy.title,
63 "company_name": vacancy.get_company_name(),
64 "image_url": image_url,
65 "description": description,
66 "location": location,
67 "keywords": keywords,
68 "url": url,
69 "extra_class": extra_class,
70 }