Skip to content

Commit f784bb0

Browse files
committed
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
1 parent 68e7735 commit f784bb0

7 files changed

Lines changed: 70 additions & 0 deletions

File tree

ietf/announcements/sitemaps.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from django.contrib.sitemaps import Sitemap
2+
from ietf.announcements.models import Announcement
3+
4+
class NOMCOMAnnouncementsMap(Sitemap):
5+
changefreq = "never"
6+
def items(self):
7+
return Announcement.objects.all().filter(nomcom=True)
8+
def location(self, obj):
9+
return "/ann/nomcom/%d/" % obj.announcement_id
10+
def lastmod(self, obj):
11+
# could re-parse the time into a datetime object
12+
return obj.announced_date

ietf/idtracker/sitemaps.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from django.contrib.sitemaps import Sitemap
2+
from ietf.idtracker.models import IDInternal, InternetDraft
3+
4+
class IDTrackerMap(Sitemap):
5+
changefreq = "always"
6+
def items(self):
7+
return IDInternal.objects.exclude(draft=999999)
8+
9+
class DraftMap(Sitemap):
10+
changefreq = "always"
11+
def items(self):
12+
return InternetDraft.objects.all()
13+
def location(self, obj):
14+
return "/drafts/%s/" % obj.filename
15+
def lastmod(self, obj):
16+
return obj.last_modified_date

ietf/iesg/sitemaps.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from django.contrib.sitemaps import Sitemap, GenericSitemap
2+
from ietf.iesg.models import TelechatMinutes
3+
from ietf.iesg.urls import telechat_detail
4+
5+
IESGMinutesMap = GenericSitemap(telechat_detail, changefreq="never")

ietf/ipr/sitemaps.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.contrib.sitemaps import GenericSitemap
2+
from ietf.ipr.urls import archive
3+
4+
# changefreq is "never except when it gets updated or withdrawn"
5+
# so skip giving one
6+
IPRMap = GenericSitemap(archive)

ietf/liaisons/sitemaps.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from django.contrib.sitemaps import Sitemap
2+
from ietf.liaisons.models import LiaisonDetail
3+
4+
class LiaisonMap(Sitemap):
5+
changefreq = "never"
6+
def items(self):
7+
return LiaisonDetail.objects.all()
8+
def location(self, obj):
9+
return "/liaison/%d/" % obj.detail_id
10+
def lastmod(self, obj):
11+
return obj.last_modified_date

ietf/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
'django.contrib.contenttypes',
117117
'django.contrib.sessions',
118118
'django.contrib.sites',
119+
'django.contrib.sitemaps',
119120
'django.contrib.admin',
120121
'django.contrib.humanize',
121122
'ietf.agenda',

ietf/urls.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
from ietf.idtracker.feeds import DocumentComments, InLastCall
77
from ietf.ipr.feeds import LatestIprDisclosures
88

9+
from ietf.idtracker.sitemaps import IDTrackerMap, DraftMap
10+
from ietf.liaisons.sitemaps import LiaisonMap
11+
from ietf.ipr.sitemaps import IPRMap
12+
from ietf.iesg.sitemaps import IESGMinutesMap
13+
from ietf.announcements.sitemaps import NOMCOMAnnouncementsMap
14+
915
from django.conf import settings
1016

1117
feeds = {
@@ -15,9 +21,22 @@
1521
'ipr': LatestIprDisclosures,
1622
}
1723

24+
sitemaps = {
25+
'idtracker': IDTrackerMap,
26+
'drafts': DraftMap,
27+
'liaison': LiaisonMap,
28+
'ipr': IPRMap,
29+
'iesg-minutes': IESGMinutesMap,
30+
'nomcom-announcements': NOMCOMAnnouncementsMap,
31+
}
32+
1833
urlpatterns = patterns('',
1934
(r'^feed/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
2035
{ 'feed_dict': feeds}),
36+
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.index',
37+
{ 'sitemaps': sitemaps}),
38+
(r'^sitemap-(?P<section>.+).xml$', 'django.contrib.sitemaps.views.sitemap',
39+
{'sitemaps': sitemaps}),
2140
(r'^ann/', include('ietf.announcements.urls')),
2241
(r'^idtracker/', include('ietf.idtracker.urls')),
2342
#(r'^my/', include('ietf.my.urls')),

0 commit comments

Comments
 (0)