79 lines
1.6 KiB
Python
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
|