Coverage for website/partners/views.py: 35.00%
20 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 random import random
3from django.shortcuts import get_object_or_404, render
5from partners.models import Partner, Vacancy, VacancyCategory
6from utils.media.services import fetch_thumbnails
9def index(request):
10 """View to show overview page of partners."""
11 partners = Partner.objects.filter(
12 is_active=True, is_main_partner=False, is_local_partner=False
13 )
14 main_partner = Partner.objects.filter(is_main_partner=True).first()
15 local_partners = Partner.objects.filter(is_local_partner=True)
17 fetch_thumbnails([p.logo for p in partners])
19 context = {
20 "main_partner": main_partner,
21 "local_partners": local_partners,
22 "partners": sorted(partners, key=lambda x: random()),
23 }
24 return render(request, "partners/index.html", context)
27def partner(request, slug):
28 """View to show partner page."""
29 obj = get_object_or_404(Partner, slug=slug, is_active=True)
30 context = {
31 "partner": obj,
32 "vacancies": Vacancy.objects.filter(partner=obj),
33 }
34 return render(request, "partners/partner.html", context)
37def vacancies(request):
38 """View to show vacancies."""
39 vacancies = list(
40 Vacancy.objects.order_by("?")
41 .select_related("partner")
42 .prefetch_related("categories")
43 )
44 fetch_thumbnails([v.get_company_logo() for v in vacancies])
45 context = {
46 "vacancies": vacancies,
47 "categories": list(VacancyCategory.objects.all()),
48 }
50 return render(request, "partners/vacancies.html", context)