Skip to content

Commit c37525a

Browse files
committed
Added static views to sitemap.
1 parent 72b3840 commit c37525a

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

djangoproject/sitemaps.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
from dataclasses import dataclass
2+
3+
from django.contrib import sitemaps
4+
from django_hosts.resolvers import reverse
5+
6+
7+
@dataclass
8+
class URLObject:
9+
name: str
10+
host: str = "www"
11+
12+
13+
class StaticViewSitemap(sitemaps.Sitemap):
14+
priority = 0.5
15+
changefreq = "monthly"
16+
17+
def items(self):
18+
return [
19+
# accounts
20+
URLObject("registration_register"),
21+
# aggregator
22+
URLObject("community-index"),
23+
URLObject("community-ecosystem"),
24+
URLObject("local-django-communities"),
25+
# contact
26+
URLObject("contact_foundation"),
27+
# dashboard
28+
URLObject("dashboard-index", host="dashboard"),
29+
URLObject("metric-list", host="dashboard"),
30+
# djangoproject
31+
URLObject("homepage"),
32+
URLObject("overview"),
33+
URLObject("start"),
34+
URLObject("code_of_conduct"),
35+
URLObject("conduct_faq"),
36+
URLObject("conduct_reporting"),
37+
URLObject("conduct_enforcement"),
38+
URLObject("conduct_changes"),
39+
URLObject("diversity"),
40+
URLObject("diversity_changes"),
41+
# foundation
42+
URLObject("foundation_meeting_archive_index"),
43+
# fundraising
44+
URLObject("fundraising:index"),
45+
# members
46+
URLObject("members:individual-members"),
47+
URLObject("members:corporate-members"),
48+
URLObject("members:corporate-members-join"),
49+
URLObject("members:corporate-members-badges"),
50+
URLObject("members:teams"),
51+
# releases
52+
URLObject("download"),
53+
]
54+
55+
def location(self, item):
56+
return reverse(item.name, host=item.host)

djangoproject/tests.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,9 @@ def test_single_h1_per_page(self):
205205
response = self.client.get(url)
206206
self.assertEqual(response.status_code, 200)
207207
self.assertContains(response, "<h1", count=1)
208+
209+
210+
class SiteMapTests(TestCase):
211+
def test_sitemap_renders(self):
212+
response = self.client.get(reverse("sitemap"))
213+
self.assertEqual(response.status_code, 200)

djangoproject/urls/www.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from aggregator.feeds import CommunityAggregatorFeed, CommunityAggregatorFirehoseFeed
1414
from blog.feeds import WeblogEntryFeed
1515
from blog.sitemaps import WeblogSitemap
16+
from djangoproject.sitemaps import StaticViewSitemap
1617
from foundation.feeds import FoundationMinutesFeed
1718
from foundation.views import CoreDevelopers
1819

@@ -21,6 +22,7 @@
2122
sitemaps = {
2223
"weblog": WeblogSitemap,
2324
"flatpages": FlatPageSitemap,
25+
"static": StaticViewSitemap,
2426
}
2527

2628

@@ -135,6 +137,7 @@
135137
"sitemap.xml",
136138
cache_page(60 * 60 * 6)(sitemap_views.sitemap),
137139
{"sitemaps": sitemaps},
140+
name="sitemap",
138141
),
139142
path("weblog/", include("blog.urls")),
140143
path("download/", include("releases.urls")),

0 commit comments

Comments
 (0)