From a36f7d66f741ab2c59203d4e6ecdf9c319ac0660 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Fri, 9 Dec 2022 10:51:31 +0200 Subject: [PATCH 1/3] fix: Use the doc name matched by fuzzy_find_documents when rendering Fixes #4855 --- ietf/doc/views_doc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index 4c7d216451..3c6a184d2a 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -812,6 +812,7 @@ def document_html(request, name, rev=None): if found.matched_name.startswith('rfc') and name != found.matched_name: return redirect('ietf.doc.views_doc.document_html', name=found.matched_name) + name = found.matched_name doc = found.documents.get() if found.matched_rev or found.matched_name.startswith('rfc'): From 75747411fc9f22d1be463e0499b50d3130e1c437 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 12 Dec 2022 18:42:07 +0200 Subject: [PATCH 2/3] Follow suggestion by @rjsparks --- ietf/doc/views_doc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index 3c6a184d2a..4880852a2b 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -810,9 +810,9 @@ def document_html(request, name, rev=None): raise Http404("Multiple documents matched: %s" % name) if found.matched_name.startswith('rfc') and name != found.matched_name: - return redirect('ietf.doc.views_doc.document_html', name=found.matched_name) + name = found.matched_name + return redirect('ietf.doc.views_doc.document_html', name=found.matched_name) - name = found.matched_name doc = found.documents.get() if found.matched_rev or found.matched_name.startswith('rfc'): From be62a3285e8233b73c0d805d6e6168fab4a2257b Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Wed, 14 Dec 2022 17:07:29 -0600 Subject: [PATCH 3/3] fix: handle names with endings that might parse as versions better --- ietf/doc/views_doc.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index 8304bd0bc3..c3e6cba085 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -809,23 +809,20 @@ def document_html(request, name, rev=None): if num_found > 1: raise Http404("Multiple documents matched: %s" % name) - if found.matched_name.startswith('rfc') and name != found.matched_name: - name = found.matched_name - return redirect('ietf.doc.views_doc.document_html', name=found.matched_name) - doc = found.documents.get() + rev = found.matched_rev + + if doc.is_rfc() and rev is None: + if not name.startswith('rfc'): + return redirect('ietf.doc.views_doc.document_html', name=doc.canonical_name()) - if found.matched_rev or found.matched_name.startswith('rfc'): - rev = found.matched_rev - else: - rev = doc.rev if rev: doc = doc.history_set.filter(rev=rev).first() or doc.fake_history_obj(rev) if not os.path.exists(doc.get_file_name()): raise Http404("File not found: %s" % doc.get_file_name()) - return document_main(request, name, rev=rev, document_html=True) + return document_main(request, name=doc.name, rev=doc.rev if not doc.is_rfc() else None, document_html=True) def document_pdfized(request, name, rev=None, ext=None):