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

1from django.contrib import sitemaps 

2from django.urls import reverse 

3 

4from . import models 

5 

6 

7class StaticViewSitemap(sitemaps.Sitemap): 

8 """Sitemap generator for static partner views.""" 

9 

10 changefreq = "daily" 

11 

12 def items(self): 

13 """Return static partner view names.""" 

14 return ["partners:index", "partners:vacancies"] 

15 

16 def location(self, item): 

17 """Return view url.""" 

18 return reverse(item) 

19 

20 

21class PartnerSitemap(sitemaps.Sitemap): 

22 """Sitemap generator for partners.""" 

23 

24 def items(self): 

25 """Return all active partners.""" 

26 return models.Partner.objects.filter(is_active=True) 

27 

28 def location(self, item): 

29 """Return the partner url.""" 

30 return item.get_absolute_url() 

31 

32 

33class VacancySitemap(sitemaps.Sitemap): 

34 """Sitemap generator for vacancies.""" 

35 

36 def items(self): 

37 """Return all vacancies.""" 

38 return models.Vacancy.objects.all() 

39 

40 def location(self, item): 

41 """Return the vacancy url.""" 

42 return item.get_absolute_url() 

43 

44 

45sitemap = { 

46 "partners-static": StaticViewSitemap, 

47 "partners-partners": PartnerSitemap, 

48 "partners-vacancies": VacancySitemap, 

49}