from django.contrib.sitemaps import Sitemap from django.urls import reverse from hub.services.models import ( Service, CloudProvider, ConsultingPartner, ServiceOffering, Article, ) class StaticSitemap(Sitemap): changefreq = "monthly" priority = 1.0 def items(self): return [ "services:homepage", "services:contact", "services:article_list", "services:article_rss", ] def location(self, item): return reverse(item) class ServiceSitemap(Sitemap): changefreq = "weekly" priority = 1.0 def items(self): return Service.objects.filter(disable_listing=False).exclude( is_coming_soon=True ) def lastmod(self, obj): return obj.updated_at class OfferingSitemap(Sitemap): changefreq = "weekly" priority = 0.7 def items(self): return ServiceOffering.objects.filter(disable_listing=False) def lastmod(self, obj): return obj.updated_at class CloudProviderSitemap(Sitemap): changefreq = "weekly" priority = 0.7 def items(self): return CloudProvider.objects.filter(disable_listing=False) class ConsultingPartnerSitemap(Sitemap): changefreq = "weekly" priority = 0.7 def items(self): return ConsultingPartner.objects.filter(disable_listing=False) def lastmod(self, obj): return obj.updated_at class ArticleSitemap(Sitemap): changefreq = "weekly" priority = 0.8 def items(self): return Article.objects.filter(is_published=True) def lastmod(self, obj): return obj.updated_at