Create individual sitemaps for idtracker, drafts, nomcom-announcements,

iesg minutes, ipr and liaisons.

Omitting some class of data from the sitemap will not prevent it from
being indexed, so forgetting something from this list is not critical.
 - Legacy-Id: 861
This commit is contained in:
Bill Fenner 2007-07-09 02:32:39 +00:00
parent 68e7735f2b
commit f784bb02ad
7 changed files with 70 additions and 0 deletions

View file

@ -0,0 +1,12 @@
from django.contrib.sitemaps import Sitemap
from ietf.announcements.models import Announcement
class NOMCOMAnnouncementsMap(Sitemap):
changefreq = "never"
def items(self):
return Announcement.objects.all().filter(nomcom=True)
def location(self, obj):
return "/ann/nomcom/%d/" % obj.announcement_id
def lastmod(self, obj):
# could re-parse the time into a datetime object
return obj.announced_date

View file

@ -0,0 +1,16 @@
from django.contrib.sitemaps import Sitemap
from ietf.idtracker.models import IDInternal, InternetDraft
class IDTrackerMap(Sitemap):
changefreq = "always"
def items(self):
return IDInternal.objects.exclude(draft=999999)
class DraftMap(Sitemap):
changefreq = "always"
def items(self):
return InternetDraft.objects.all()
def location(self, obj):
return "/drafts/%s/" % obj.filename
def lastmod(self, obj):
return obj.last_modified_date

5
ietf/iesg/sitemaps.py Normal file
View file

@ -0,0 +1,5 @@
from django.contrib.sitemaps import Sitemap, GenericSitemap
from ietf.iesg.models import TelechatMinutes
from ietf.iesg.urls import telechat_detail
IESGMinutesMap = GenericSitemap(telechat_detail, changefreq="never")

6
ietf/ipr/sitemaps.py Normal file
View file

@ -0,0 +1,6 @@
from django.contrib.sitemaps import GenericSitemap
from ietf.ipr.urls import archive
# changefreq is "never except when it gets updated or withdrawn"
# so skip giving one
IPRMap = GenericSitemap(archive)

11
ietf/liaisons/sitemaps.py Normal file
View file

@ -0,0 +1,11 @@
from django.contrib.sitemaps import Sitemap
from ietf.liaisons.models import LiaisonDetail
class LiaisonMap(Sitemap):
changefreq = "never"
def items(self):
return LiaisonDetail.objects.all()
def location(self, obj):
return "/liaison/%d/" % obj.detail_id
def lastmod(self, obj):
return obj.last_modified_date

View file

@ -116,6 +116,7 @@ INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.sitemaps',
'django.contrib.admin',
'django.contrib.humanize',
'ietf.agenda',

View file

@ -6,6 +6,12 @@ from ietf.iesg.feeds import IESGMinutes
from ietf.idtracker.feeds import DocumentComments, InLastCall
from ietf.ipr.feeds import LatestIprDisclosures
from ietf.idtracker.sitemaps import IDTrackerMap, DraftMap
from ietf.liaisons.sitemaps import LiaisonMap
from ietf.ipr.sitemaps import IPRMap
from ietf.iesg.sitemaps import IESGMinutesMap
from ietf.announcements.sitemaps import NOMCOMAnnouncementsMap
from django.conf import settings
feeds = {
@ -15,9 +21,22 @@ feeds = {
'ipr': LatestIprDisclosures,
}
sitemaps = {
'idtracker': IDTrackerMap,
'drafts': DraftMap,
'liaison': LiaisonMap,
'ipr': IPRMap,
'iesg-minutes': IESGMinutesMap,
'nomcom-announcements': NOMCOMAnnouncementsMap,
}
urlpatterns = patterns('',
(r'^feed/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
{ 'feed_dict': feeds}),
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.index',
{ 'sitemaps': sitemaps}),
(r'^sitemap-(?P<section>.+).xml$', 'django.contrib.sitemaps.views.sitemap',
{'sitemaps': sitemaps}),
(r'^ann/', include('ietf.announcements.urls')),
(r'^idtracker/', include('ietf.idtracker.urls')),
#(r'^my/', include('ietf.my.urls')),