website/hub/sitemaps.py

79 lines
1.6 KiB
Python

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