Coverage for website/partners/sitemaps.py: 90.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 django.contrib import sitemaps
2from django.urls import reverse
4from . import models
7class StaticViewSitemap(sitemaps.Sitemap):
8 """Sitemap generator for static partner views."""
10 changefreq = "daily"
12 def items(self):
13 """Return static partner view names."""
14 return ["partners:index", "partners:vacancies"]
16 def location(self, item):
17 """Return view url."""
18 return reverse(item)
21class PartnerSitemap(sitemaps.Sitemap):
22 """Sitemap generator for partners."""
24 def items(self):
25 """Return all active partners."""
26 return models.Partner.objects.filter(is_active=True)
28 def location(self, item):
29 """Return the partner url."""
30 return item.get_absolute_url()
33class VacancySitemap(sitemaps.Sitemap):
34 """Sitemap generator for vacancies."""
36 def items(self):
37 """Return all vacancies."""
38 return models.Vacancy.objects.all()
40 def location(self, item):
41 """Return the vacancy url."""
42 return item.get_absolute_url()
45sitemap = {
46 "partners-static": StaticViewSitemap,
47 "partners-partners": PartnerSitemap,
48 "partners-vacancies": VacancySitemap,
49}