evorepo/sitemaps.py
Dan McGee 4a9b6867a3 Refactor common select_related into manager method
For a Package object query, we almost always did .select_related('arch',
'repo). Refactor this into the manager as a 'normal()' method so we can
avoid sprinkling the same logic everywhere.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-06-15 15:50:14 -05:00

53 lines
1.1 KiB
Python

from django.contrib.sitemaps import Sitemap
from main.models import Package
from news.models import News
from packages.utils import get_group_info
class PackagesSitemap(Sitemap):
changefreq = "weekly"
priority = "0.5"
def items(self):
return Package.objects.normal()
def lastmod(self, obj):
return obj.last_update
class PackageFilesSitemap(PackagesSitemap):
changefreq = "monthly"
priority = "0.3"
def location(self, obj):
return PackagesSitemap.location(self, obj) + 'files/'
def lastmod(self, obj):
return obj.files_last_update
class PackageGroupsSitemap(Sitemap):
changefreq = "weekly"
priority = "0.4"
def items(self):
return get_group_info()
def lastmod(self, obj):
return obj['last_update']
def location(self, obj):
return '/groups/%s/%s/' % (obj['arch'], obj['name'])
class NewsSitemap(Sitemap):
changefreq = "never"
priority = "0.7"
def items(self):
return News.objects.all()
def lastmod(self, obj):
return obj.postdate
# vim: set ts=4 sw=4 et: