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

1from django import template 

2from django.template.defaultfilters import striptags, truncatechars 

3 

4from thaliawebsite.templatetags.bleach_tags import bleach 

5from thaliawebsite.templatetags.grid_item import grid_item 

6from utils.media.services import get_thumbnail_url 

7 

8register = template.Library() 

9 

10 

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") 

17 

18 meta_text = truncatechars(bleach(striptags(partner.company_profile)), 80) 

19 

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 ) 

28 

29 

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") 

35 

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 ) 

43 

44 

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") 

51 

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 = "" 

60 

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 }