Skip to content

Commit 5f6816d

Browse files
committed
Handle bare numbers and rfc names with a space for the /doc/html view. Fixes ietf-tools#1999. Commit ready for merge.
- Legacy-Id: 19095
1 parent c8ed251 commit 5f6816d

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

ietf/doc/tests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,14 @@ def test_document_draft(self):
690690
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=draft.name, rev=draft.rev)))
691691
self.assertEqual(r.status_code, 200)
692692

693+
rfc = WgRfcFactory()
694+
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name())))
695+
self.assertEqual(r.status_code, 200)
696+
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.rfc_number())))
697+
self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name())))
698+
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=f'RFC {rfc.rfc_number()}')))
699+
self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name())))
700+
693701
# expired draft
694702
draft.set_state(State.objects.get(type="draft", slug="expired"))
695703

ietf/doc/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
url(r'^html/(?P<name>bcp[0-9]+?)(\.txt|\.html)?/?$', RedirectView.as_view(url=settings.RFC_EDITOR_INFO_BASE_URL+"%(name)s", permanent=False)),
6767
url(r'^html/(?P<name>std[0-9]+?)(\.txt|\.html)?/?$', RedirectView.as_view(url=settings.RFC_EDITOR_INFO_BASE_URL+"%(name)s", permanent=False)),
6868
url(r'^html/%(name)s(?:-%(rev)s)?(\.txt|\.html)?/?$' % settings.URL_REGEXPS, views_doc.document_html),
69+
url(r'^html/(?P<name>[Rr][Ff][Cc] [0-9]+?)(\.txt|\.html)?/?$', views_doc.document_html),
6970

7071
url(r'^all/?$', views_search.index_all_drafts),
7172
url(r'^active/?$', views_search.index_active_drafts),

ietf/doc/views_doc.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,10 @@ def document_html(request, name, rev=None):
670670
if rev and not name.startswith('charter-') and re.search('[0-9]{1,2}-[0-9]{2}', rev):
671671
name = "%s-%s" % (name, rev[:-3])
672672
rev = rev[-2:]
673+
if re.match("^[0-9]+$", name):
674+
return redirect('ietf.doc.views_doc.document_html',name=f'rfc{name}')
675+
if re.match("^[Rr][Ff][Cc] [0-9]+$",name):
676+
return redirect('ietf.doc.views_doc.document_html',name=f'rfc{name[4:]}')
673677
docs = Document.objects.filter(docalias__name=name)
674678
if rev and not docs.exists():
675679
# handle some special cases, like draft-ietf-tsvwg-ieee-802-11

0 commit comments

Comments
 (0)