prelom/django/journal/sitemaps.py

79 lines
1.6 KiB
Python

from django.contrib.sitemaps import Sitemap
from journal.models import *
class ArticleSitemap(Sitemap):
changefreq = 'never'
priority = 0.7
def items(self):
return Article.objects.filter(published=True)
def lastmod(self, item):
return item.last_modified
class ArticleTranslationSitemap(Sitemap):
changefreq = 'never'
priority = 0.7
def items(self):
return ArticleTranslation.objects.filter(article__published=True).order_by('pk')
def lastmod(self, item):
return item.last_modified
class AuthorSitemap(Sitemap):
changefreq = 'monthly'
priority = 0.4
def items(self):
return Author.objects.filter(articles__published=True).order_by('name')
def lastmod(self, item):
try:
return item.articles.latest().date
except Article.DoesNotExist:
return None
class CategorySitemap(Sitemap):
changefreq = 'weekly'
priority = 0.8
def items(self):
return Category.objects.order_by('name')
def lastmod(self, item):
try:
return item.articles.latest().date
except Article.DoesNotExist:
return None
class IssueSitemap(Sitemap):
changefreq = 'never'
priority = 0.9
def items(self):
return Issue.objects.order_by('pk')
def lastmod(self, item):
return item.date
class TagSitemap(Sitemap):
changefreq = 'weekly'
priority = 0.8
def items(self):
return Tag.objects.order_by('name')
def lastmod(self, item):
try:
return item.articles.latest().date
except Article.DoesNotExist:
return None