chore: first pass at clearing out canonical_name

This commit is contained in:
Robert Sparks 2023-08-18 10:59:55 -05:00
parent 3b067a468a
commit 823281ba6c
No known key found for this signature in database
GPG key ID: 6E2A6A5775F91318
88 changed files with 223 additions and 237 deletions

View file

@ -993,7 +993,7 @@ class RfcdiffSupportTests(TestCase):
) )
num_received = received num_received = received
received = self.getJson(dict(name=rfc.canonical_name())) received = self.getJson(dict(name=rfc.name))
self.assertEqual(num_received, received, 'RFC by canonical name gives same result as by number') self.assertEqual(num_received, received, 'RFC by canonical name gives same result as by number')
received = self.getJson(dict(name=f'RfC {number}')) received = self.getJson(dict(name=f'RfC {number}'))
@ -1032,7 +1032,7 @@ class RfcdiffSupportTests(TestCase):
draft = reload_db_objects(draft) draft = reload_db_objects(draft)
# Some old rfcs had tombstones that shouldn't be used for comparisons # Some old rfcs had tombstones that shouldn't be used for comparisons
received = self.getJson(dict(name=rfc.canonical_name())) received = self.getJson(dict(name=rfc.name))
self.assertTrue(received['previous'].endswith('00')) self.assertTrue(received['previous'].endswith('00'))
def do_rfc_with_broken_history_test(self, draft_name): def do_rfc_with_broken_history_test(self, draft_name):
@ -1048,7 +1048,7 @@ class RfcdiffSupportTests(TestCase):
received, received,
dict( dict(
content_url=rfc.get_href(), content_url=rfc.get_href(),
name=rfc.canonical_name(), name=rfc.name,
previous=f'{draft.name}-10', previous=f'{draft.name}-10',
previous_url= f'{settings.IETF_ID_ARCHIVE_URL}{draft.name}-10.txt', previous_url= f'{settings.IETF_ID_ARCHIVE_URL}{draft.name}-10.txt',
), ),

View file

@ -99,7 +99,7 @@ if newpid == 0:
pipe("%s -a %s %s" % (settings.RSYNC_BINARY,settings.RFC_TEXT_RSYNC_SOURCE,settings.RFC_PATH)) pipe("%s -a %s %s" % (settings.RSYNC_BINARY,settings.RFC_TEXT_RSYNC_SOURCE,settings.RFC_PATH))
for rfc in new_rfcs: for rfc in new_rfcs:
rebuild_reference_relations(rfc) rebuild_reference_relations(rfc)
log("Updated references for %s"%rfc.canonical_name()) log("Updated references for %s"%rfc.name)
except: except:
subject = "Exception in updating references for new rfcs: %s : %s" % (sys.exc_info()[0],sys.exc_info()[1]) subject = "Exception in updating references for new rfcs: %s : %s" % (sys.exc_info()[0],sys.exc_info()[1])
msg = "%s\n%s\n----\n%s"%(sys.exc_info()[0],sys.exc_info()[1],traceback.format_tb(sys.exc_info()[2])) msg = "%s\n%s\n----\n%s"%(sys.exc_info()[0],sys.exc_info()[1],traceback.format_tb(sys.exc_info()[2]))

View file

@ -45,7 +45,7 @@ class RelatedDocumentInline(admin.TabularInline):
model = RelatedDocument model = RelatedDocument
fk_name= 'source' fk_name= 'source'
def this(self, instance): def this(self, instance):
return instance.source.canonical_name() return instance.source.name
readonly_fields = ['this', ] readonly_fields = ['this', ]
fields = ['this', 'relationship', 'target', ] fields = ['this', 'relationship', 'target', ]
raw_id_fields = ['target'] raw_id_fields = ['target']

View file

@ -119,12 +119,6 @@ class RfcFactory(BaseDocumentFactory):
else: else:
obj.set_state(State.objects.get(type_id='rfc',slug='published')) obj.set_state(State.objects.get(type_id='rfc',slug='published'))
@factory.post_generation
def reset_canonical_name(obj, create, extracted, **kwargs):
if hasattr(obj, '_canonical_name'):
del obj._canonical_name
return None
class IndividualDraftFactory(BaseDocumentFactory): class IndividualDraftFactory(BaseDocumentFactory):

View file

@ -46,7 +46,7 @@ class DocumentChangesFeed(Feed):
raise FeedDoesNotExist raise FeedDoesNotExist
return urlreverse( return urlreverse(
"ietf.doc.views_doc.document_history", "ietf.doc.views_doc.document_history",
kwargs=dict(name=obj.canonical_name()), kwargs=dict(name=obj.name),
) )
def subtitle(self, obj): def subtitle(self, obj):
@ -86,7 +86,7 @@ class DocumentChangesFeed(Feed):
return ( return (
urlreverse( urlreverse(
"ietf.doc.views_doc.document_history", "ietf.doc.views_doc.document_history",
kwargs=dict(name=item.doc.canonical_name()), kwargs=dict(name=item.doc.name),
) )
+ "#history-%s" % item.pk + "#history-%s" % item.pk
) )
@ -208,13 +208,13 @@ class RfcFeed(Feed):
return [doc for doc, time in results] return [doc for doc, time in results]
def item_title(self, item): def item_title(self, item):
return "%s : %s" % (item.canonical_name(), item.title) return "%s : %s" % (item.name, item.title)
def item_description(self, item): def item_description(self, item):
return item.abstract return item.abstract
def item_link(self, item): def item_link(self, item):
return "https://rfc-editor.org/info/%s" % item.canonical_name() return "https://rfc-editor.org/info/%s" % item.name
def item_pubdate(self, item): def item_pubdate(self, item):
return item.publication_time return item.publication_time
@ -229,7 +229,7 @@ class RfcFeed(Feed):
for fmt, media_type in [("txt", "text/plain"), ("html", "text/html")]: for fmt, media_type in [("txt", "text/plain"), ("html", "text/html")]:
media_contents.append( media_contents.append(
{ {
"url": f"https://rfc-editor.org/rfc/{item.canonical_name()}.{fmt}", "url": f"https://rfc-editor.org/rfc/{item.name}.{fmt}",
"media_type": media_type, "media_type": media_type,
"is_format_of": self.item_link(item), "is_format_of": self.item_link(item),
} }
@ -237,7 +237,7 @@ class RfcFeed(Feed):
if item.rfc_number not in [571, 587]: if item.rfc_number not in [571, 587]:
media_contents.append( media_contents.append(
{ {
"url": f"https://www.rfc-editor.org/rfc/pdfrfc/{item.canonical_name()}.txt.pdf", "url": f"https://www.rfc-editor.org/rfc/pdfrfc/{item.name}.txt.pdf",
"media_type": "application/pdf", "media_type": "application/pdf",
"is_format_of": self.item_link(item), "is_format_of": self.item_link(item),
} }
@ -245,7 +245,7 @@ class RfcFeed(Feed):
else: else:
media_contents.append( media_contents.append(
{ {
"url": f"https://www.rfc-editor.org/rfc/{item.canonical_name()}.xml", "url": f"https://www.rfc-editor.org/rfc/{item.name}.xml",
"media_type": "application/rfc+xml", "media_type": "application/rfc+xml",
} }
) )
@ -256,16 +256,16 @@ class RfcFeed(Feed):
]: ]:
media_contents.append( media_contents.append(
{ {
"url": f"https://rfc-editor.org/rfc/{item.canonical_name()}.{fmt}", "url": f"https://rfc-editor.org/rfc/{item.name}.{fmt}",
"media_type": media_type, "media_type": media_type,
"is_format_of": f"https://www.rfc-editor.org/rfc/{item.canonical_name()}.xml", "is_format_of": f"https://www.rfc-editor.org/rfc/{item.name}.xml",
} }
) )
extra.update({"media_contents": media_contents}) extra.update({"media_contents": media_contents})
extra.update({"doi": "10.17487/%s" % item.canonical_name().upper()}) extra.update({"doi": "10.17487/%s" % item.name.upper()})
extra.update( extra.update(
{"doiuri": "http://dx.doi.org/10.17487/%s" % item.canonical_name().upper()} {"doiuri": "http://dx.doi.org/10.17487/%s" % item.name.upper()}
) )
# R104 Publisher (Mandatory - but we need a string from them first) # R104 Publisher (Mandatory - but we need a string from them first)

View file

@ -202,7 +202,7 @@ def generate_last_call_announcement(request, doc):
doc.filled_title = textwrap.fill(doc.title, width=70, subsequent_indent=" " * 3) doc.filled_title = textwrap.fill(doc.title, width=70, subsequent_indent=" " * 3)
iprs = iprs_from_docs(related_docs(Document.objects.get(name=doc.canonical_name()))) iprs = iprs_from_docs(related_docs(Document.objects.get(name=doc.name)))
if iprs: if iprs:
ipr_links = [ urlreverse("ietf.ipr.views.show", kwargs=dict(id=i.id)) for i in iprs] ipr_links = [ urlreverse("ietf.ipr.views.show", kwargs=dict(id=i.id)) for i in iprs]
ipr_links = [ settings.IDTRACKER_BASE_URL+url if not url.startswith("http") else url for url in ipr_links ] ipr_links = [ settings.IDTRACKER_BASE_URL+url if not url.startswith("http") else url for url in ipr_links ]

View file

@ -173,7 +173,7 @@ class DocumentInfo(models.Model):
if self.uploaded_filename: if self.uploaded_filename:
self._cached_base_name = self.uploaded_filename self._cached_base_name = self.uploaded_filename
elif self.type_id == 'rfc': elif self.type_id == 'rfc':
self._cached_base_name = "%s.txt" % self.canonical_name() self._cached_base_name = "%s.txt" % self.name
elif self.type_id == 'draft': elif self.type_id == 'draft':
if self.is_dochistory(): if self.is_dochistory():
self._cached_base_name = "%s-%s.txt" % (self.doc.name, self.rev) self._cached_base_name = "%s-%s.txt" % (self.doc.name, self.rev)
@ -181,7 +181,7 @@ class DocumentInfo(models.Model):
self._cached_base_name = "%s-%s.txt" % (self.name, self.rev) self._cached_base_name = "%s-%s.txt" % (self.name, self.rev)
elif self.type_id in ["slides", "agenda", "minutes", "bluesheets", "procmaterials", ] and self.meeting_related(): elif self.type_id in ["slides", "agenda", "minutes", "bluesheets", "procmaterials", ] and self.meeting_related():
ext = 'pdf' if self.type_id == 'procmaterials' else 'txt' ext = 'pdf' if self.type_id == 'procmaterials' else 'txt'
self._cached_base_name = f'{self.canonical_name()}-{self.rev}.{ext}' self._cached_base_name = f'{self.name}-{self.rev}.{ext}'
elif self.type_id == 'review': elif self.type_id == 'review':
# TODO: This will be wrong if a review is updated on the same day it was created (or updated more than once on the same day) # TODO: This will be wrong if a review is updated on the same day it was created (or updated more than once on the same day)
self._cached_base_name = "%s.txt" % self.name self._cached_base_name = "%s.txt" % self.name
@ -189,9 +189,9 @@ class DocumentInfo(models.Model):
self._cached_base_name = "%s-%s.md" % (self.name, self.rev) self._cached_base_name = "%s-%s.md" % (self.name, self.rev)
else: else:
if self.rev: if self.rev:
self._cached_base_name = "%s-%s.txt" % (self.canonical_name(), self.rev) self._cached_base_name = "%s-%s.txt" % (self.name, self.rev)
else: else:
self._cached_base_name = "%s.txt" % (self.canonical_name(), ) self._cached_base_name = "%s.txt" % (self.name, )
return self._cached_base_name return self._cached_base_name
def get_file_name(self): def get_file_name(self):
@ -507,7 +507,7 @@ class DocumentInfo(models.Model):
def replaces(self): def replaces(self):
return set([ d for r in self.related_that_doc("replaces") for d in r.docs.all() ]) return set([ d for r in self.related_that_doc("replaces") for d in r.docs.all() ])
def replaces_canonical_name(self): def replaces_name(self):
s = set([ r.document for r in self.related_that_doc("replaces")]) s = set([ r.document for r in self.related_that_doc("replaces")])
first = list(s)[0] if s else None first = list(s)[0] if s else None
return None if first is None else first.filename_with_rev() return None if first is None else first.filename_with_rev()
@ -540,7 +540,7 @@ class DocumentInfo(models.Model):
if self.get_state_slug() == "rfc": if self.get_state_slug() == "rfc":
try: try:
html = Path( html = Path(
os.path.join(settings.RFC_PATH, self.canonical_name() + ".html") os.path.join(settings.RFC_PATH, self.name + ".html")
).read_text() ).read_text()
except (IOError, UnicodeDecodeError): except (IOError, UnicodeDecodeError):
return None return None
@ -805,7 +805,7 @@ class Document(DocumentInfo):
name = self.name name = self.name
url = None url = None
if self.type_id == "draft" and self.get_state_slug() == "rfc": if self.type_id == "draft" and self.get_state_slug() == "rfc":
name = self.canonical_name() name = self.name
url = urlreverse('ietf.doc.views_doc.document_main', kwargs={ 'name': name }, urlconf="ietf.urls") url = urlreverse('ietf.doc.views_doc.document_main', kwargs={ 'name': name }, urlconf="ietf.urls")
elif self.type_id in ('slides','bluesheets','recording'): elif self.type_id in ('slides','bluesheets','recording'):
session = self.session_set.first() session = self.session_set.first()
@ -844,7 +844,7 @@ class Document(DocumentInfo):
return e return e
def display_name(self): def display_name(self):
name = self.canonical_name() name = self.name
if name.startswith('rfc'): if name.startswith('rfc'):
name = name.upper() name = name.upper()
return name return name
@ -1109,10 +1109,7 @@ class DocHistoryAuthor(DocumentAuthorInfo):
class DocHistory(DocumentInfo): class DocHistory(DocumentInfo):
doc = ForeignKey(Document, related_name="history_set") doc = ForeignKey(Document, related_name="history_set")
# the name here is used to capture the canonical name at the time
# - it would perhaps be more elegant to simply call the attribute
# canonical_name and replace the function on Document with a
# property
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
def __str__(self): def __str__(self):
@ -1124,11 +1121,6 @@ class DocHistory(DocumentInfo):
def get_related_proceedings_material(self): def get_related_proceedings_material(self):
return self.doc.get_related_proceedings_material() return self.doc.get_related_proceedings_material()
def canonical_name(self):
if hasattr(self, '_canonical_name'):
return self._canonical_name
return self.name
def latest_event(self, *args, **kwargs): def latest_event(self, *args, **kwargs):
kwargs["time__lte"] = self.time kwargs["time__lte"] = self.time
return self.doc.latest_event(*args, **kwargs) return self.doc.latest_event(*args, **kwargs)

View file

@ -139,7 +139,7 @@ def rfceditor_info_url(rfcnum : str):
return urljoin(settings.RFC_EDITOR_INFO_BASE_URL, f'rfc{rfcnum}') return urljoin(settings.RFC_EDITOR_INFO_BASE_URL, f'rfc{rfcnum}')
def doc_canonical_name(name): def doc_name(name):
"""Check whether a given document exists, and return its canonical name""" """Check whether a given document exists, and return its canonical name"""
def find_unique(n): def find_unique(n):
@ -174,7 +174,7 @@ def doc_canonical_name(name):
def link_charter_doc_match(match): def link_charter_doc_match(match):
if not doc_canonical_name(match[0]): if not doc_name(match[0]):
return match[0] return match[0]
url = urlreverse( url = urlreverse(
"ietf.doc.views_doc.document_main", "ietf.doc.views_doc.document_main",
@ -187,7 +187,7 @@ def link_non_charter_doc_match(match):
name = match[0] name = match[0]
# handle "I-D.*"" reference-style matches # handle "I-D.*"" reference-style matches
name = re.sub(r"^i-d\.(.*)", r"draft-\1", name, flags=re.IGNORECASE) name = re.sub(r"^i-d\.(.*)", r"draft-\1", name, flags=re.IGNORECASE)
cname = doc_canonical_name(name) cname = doc_name(name)
if not cname: if not cname:
return match[0] return match[0]
if name == cname: if name == cname:
@ -202,7 +202,7 @@ def link_non_charter_doc_match(match):
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=cname)) url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=cname))
return f'<a href="{url}">{match[0]}</a>' return f'<a href="{url}">{match[0]}</a>'
cname = doc_canonical_name(name) cname = doc_name(name)
if not cname: if not cname:
return match[0] return match[0]
if name == cname: if name == cname:
@ -222,7 +222,7 @@ def link_non_charter_doc_match(match):
def link_other_doc_match(match): def link_other_doc_match(match):
doc = match[2].strip().lower() doc = match[2].strip().lower()
rev = match[3] rev = match[3]
if not doc_canonical_name(doc + rev): if not doc_name(doc + rev):
return match[0] return match[0]
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc + rev)) url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc + rev))
return f'<a href="{url}">{match[1]}</a>' return f'<a href="{url}">{match[1]}</a>'
@ -268,7 +268,7 @@ def urlize_related_source_list(related, document_html=False):
names = set() names = set()
titles = set() titles = set()
for rel in related: for rel in related:
name=rel.source.canonical_name() name=rel.source.name
title = rel.source.title title = rel.source.title
if name in names and title in titles: if name in names and title in titles:
continue continue
@ -289,7 +289,7 @@ def urlize_related_target_list(related, document_html=False):
"""Convert a list of RelatedDocuments into list of links using the target document's canonical name""" """Convert a list of RelatedDocuments into list of links using the target document's canonical name"""
links = [] links = []
for rel in related: for rel in related:
name=rel.target.canonical_name() name=rel.target.name
title = rel.target.title title = rel.target.title
url = urlreverse('ietf.doc.views_doc.document_main' if document_html is False else 'ietf.doc.views_doc.document_html', kwargs=dict(name=name)) url = urlreverse('ietf.doc.views_doc.document_main' if document_html is False else 'ietf.doc.views_doc.document_html', kwargs=dict(name=name))
name = escape(name) name = escape(name)

View file

@ -347,7 +347,7 @@ class SearchTests(TestCase):
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertContains(r, draft.name) self.assertContains(r, draft.name)
self.assertContains(r, escape(draft.action_holders.first().name)) self.assertContains(r, escape(draft.action_holders.first().name))
self.assertContains(r, rfc.canonical_name()) self.assertContains(r, rfc.name)
self.assertContains(r, conflrev.name) self.assertContains(r, conflrev.name)
self.assertContains(r, statchg.name) self.assertContains(r, statchg.name)
self.assertContains(r, charter.name) self.assertContains(r, charter.name)
@ -395,7 +395,7 @@ class SearchTests(TestCase):
r = self.client.get(urlreverse('ietf.doc.views_search.index_all_drafts')) r = self.client.get(urlreverse('ietf.doc.views_search.index_all_drafts'))
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertContains(r, draft.name) self.assertContains(r, draft.name)
self.assertContains(r, rfc.canonical_name().upper()) self.assertContains(r, rfc.name.upper())
r = self.client.get(urlreverse('ietf.doc.views_search.index_active_drafts')) r = self.client.get(urlreverse('ietf.doc.views_search.index_active_drafts'))
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
@ -642,7 +642,7 @@ Man Expires September 22, 2015 [Page 3]
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off': if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
self.assertContains(r, "Show full document") self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street") self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=0") r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=0")
@ -650,7 +650,7 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "Active Internet-Draft") self.assertContains(r, "Active Internet-Draft")
self.assertContains(r, "Show full document") self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street") self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=foo") r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=foo")
@ -658,7 +658,7 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "Active Internet-Draft") self.assertContains(r, "Active Internet-Draft")
self.assertNotContains(r, "Show full document") self.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street") self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=1") r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)) + "?include_text=1")
@ -666,7 +666,7 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "Active Internet-Draft") self.assertContains(r, "Active Internet-Draft")
self.assertNotContains(r, "Show full document") self.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street") self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
self.client.cookies = SimpleCookie({str('full_draft'): str('on')}) self.client.cookies = SimpleCookie({str('full_draft'): str('on')})
@ -675,7 +675,7 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "Active Internet-Draft") self.assertContains(r, "Active Internet-Draft")
self.assertNotContains(r, "Show full document") self.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street") self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
self.client.cookies = SimpleCookie({str('full_draft'): str('off')}) self.client.cookies = SimpleCookie({str('full_draft'): str('off')})
@ -684,7 +684,7 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "Active Internet-Draft") self.assertContains(r, "Active Internet-Draft")
self.assertContains(r, "Show full document") self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street") self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
self.client.cookies = SimpleCookie({str('full_draft'): str('foo')}) self.client.cookies = SimpleCookie({str('full_draft'): str('foo')})
@ -694,7 +694,7 @@ Man Expires September 22, 2015 [Page 3]
if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off': if settings.USER_PREFERENCE_DEFAULTS['full_draft'] == 'off':
self.assertContains(r, "Show full document") self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street") self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name()) self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title) self.assertContains(r, replaced.title)
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=draft.name))) r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=draft.name)))
@ -721,16 +721,16 @@ Man Expires September 22, 2015 [Page 3]
rfc = WgRfcFactory() rfc = WgRfcFactory()
rfc.save_with_history([DocEventFactory(doc=rfc)]) rfc.save_with_history([DocEventFactory(doc=rfc)])
(Path(settings.RFC_PATH) / rfc.get_base_name()).touch() (Path(settings.RFC_PATH) / rfc.get_base_name()).touch()
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name()))) r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.name)))
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) q = PyQuery(r.content)
self.assertEqual(q('title').text(), f'RFC {rfc.rfc_number} - {rfc.title}') self.assertEqual(q('title').text(), f'RFC {rfc.rfc_number} - {rfc.title}')
# synonyms for the rfc should be redirected to its canonical view # synonyms for the rfc should be redirected to its canonical view
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.rfc_number))) r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.rfc_number)))
self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name()))) self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.name)))
r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=f'RFC {rfc.rfc_number}'))) r = self.client.get(urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=f'RFC {rfc.rfc_number}')))
self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.canonical_name()))) self.assertRedirects(r, urlreverse("ietf.doc.views_doc.document_html", kwargs=dict(name=rfc.name)))
# expired draft # expired draft
draft.set_state(State.objects.get(type="draft", slug="expired")) draft.set_state(State.objects.get(type="draft", slug="expired"))
@ -757,7 +757,7 @@ Man Expires September 22, 2015 [Page 3]
r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name))) r = self.client.get(urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertContains(r, "Replaced Internet-Draft") self.assertContains(r, "Replaced Internet-Draft")
self.assertContains(r, replacement.canonical_name()) self.assertContains(r, replacement.name)
self.assertContains(r, replacement.title) self.assertContains(r, replacement.title)
rel.delete() rel.delete()
@ -787,13 +787,13 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "RFC 123456") self.assertContains(r, "RFC 123456")
self.assertContains(r, draft.name) self.assertContains(r, draft.name)
# obs/updates included with RFC # obs/updates included with RFC
self.assertContains(r, obsoleted.canonical_name()) self.assertContains(r, obsoleted.name)
self.assertContains(r, obsoleted.title) self.assertContains(r, obsoleted.title)
self.assertContains(r, obsoleted_by.canonical_name()) self.assertContains(r, obsoleted_by.name)
self.assertContains(r, obsoleted_by.title) self.assertContains(r, obsoleted_by.title)
self.assertContains(r, updated.canonical_name()) self.assertContains(r, updated.name)
self.assertContains(r, updated.title) self.assertContains(r, updated.title)
self.assertContains(r, updated_by.canonical_name()) self.assertContains(r, updated_by.name)
self.assertContains(r, updated_by.title) self.assertContains(r, updated_by.title)
# naked RFC - also weird that we test a PS from the ISE # naked RFC - also weird that we test a PS from the ISE
@ -845,7 +845,7 @@ Man Expires September 22, 2015 [Page 3]
r = self.client.get( r = self.client.get(
urlreverse( urlreverse(
'ietf.doc.views_doc.document_main', 'ietf.doc.views_doc.document_main',
kwargs={'name': draft.canonical_name()}, kwargs={'name': draft.name},
) )
) )
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
@ -2698,20 +2698,20 @@ class Idnits2SupportTests(TestCase):
rfc = WgRfcFactory() rfc = WgRfcFactory()
draft = WgDraftFactory() draft = WgDraftFactory()
draft.relateddocument_set.create(relationship_id="became_rfc", target=rfc) draft.relateddocument_set.create(relationship_id="became_rfc", target=rfc)
url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=rfc.canonical_name())) url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=rfc.name))
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertContains(r,'rfcnum') self.assertContains(r,'rfcnum')
draft = WgDraftFactory() draft = WgDraftFactory()
url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=draft.canonical_name())) url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=draft.name))
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertNotContains(r,'rfcnum') self.assertNotContains(r,'rfcnum')
self.assertContains(r,'Unknown') self.assertContains(r,'Unknown')
draft = WgDraftFactory(intended_std_level_id='ps') draft = WgDraftFactory(intended_std_level_id='ps')
url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=draft.canonical_name())) url = urlreverse('ietf.doc.views_doc.idnits2_state', kwargs=dict(name=draft.name))
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
self.assertContains(r,'Proposed') self.assertContains(r,'Proposed')

View file

@ -32,7 +32,7 @@ class BofreqTests(TestCase):
settings_temp_path_overrides = TestCase.settings_temp_path_overrides + ['BOFREQ_PATH'] settings_temp_path_overrides = TestCase.settings_temp_path_overrides + ['BOFREQ_PATH']
def write_bofreq_file(self, bofreq): def write_bofreq_file(self, bofreq):
fname = Path(settings.BOFREQ_PATH) / ("%s-%s.md" % (bofreq.canonical_name(), bofreq.rev)) fname = Path(settings.BOFREQ_PATH) / ("%s-%s.md" % (bofreq.name, bofreq.rev))
with fname.open("w") as f: with fname.open("w") as f:
f.write(f"""# This is a test bofreq. f.write(f"""# This is a test bofreq.
Version: {bofreq.rev} Version: {bofreq.rev}

View file

@ -388,7 +388,7 @@ class ConflictReviewSubmitTests(TestCase):
# Right now, nothing to test - we let people put whatever the web browser will let them put into that textbox # Right now, nothing to test - we let people put whatever the web browser will let them put into that textbox
# sane post using textbox # sane post using textbox
path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.name, doc.rev))
self.assertEqual(doc.rev,'00') self.assertEqual(doc.rev,'00')
self.assertFalse(os.path.exists(path)) self.assertFalse(os.path.exists(path))
r = self.client.post(url,dict(content="Some initial review text\n",submit_response="1")) r = self.client.post(url,dict(content="Some initial review text\n",submit_response="1"))
@ -408,7 +408,7 @@ class ConflictReviewSubmitTests(TestCase):
# A little additional setup # A little additional setup
# doc.rev is u'00' per the test setup - double-checking that here - if it fails, the breakage is in setUp # doc.rev is u'00' per the test setup - double-checking that here - if it fails, the breakage is in setUp
self.assertEqual(doc.rev,'00') self.assertEqual(doc.rev,'00')
path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.name, doc.rev))
with io.open(path,'w') as f: with io.open(path,'w') as f:
f.write('This is the old proposal.') f.write('This is the old proposal.')
f.close() f.close()
@ -435,7 +435,7 @@ class ConflictReviewSubmitTests(TestCase):
self.assertEqual(r.status_code, 302) self.assertEqual(r.status_code, 302)
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission') doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
self.assertEqual(doc.rev,'01') self.assertEqual(doc.rev,'01')
path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (doc.name, doc.rev))
with io.open(path) as f: with io.open(path) as f:
self.assertEqual(f.read(),"This is a new proposal.") self.assertEqual(f.read(),"This is a new proposal.")
f.close() f.close()

View file

@ -41,7 +41,7 @@ class IssueRSABBallotTests(TestCase):
self.client.login(username="rsab-chair", password="rsab-chair+password") self.client.login(username="rsab-chair", password="rsab-chair+password")
for name in [ for name in [
doc.canonical_name() doc.name
for doc in (individual_draft, wg_draft, rg_draft, ed_rfc) for doc in (individual_draft, wg_draft, rg_draft, ed_rfc)
]: ]:
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=name)) url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=name))

View file

@ -396,9 +396,9 @@ class StatusChangeTests(TestCase):
self.assertTrue(notification['Subject'].startswith('Approved:')) self.assertTrue(notification['Subject'].startswith('Approved:'))
notification_text = get_payload_text(notification) notification_text = get_payload_text(notification)
self.assertIn('The AD has approved changing the status', notification_text) self.assertIn('The AD has approved changing the status', notification_text)
self.assertIn(Document.objects.get(name='rfc9999').canonical_name(), notification_text) self.assertIn(Document.objects.get(name='rfc9999').name, notification_text)
self.assertIn(Document.objects.get(name='rfc9998').canonical_name(), notification_text) self.assertIn(Document.objects.get(name='rfc9998').name, notification_text)
self.assertNotIn(Document.objects.get(name='rfc14').canonical_name(), notification_text) self.assertNotIn(Document.objects.get(name='rfc14').name, notification_text)
self.assertNotIn('No value found for', notification_text) # make sure all interpolation values were set self.assertNotIn('No value found for', notification_text) # make sure all interpolation values were set
else: else:
self.assertEqual(len(outbox), 0) self.assertEqual(len(outbox), 0)
@ -501,7 +501,7 @@ class StatusChangeSubmitTests(TestCase):
# Right now, nothing to test - we let people put whatever the web browser will let them put into that textbox # Right now, nothing to test - we let people put whatever the web browser will let them put into that textbox
# sane post using textbox # sane post using textbox
path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
self.assertEqual(doc.rev,'00') self.assertEqual(doc.rev,'00')
self.assertFalse(os.path.exists(path)) self.assertFalse(os.path.exists(path))
r = self.client.post(url,dict(content="Some initial review text\n",submit_response="1")) r = self.client.post(url,dict(content="Some initial review text\n",submit_response="1"))
@ -520,7 +520,7 @@ class StatusChangeSubmitTests(TestCase):
# A little additional setup # A little additional setup
# doc.rev is u'00' per the test setup - double-checking that here - if it fails, the breakage is in setUp # doc.rev is u'00' per the test setup - double-checking that here - if it fails, the breakage is in setUp
self.assertEqual(doc.rev,'00') self.assertEqual(doc.rev,'00')
path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
with io.open(path,'w') as f: with io.open(path,'w') as f:
f.write('This is the old proposal.') f.write('This is the old proposal.')
f.close() f.close()
@ -552,7 +552,7 @@ class StatusChangeSubmitTests(TestCase):
self.assertEqual(r.status_code, 302) self.assertEqual(r.status_code, 302)
doc = Document.objects.get(name='status-change-imaginary-mid-review') doc = Document.objects.get(name='status-change-imaginary-mid-review')
self.assertEqual(doc.rev,'01') self.assertEqual(doc.rev,'01')
path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
with io.open(path) as f: with io.open(path) as f:
self.assertEqual(f.read(),"This is a new proposal.") self.assertEqual(f.read(),"This is a new proposal.")
f.close() f.close()

View file

@ -340,16 +340,16 @@ class RebuildReferenceRelationsTests(TestCase):
'Test conditions set up incorrectly: wrong prior document relationships') 'Test conditions set up incorrectly: wrong prior document relationships')
for other_doc in [self.normative, self.informative, self.unknown]: for other_doc in [self.normative, self.informative, self.unknown]:
self.assertEqual( self.assertEqual(
self.doc.relateddocument_set.filter(target__name=other_doc.canonical_name()).count(), self.doc.relateddocument_set.filter(target__name=other_doc.name).count(),
0, 0,
'Test conditions set up incorrectly: new documents already related', 'Test conditions set up incorrectly: new documents already related',
) )
def _get_refs_return_value(self): def _get_refs_return_value(self):
return { return {
self.normative.canonical_name(): Draft.REF_TYPE_NORMATIVE, self.normative.name: Draft.REF_TYPE_NORMATIVE,
self.informative.canonical_name(): Draft.REF_TYPE_INFORMATIVE, self.informative.name: Draft.REF_TYPE_INFORMATIVE,
self.unknown.canonical_name(): Draft.REF_TYPE_UNKNOWN, self.unknown.name: Draft.REF_TYPE_UNKNOWN,
'draft-not-found': Draft.REF_TYPE_NORMATIVE, 'draft-not-found': Draft.REF_TYPE_NORMATIVE,
} }
@ -388,9 +388,9 @@ class RebuildReferenceRelationsTests(TestCase):
self.assertCountEqual( self.assertCountEqual(
self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'), self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'),
[ [
(self.normative.canonical_name(), 'refnorm'), (self.normative.name, 'refnorm'),
(self.informative.canonical_name(), 'refinfo'), (self.informative.name, 'refinfo'),
(self.unknown.canonical_name(), 'refunk'), (self.unknown.name, 'refunk'),
(self.updated.name, 'updates'), (self.updated.name, 'updates'),
] ]
) )
@ -419,9 +419,9 @@ class RebuildReferenceRelationsTests(TestCase):
self.assertCountEqual( self.assertCountEqual(
self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'), self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'),
[ [
(self.normative.canonical_name(), 'refnorm'), (self.normative.name, 'refnorm'),
(self.informative.canonical_name(), 'refinfo'), (self.informative.name, 'refinfo'),
(self.unknown.canonical_name(), 'refunk'), (self.unknown.name, 'refunk'),
(self.updated.name, 'updates'), (self.updated.name, 'updates'),
] ]
) )
@ -451,9 +451,9 @@ class RebuildReferenceRelationsTests(TestCase):
self.assertCountEqual( self.assertCountEqual(
self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'), self.doc.relateddocument_set.values_list('target__name', 'relationship__slug'),
[ [
(self.normative.canonical_name(), 'refnorm'), (self.normative.name, 'refnorm'),
(self.informative.canonical_name(), 'refinfo'), (self.informative.name, 'refinfo'),
(self.unknown.canonical_name(), 'refunk'), (self.unknown.name, 'refunk'),
(self.updated.name, 'updates'), (self.updated.name, 'updates'),
] ]
) )

View file

@ -56,7 +56,7 @@ def save_document_in_history(doc):
# copy fields # copy fields
fields = get_model_fields_as_dict(doc) fields = get_model_fields_as_dict(doc)
fields["doc"] = doc fields["doc"] = doc
fields["name"] = doc.canonical_name() fields["name"] = doc.name
dochist = DocHistory(**fields) dochist = DocHistory(**fields)
dochist.save() dochist.save()
@ -978,8 +978,8 @@ def make_rev_history(doc):
if e: if e:
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=e.doc)) url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=e.doc))
history[url] = { history[url] = {
'name': e.doc.canonical_name(), 'name': e.doc.name,
'rev': e.doc.canonical_name(), 'rev': e.doc.name,
'published': e.time.isoformat(), 'published': e.time.isoformat(),
'url': url 'url': url
} }
@ -1120,12 +1120,12 @@ def generate_idnits2_rfc_status():
# The explanation for 6312 is from before docalias was removed # The explanation for 6312 is from before docalias was removed
# The workaround is still needed, even if the datatracker # The workaround is still needed, even if the datatracker
# state no longer matches what's described here: # state no longer matches what's described here:
# Document.get(docalias='rfc6312').rfc_number == 6342 # Document.get(docalias='rfc6312').rfc_number == 6342
# 6312 was published with the wrong rfc number in it # 6312 was published with the wrong rfc number in it
# weird workaround in the datatracker - there are two # weird workaround in the datatracker - there are two
# DocAliases starting with rfc - the canonical name code # DocAliases starting with rfc - the canonical name code
# searches for the lexically highest alias starting with rfc # searches for the lexically highest alias starting with rfc
# which is getting lucky. # which is getting lucky.
blob[6312 - 1] = 'O' blob[6312 - 1] = 'O'
# RFC200 is an old RFC List by Number # RFC200 is an old RFC List by Number

View file

@ -249,7 +249,7 @@ def prepare_document_table(request, docs, query=None, max_results=200):
if rfc_num is not None: if rfc_num is not None:
res.append(rfc_num) res.append(rfc_num)
else: else:
res.append(d.canonical_name()) res.append(d.name)
return res return res

View file

@ -171,7 +171,7 @@ class UploadForm(forms.Form):
return get_cleaned_text_file_content(self.cleaned_data["txt"]) return get_cleaned_text_file_content(self.cleaned_data["txt"])
def save(self, review): def save(self, review):
filename = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.canonical_name(), review.rev)) filename = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.name, review.rev))
with io.open(filename, 'w', encoding='utf-8') as destination: with io.open(filename, 'w', encoding='utf-8') as destination:
if self.cleaned_data['txt']: if self.cleaned_data['txt']:
destination.write(self.cleaned_data['txt']) destination.write(self.cleaned_data['txt'])
@ -185,7 +185,7 @@ def submit(request, name):
login = request.user.person login = request.user.person
path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.canonical_name(), review.rev)) path = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.name, review.rev))
not_uploaded_yet = review.rev == "00" and not os.path.exists(path) not_uploaded_yet = review.rev == "00" and not os.path.exists(path)
if not_uploaded_yet: if not_uploaded_yet:
@ -202,7 +202,7 @@ def submit(request, name):
events = [] events = []
e = NewRevisionDocEvent(doc=review, by=login, type="new_revision") e = NewRevisionDocEvent(doc=review, by=login, type="new_revision")
e.desc = "New version available: <b>%s-%s.txt</b>" % (review.canonical_name(), review.rev) e.desc = "New version available: <b>%s-%s.txt</b>" % (review.name, review.rev)
e.rev = review.rev e.rev = review.rev
e.save() e.save()
events.append(e) events.append(e)
@ -234,7 +234,7 @@ def submit(request, name):
dict(), dict(),
)) ))
else: else:
filename = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.canonical_name(), review.rev)) filename = os.path.join(settings.CONFLICT_REVIEW_PATH, '%s-%s.txt' % (review.name, review.rev))
try: try:
with io.open(filename, 'r') as f: with io.open(filename, 'r') as f:
init["content"] = f.read() init["content"] = f.read()
@ -276,7 +276,7 @@ def edit_ad(request, name):
conflictdoc = review.relateddocument_set.get(relationship__slug='conflrev').target conflictdoc = review.relateddocument_set.get(relationship__slug='conflrev').target
titletext = 'the conflict review of %s-%s' % (conflictdoc.canonical_name(),conflictdoc.rev) titletext = 'the conflict review of %s-%s' % (conflictdoc.name,conflictdoc.rev)
return render(request, 'doc/change_ad.html', return render(request, 'doc/change_ad.html',
{'form': form, {'form': form,
'doc': review, 'doc': review,

View file

@ -796,7 +796,7 @@ def document_main(request, name, rev=None, document_html=False):
)) ))
elif doc.type_id == "conflrev": elif doc.type_id == "conflrev":
filename = "%s-%s.txt" % (doc.canonical_name(), doc.rev) filename = "%s-%s.txt" % (doc.name, doc.rev)
pathname = os.path.join(settings.CONFLICT_REVIEW_PATH,filename) pathname = os.path.join(settings.CONFLICT_REVIEW_PATH,filename)
if doc.rev == "00" and not os.path.isfile(pathname): if doc.rev == "00" and not os.path.isfile(pathname):
@ -826,7 +826,7 @@ def document_main(request, name, rev=None, document_html=False):
)) ))
elif doc.type_id == "statchg": elif doc.type_id == "statchg":
filename = "%s-%s.txt" % (doc.canonical_name(), doc.rev) filename = "%s-%s.txt" % (doc.name, doc.rev)
pathname = os.path.join(settings.STATUS_CHANGE_PATH,filename) pathname = os.path.join(settings.STATUS_CHANGE_PATH,filename)
if doc.rev == "00" and not os.path.isfile(pathname): if doc.rev == "00" and not os.path.isfile(pathname):
@ -866,7 +866,7 @@ def document_main(request, name, rev=None, document_html=False):
# we need to remove the extension for the globbing below to work # we need to remove the extension for the globbing below to work
basename = os.path.splitext(doc.uploaded_filename)[0] basename = os.path.splitext(doc.uploaded_filename)[0]
else: else:
basename = "%s-%s" % (doc.canonical_name(), doc.rev) basename = "%s-%s" % (doc.name, doc.rev)
pathname = os.path.join(doc.get_file_path(), basename) pathname = os.path.join(doc.get_file_path(), basename)
@ -1051,7 +1051,7 @@ def document_html(request, name, rev=None):
if not requested_rev and doc.type_id == "rfc": # Someone asked for /doc/html/8989 if not requested_rev and doc.type_id == "rfc": # Someone asked for /doc/html/8989
if not name.startswith('rfc'): if not name.startswith('rfc'):
return redirect('ietf.doc.views_doc.document_html', name=doc.canonical_name()) return redirect('ietf.doc.views_doc.document_html', name=doc.name)
if rev: if rev:
doc = doc.history_set.filter(rev=rev).first() or doc.fake_history_obj(rev) doc = doc.history_set.filter(rev=rev).first() or doc.fake_history_obj(rev)
@ -1061,7 +1061,7 @@ def document_html(request, name, rev=None):
return document_main( return document_main(
request, request,
name=doc.name if requested_rev else doc.canonical_name(), name=doc.name if requested_rev else doc.name,
rev=doc.rev if requested_rev or doc.type_id != "rfc" else None, rev=doc.rev if requested_rev or doc.type_id != "rfc" else None,
document_html=True, document_html=True,
) )
@ -1461,7 +1461,7 @@ def document_referenced_by(request, name):
refs=refs[:250] refs=refs[:250]
else: else:
numdocs=None numdocs=None
refs=sorted(refs,key=lambda x:(['refnorm','refinfo','refunk','refold'].index(x.relationship.slug),x.source.canonical_name())) refs=sorted(refs,key=lambda x:(['refnorm','refinfo','refunk','refold'].index(x.relationship.slug),x.source.name))
return render(request, "doc/document_referenced_by.html", return render(request, "doc/document_referenced_by.html",
dict(name=name, dict(name=name,
doc=doc, doc=doc,
@ -1768,8 +1768,8 @@ def telechat_date(request, name):
def doc_titletext(doc): def doc_titletext(doc):
if doc.type.slug=='conflrev': if doc.type.slug=='conflrev':
conflictdoc = doc.relateddocument_set.get(relationship__slug='conflrev').target conflictdoc = doc.relateddocument_set.get(relationship__slug='conflrev').target
return 'the conflict review of %s' % conflictdoc.canonical_name() return 'the conflict review of %s' % conflictdoc.name
return doc.canonical_name() return doc.name
def edit_notify(request, name): def edit_notify(request, name):
@ -2008,7 +2008,7 @@ def remind_action_holders(request, name):
form = ReminderEmailForm(request.POST) form = ReminderEmailForm(request.POST)
if form.is_valid(): if form.is_valid():
email_remind_action_holders(request, doc, form.cleaned_data['note']) email_remind_action_holders(request, doc, form.cleaned_data['note'])
return redirect('ietf.doc.views_doc.document_main', name=doc.canonical_name()) return redirect('ietf.doc.views_doc.document_main', name=doc.name)
form = ReminderEmailForm() form = ReminderEmailForm()
return render( return render(

View file

@ -99,7 +99,7 @@ def change_state(request, name, option=None):
) )
related_doc_info = [ related_doc_info = [
dict(title=rel_doc.target.title, dict(title=rel_doc.target.title,
canonical_name=rel_doc.target.canonical_name(), name=rel_doc.target.name,
newstatus=newstatus(rel_doc)) newstatus=newstatus(rel_doc))
for rel_doc in related_docs for rel_doc in related_docs
] ]
@ -148,7 +148,7 @@ class UploadForm(forms.Form):
return get_cleaned_text_file_content(self.cleaned_data["txt"]) return get_cleaned_text_file_content(self.cleaned_data["txt"])
def save(self, doc): def save(self, doc):
filename = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) filename = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
with io.open(filename, 'w', encoding='utf-8') as destination: with io.open(filename, 'w', encoding='utf-8') as destination:
if self.cleaned_data['txt']: if self.cleaned_data['txt']:
destination.write(self.cleaned_data['txt']) destination.write(self.cleaned_data['txt'])
@ -162,7 +162,7 @@ def submit(request, name):
login = request.user.person login = request.user.person
path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) path = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
not_uploaded_yet = doc.rev == "00" and not os.path.exists(path) not_uploaded_yet = doc.rev == "00" and not os.path.exists(path)
if not_uploaded_yet: if not_uploaded_yet:
@ -179,7 +179,7 @@ def submit(request, name):
events = [] events = []
e = NewRevisionDocEvent(doc=doc, by=login, type="new_revision") e = NewRevisionDocEvent(doc=doc, by=login, type="new_revision")
e.desc = "New version available: <b>%s-%s.txt</b>" % (doc.canonical_name(), doc.rev) e.desc = "New version available: <b>%s-%s.txt</b>" % (doc.name, doc.rev)
e.rev = doc.rev e.rev = doc.rev
e.save() e.save()
events.append(e) events.append(e)
@ -211,7 +211,7 @@ def submit(request, name):
dict(), dict(),
) )
else: else:
filename = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.canonical_name(), doc.rev)) filename = os.path.join(settings.STATUS_CHANGE_PATH, '%s-%s.txt' % (doc.name, doc.rev))
try: try:
with io.open(filename, 'r') as f: with io.open(filename, 'r') as f:
init["content"] = f.read() init["content"] = f.read()
@ -253,7 +253,7 @@ def edit_title(request, name):
init = { "title" : status_change.title } init = { "title" : status_change.title }
form = ChangeTitleForm(initial=init) form = ChangeTitleForm(initial=init)
titletext = '%s-%s.txt' % (status_change.canonical_name(),status_change.rev) titletext = '%s-%s.txt' % (status_change.name,status_change.rev)
return render(request, 'doc/change_title.html', return render(request, 'doc/change_title.html',
{'form': form, {'form': form,
'doc': status_change, 'doc': status_change,
@ -284,7 +284,7 @@ def edit_ad(request, name):
init = { "ad" : status_change.ad_id } init = { "ad" : status_change.ad_id }
form = AdForm(initial=init) form = AdForm(initial=init)
titletext = '%s-%s.txt' % (status_change.canonical_name(),status_change.rev) titletext = '%s-%s.txt' % (status_change.name,status_change.rev)
return render(request, 'doc/change_ad.html', return render(request, 'doc/change_ad.html',
{'form': form, {'form': form,
'doc': status_change, 'doc': status_change,
@ -399,7 +399,7 @@ def approve(request, name):
init = [] init = []
for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS): for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS):
init.append({"announcement_text" : escape(default_approval_text(status_change,rel)), init.append({"announcement_text" : escape(default_approval_text(status_change,rel)),
"label": "Announcement text for %s to %s"%(rel.target.canonical_name(),newstatus(rel)), "label": "Announcement text for %s to %s"%(rel.target.name,newstatus(rel)),
}) })
formset = AnnouncementFormSet(initial=init) formset = AnnouncementFormSet(initial=init)
for form in formset.forms: for form in formset.forms:
@ -574,9 +574,9 @@ def start_rfc_status_change(request, name=None):
init = {} init = {}
if name: if name:
init['title'] = "%s to CHANGETHIS" % seed_rfc.title init['title'] = "%s to CHANGETHIS" % seed_rfc.title
init['document_name'] = "%s-to-CHANGETHIS" % seed_rfc.canonical_name() init['document_name'] = "%s-to-CHANGETHIS" % seed_rfc.name
relations={} relations={}
relations[seed_rfc.canonical_name()]=None relations[seed_rfc.name]=None
init['relations'] = relations init['relations'] = relations
form = StartStatusChangeForm(initial=init) form = StartStatusChangeForm(initial=init)
@ -602,7 +602,7 @@ def edit_relations(request, name):
old_relations={} old_relations={}
for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS): for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS):
old_relations[rel.target.canonical_name()]=rel.relationship.slug old_relations[rel.target.name]=rel.relationship.slug
new_relations=form.cleaned_data['relations'] new_relations=form.cleaned_data['relations']
status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS).delete() status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS).delete()
for key in new_relations: for key in new_relations:
@ -623,7 +623,7 @@ def edit_relations(request, name):
else: else:
relations={} relations={}
for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS): for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS):
relations[rel.target.canonical_name()]=rel.relationship.slug relations[rel.target.name]=rel.relationship.slug
init = { "relations":relations, init = { "relations":relations,
} }
form = EditStatusChangeForm(initial=init) form = EditStatusChangeForm(initial=init)

View file

@ -770,7 +770,7 @@ def dependencies(request, acronym, group_type=None):
graph = { graph = {
"nodes": [ "nodes": [
{ {
"id": x.canonical_name(), "id": x.name,
"rfc": x.get_state("draft").slug == "rfc", "rfc": x.get_state("draft").slug == "rfc",
"post-wg": not x.get_state("draft-iesg").slug "post-wg": not x.get_state("draft-iesg").slug
in ["idexists", "watching", "dead"], in ["idexists", "watching", "dead"],
@ -788,8 +788,8 @@ def dependencies(request, acronym, group_type=None):
], ],
"links": [ "links": [
{ {
"source": x.source.canonical_name(), "source": x.source.name,
"target": x.target.canonical_name(), "target": x.target.name,
"rel": "downref" if x.is_downref() else x.relationship.slug, "rel": "downref" if x.is_downref() else x.relationship.slug,
} }
for x in links for x in links

View file

@ -122,7 +122,7 @@ def agenda_json(request, date=None):
for doc in docs: for doc in docs:
wginfo = { wginfo = {
'docname': doc.canonical_name(), 'docname': doc.name,
'rev': doc.rev, 'rev': doc.rev,
'wgname': doc.group.name, 'wgname': doc.group.name,
'acronym': doc.group.acronym, 'acronym': doc.group.acronym,
@ -137,7 +137,7 @@ def agenda_json(request, date=None):
for doc in docs: for doc in docs:
docinfo = { docinfo = {
'docname':doc.canonical_name(), 'docname':doc.name,
'title':doc.title, 'title':doc.title,
'ad':doc.ad.name if doc.ad else None, 'ad':doc.ad.name if doc.ad else None,
} }
@ -173,7 +173,7 @@ def agenda_json(request, date=None):
elif doc.type_id == 'conflrev': elif doc.type_id == 'conflrev':
docinfo['rev'] = doc.rev docinfo['rev'] = doc.rev
td = doc.relateddocument_set.get(relationship__slug='conflrev').target td = doc.relateddocument_set.get(relationship__slug='conflrev').target
docinfo['target-docname'] = td.canonical_name() docinfo['target-docname'] = td.name
docinfo['target-title'] = td.title docinfo['target-title'] = td.title
docinfo['target-rev'] = td.rev docinfo['target-rev'] = td.rev
docinfo['intended-std-level'] = str(td.intended_std_level) docinfo['intended-std-level'] = str(td.intended_std_level)

View file

@ -550,7 +550,7 @@ class MeetingTests(BaseMeetingTestCase):
if material.type_id == 'draft': if material.type_id == 'draft':
expected_url = urlreverse( expected_url = urlreverse(
'ietf.doc.views_doc.document_main', 'ietf.doc.views_doc.document_main',
kwargs={'name': material.canonical_name()}, kwargs={'name': material.name},
) )
else: else:
expected_url = material.get_href(meeting) expected_url = material.get_href(meeting)
@ -561,7 +561,7 @@ class MeetingTests(BaseMeetingTestCase):
if material.type_id == 'draft': if material.type_id == 'draft':
expected_url = urlreverse( expected_url = urlreverse(
'ietf.doc.views_doc.document_main', 'ietf.doc.views_doc.document_main',
kwargs={'name': material.canonical_name()}, kwargs={'name': material.name},
) )
else: else:
expected_url = material.get_href(meeting) expected_url = material.get_href(meeting)
@ -7773,7 +7773,7 @@ class ProceedingsTests(BaseMeetingTestCase):
if material.type_id == 'draft': if material.type_id == 'draft':
expected_url = urlreverse( expected_url = urlreverse(
'ietf.doc.views_doc.document_main', 'ietf.doc.views_doc.document_main',
kwargs={'name': material.canonical_name()}, kwargs={'name': material.name},
) )
else: else:
expected_url = material.get_href(meeting) expected_url = material.get_href(meeting)
@ -7784,7 +7784,7 @@ class ProceedingsTests(BaseMeetingTestCase):
if material.type_id == 'draft': if material.type_id == 'draft':
expected_url = urlreverse( expected_url = urlreverse(
'ietf.doc.views_doc.document_main', 'ietf.doc.views_doc.document_main',
kwargs={'name': material.canonical_name()}, kwargs={'name': material.name},
) )
else: else:
expected_url = material.get_href(meeting) expected_url = material.get_href(meeting)

View file

@ -191,7 +191,7 @@ class Person(models.Model):
def rfcs(self): def rfcs(self):
from ietf.doc.models import Document from ietf.doc.models import Document
rfcs = list(Document.objects.filter(documentauthor__person=self, type='draft', states__slug='rfc')) rfcs = list(Document.objects.filter(documentauthor__person=self, type='draft', states__slug='rfc'))
rfcs.sort(key=lambda d: d.canonical_name() ) rfcs.sort(key=lambda d: d.name )
return rfcs return rfcs
def active_drafts(self): def active_drafts(self):

View file

@ -85,7 +85,7 @@
{% if downrefs %} {% if downrefs %}
<h2 id="downrefs">Downward References</h2> <h2 id="downrefs">Downward References</h2>
{% for ref in downrefs %} {% for ref in downrefs %}
<p>Add {{ref.target.canonical_name}} <p>Add {{ref.target.name}}
({{ref.target.std_level}} - {{ref.target.stream.desc}}) ({{ref.target.std_level}} - {{ref.target.stream.desc}})
to downref registry.<br> to downref registry.<br>
{% if not ref.target.std_level %} {% if not ref.target.std_level %}

View file

@ -29,7 +29,7 @@
href="{% url 'ietf.doc.views_ballot.approve_ballot' name=doc.name %}">Approve ballot</a> href="{% url 'ietf.doc.views_ballot.approve_ballot' name=doc.name %}">Approve ballot</a>
{% endif %} {% endif %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -21,7 +21,7 @@
<button class="btn btn-primary" type="submit">Email RFC Editor (DNP) &amp; close ballot"</button> <button class="btn btn-primary" type="submit">Email RFC Editor (DNP) &amp; close ballot"</button>
{% endif %} {% endif %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -12,16 +12,16 @@
</h1> </h1>
<p> <p>
The ballot for The ballot for
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc }}</a> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc }}</a>
was just approved. was just approved.
</p> </p>
{% if not downrefs_to_rfc %} {% if not downrefs_to_rfc %}
<p> <p>
No downward references for No downward references for
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc }}</a> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc }}</a>
</p> </p>
<a class="btn btn-secondary" <a class="btn btn-secondary"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">Back</a> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
{% else %} {% else %}
<p> <p>
Add downward references to RFCs to the DOWNREF registry, if they were identified in the IETF Last Call and approved by the Sponsoring Area Director. Add downward references to RFCs to the DOWNREF registry, if they were identified in the IETF Last Call and approved by the Sponsoring Area Director.
@ -41,7 +41,7 @@
{% csrf_token %} {% csrf_token %}
{% bootstrap_form approve_downrefs_form %} {% bootstrap_form approve_downrefs_form %}
<a class="btn btn-primary" <a class="btn btn-primary"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Add no DOWNREF entries Add no DOWNREF entries
</a> </a>
<button type="submit" class="btn btn-warning" value="Save checked downrefs">Add checked DOWNREF entries</button> <button type="submit" class="btn btn-warning" value="Save checked downrefs">Add checked DOWNREF entries</button>

View file

@ -11,7 +11,7 @@
</h1> </h1>
<p> <p>
Ballot for Ballot for
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc }}</a> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc }}</a>
has been sent out. has been sent out.
</p> </p>
{% if doc.telechat_date %} {% if doc.telechat_date %}
@ -24,5 +24,5 @@
</p> </p>
{% endif %} {% endif %}
<a class="btn btn-secondary" <a class="btn btn-secondary"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">Back</a> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
{% endblock %} {% endblock %}

View file

@ -14,14 +14,14 @@
{% csrf_token %} {% csrf_token %}
<p class="alert alert-danger my-3"> <p class="alert alert-danger my-3">
<b>Clear the ballot for <b>Clear the ballot for
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc }}</a>? <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc }}</a>?
</b> </b>
<br> <br>
This will clear all ballot positions and discuss entries. This will clear all ballot positions and discuss entries.
</p> </p>
<button type="submit" class="btn btn-danger">Clear</button> <button type="submit" class="btn btn-danger">Clear</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -14,14 +14,14 @@
{% csrf_token %} {% csrf_token %}
<p class="alert alert-danger my-3"> <p class="alert alert-danger my-3">
<b>Defer the ballot for <b>Defer the ballot for
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc }}</a>? <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc }}</a>?
</b> </b>
<br> <br>
The ballot will then be put on the IESG agenda of {{ telechat_date }}. The ballot will then be put on the IESG agenda of {{ telechat_date }}.
</p> </p>
<button type="submit" class="btn btn-danger">Defer ballot</button> <button type="submit" class="btn btn-danger">Defer ballot</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -54,7 +54,7 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</div> </div>

View file

@ -39,7 +39,7 @@
href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a> href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a>
{% endif %} {% endif %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -31,7 +31,7 @@
Clear Clear
</button> </button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -37,7 +37,7 @@
</div> </div>
<button type="submit" class="btn btn-danger">Send</button> <button type="submit" class="btn btn-danger">Send</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -19,7 +19,7 @@
</p> </p>
<button class="btn btn-danger" type="submit">Undefer ballot</button> <button class="btn btn-danger" type="submit">Undefer ballot</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -32,7 +32,7 @@
Save &amp; {% if ballot_issued %}re-{% endif %}issue ballot Save &amp; {% if ballot_issued %}re-{% endif %}issue ballot
</button> </button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -16,7 +16,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -16,7 +16,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -1,9 +1,9 @@
{% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: The IESG <iesg-secretary@ietf.org> {% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: The IESG <iesg-secretary@ietf.org>
To: {{ to }} To: {{ to }}
Cc: {{ cc }} Cc: {{ cc }}
Subject: Results of IETF-conflict review for {{conflictdoc.canonical_name}}-{{conflictdoc.rev}} Subject: Results of IETF-conflict review for {{conflictdoc.name}}-{{conflictdoc.rev}}
{% filter wordwrap:78 %}The IESG has completed a review of {{conflictdoc.canonical_name}}-{{conflictdoc.rev}} consistent with RFC5742. {% filter wordwrap:78 %}The IESG has completed a review of {{conflictdoc.name}}-{{conflictdoc.rev}} consistent with RFC5742.
{% if review.get_state_slug == 'appr-reqnopub-pend' %} {% if review.get_state_slug == 'appr-reqnopub-pend' %}
The IESG recommends that '{{ conflictdoc.title }}' {{ conflictdoc.file_tag|safe }} NOT be published as {{ conflictdoc|std_level_prompt_with_article }}. The IESG recommends that '{{ conflictdoc.title }}' {{ conflictdoc.file_tag|safe }} NOT be published as {{ conflictdoc|std_level_prompt_with_article }}.

View file

@ -2,10 +2,10 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #} {# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% block title %}Approve {{ review.canonical_name }}{% endblock %} {% block title %}Approve {{ review.name }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1>Approve {{ review.canonical_name }}</h1> <h1>Approve {{ review.name }}</h1>
<form class="my-3" method="post"> <form class="my-3" method="post">
{% csrf_token %} {% csrf_token %}
{% bootstrap_form form %} {% bootstrap_form form %}

View file

@ -3,13 +3,13 @@
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% load ietf_filters %} {% load ietf_filters %}
{% block title %}Begin IETF conflict review for {{ doc_to_review.canonical_name }}-{{ doc_to_review.rev }}{% endblock %} {% block title %}Begin IETF conflict review for {{ doc_to_review.name }}-{{ doc_to_review.rev }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
Begin IETF conflict review Begin IETF conflict review
<br> <br>
<small class="text-body-secondary">{{ doc_to_review.canonical_name }}-{{ doc_to_review.rev }}</small> <small class="text-body-secondary">{{ doc_to_review.name }}-{{ doc_to_review.rev }}</small>
</h1> </h1>
{% if user|has_role:"Secretariat" %} {% if user|has_role:"Secretariat" %}
<p class="my-3"> <p class="my-3">

View file

@ -2,16 +2,16 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #} {# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% block title %}Edit conflict review for {{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}{% endblock %} {% block title %}Edit conflict review for {{ conflictdoc.name }}-{{ conflictdoc.rev }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
Edit conflict review Edit conflict review
<br> <br>
<small class="text-body-secondary">{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}</small> <small class="text-body-secondary">{{ conflictdoc.name }}-{{ conflictdoc.rev }}</small>
</h1> </h1>
<p class="my-3 alert alert-info"> <p class="my-3 alert alert-info">
The text will be submitted as <strong>{{ review.canonical_name }}-{{ next_rev }}</strong> The text will be submitted as <strong>{{ review.name }}-{{ next_rev }}</strong>
</p> </p>
<form class="my-3" enctype="multipart/form-data" method="post"> <form class="my-3" enctype="multipart/form-data" method="post">
{% csrf_token %} {% csrf_token %}
@ -27,7 +27,7 @@
Reset to template text Reset to template text
</button> </button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=review.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=review.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -227,7 +227,7 @@
{% if doc.rev != "" %} {% if doc.rev != "" %}
<div class="card mt-5"> <div class="card mt-5">
<div class="card-header"> <div class="card-header">
{{ doc.canonical_name }}-{{ doc.rev }} {{ doc.name }}-{{ doc.rev }}
</div> </div>
<div class="card-body"> <div class="card-body">
<pre>{{ content|maybewordwrap|urlize_ietf_docs|linkify }}</pre> <pre>{{ content|maybewordwrap|urlize_ietf_docs|linkify }}</pre>

View file

@ -27,8 +27,8 @@
</th> </th>
<td class="edit"></td> <td class="edit"></td>
<td> <td>
<a href="{% url "ietf.doc.views_doc.document_main" name=conflictdoc.canonical_name %}"> <a href="{% url "ietf.doc.views_doc.document_main" name=conflictdoc.name %}">
{% if conflictdoc.get_state_slug == 'rfc' %}{{ conflictdoc.canonical_name|prettystdname }}{% else %}{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}{% endif %}</a> {% if conflictdoc.get_state_slug == 'rfc' %}{{ conflictdoc.name|prettystdname }}{% else %}{{ conflictdoc.name }}-{{ conflictdoc.rev }}{% endif %}</a>
<span class="badge rounded-pill bg-info">{{ conflictdoc.stream }} stream</span> <span class="badge rounded-pill bg-info">{{ conflictdoc.stream }} stream</span>
{% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %} {% if snapshot %}<span class="badge rounded-pill bg-warning">Snapshot</span>{% endif %}
</td> </td>

View file

@ -13,7 +13,7 @@
title="Document changes" title="Document changes"
href="/feed/document-changes/{{ name }}/"> href="/feed/document-changes/{{ name }}/">
<meta name="description" <meta name="description"
content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.canonical_name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %}){% endif %}"> content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %}){% endif %}">
{% endblock %} {% endblock %}
{% block morecss %}.inline { display: inline; }{% endblock %} {% block morecss %}.inline { display: inline; }{% endblock %}
{% block title %} {% block title %}
@ -650,14 +650,14 @@
{% endif %} {% endif %}
</a> </a>
<a class="btn btn-primary btn-sm" <a class="btn btn-primary btn-sm"
href="{% url 'ietf.doc.views_doc.document_references' doc.canonical_name %}" href="{% url 'ietf.doc.views_doc.document_references' doc.name %}"
rel="nofollow"> rel="nofollow">
<i class="bi bi-arrow-left"> <i class="bi bi-arrow-left">
</i> </i>
References References
</a> </a>
<a class="btn btn-primary btn-sm" <a class="btn btn-primary btn-sm"
href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}" href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.name %}"
rel="nofollow"> rel="nofollow">
<i class="bi bi-arrow-right"> <i class="bi bi-arrow-right">
</i> </i>

View file

@ -33,7 +33,7 @@
<link rel="alternate" type="application/atom+xml" title="Document changes" href="/feed/document-changes/{{ doc.name }}/"> <link rel="alternate" type="application/atom+xml" title="Document changes" href="/feed/document-changes/{{ doc.name }}/">
<meta name="description" <meta name="description"
{% if not snapshot and doc.get_state_slug == 'rfc' %} {% if not snapshot and doc.get_state_slug == 'rfc' %}
content="{{ doc.title }} (RFC {{ doc.rfc_number }}{% if published %}, {{ published.time|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.canonical_name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %})" content="{{ doc.title }} (RFC {{ doc.rfc_number }}{% if published %}, {{ published.time|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %})"
{% else %} {% else %}
content="{{ doc.title }} (Internet-Draft, {{ doc.time|date:'Y' }})" content="{{ doc.title }} (Internet-Draft, {{ doc.time|date:'Y' }})"
{% endif %}> {% endif %}>
@ -63,7 +63,7 @@
</button> </button>
<nav class="navbar bg-light px-1 fixed-top d-print-none d-md-none"> <nav class="navbar bg-light px-1 fixed-top d-print-none d-md-none">
<a class="nav-link ps-1" <a class="nav-link ps-1"
href="{% url 'ietf.doc.views_doc.document_main' name=doc.canonical_name %}"> href="{% url 'ietf.doc.views_doc.document_main' name=doc.name %}">
{% if not snapshot and doc.get_state_slug == "rfc" %} {% if not snapshot and doc.get_state_slug == "rfc" %}
RFC {{ doc.rfc_number }} RFC {{ doc.rfc_number }}
{% else %} {% else %}
@ -150,7 +150,7 @@
<i class="bi bi-arrow-bar-up"></i> <i class="bi bi-arrow-bar-up"></i>
</button> </button>
<div class="pt-2 pt-lg-3 px-md-2 px-lg-3"> <div class="pt-2 pt-lg-3 px-md-2 px-lg-3">
<a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_main' name=doc.canonical_name %}">Datatracker</a> <a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_main' name=doc.name %}">Datatracker</a>
<p class="fw-bold pt-2"> <p class="fw-bold pt-2">
{% if not snapshot and doc.get_state_slug == "rfc" %} {% if not snapshot and doc.get_state_slug == "rfc" %}
RFC {{ doc.rfc_number }} RFC {{ doc.rfc_number }}

View file

@ -61,7 +61,7 @@
{% endif %} {% endif %}
{% else %} {% else %}
{% if snapshot and doc.doc.get_state_slug == 'rfc' %} {% if snapshot and doc.doc.get_state_slug == 'rfc' %}
<div{% if document_html %} class="alert alert-warning small"{% endif %}>This is an older version of an Internet-Draft that was ultimately published as <a href="{% url 'ietf.doc.views_doc.document_html' name=doc.doc.canonical_name %}">{{doc.doc.canonical_name|prettystdname}}</a>.</div> <div{% if document_html %} class="alert alert-warning small"{% endif %}>This is an older version of an Internet-Draft that was ultimately published as <a href="{% url 'ietf.doc.views_doc.document_html' name=doc.doc.name %}">{{doc.doc.name|prettystdname}}</a>.</div>
{% elif snapshot and doc.rev != latest_rev %} {% elif snapshot and doc.rev != latest_rev %}
<div{% if document_html %} class="alert alert-warning small"{% endif %}>This is an older version of an Internet-Draft whose latest revision state is "{{ doc.doc.get_state }}".</div> <div{% if document_html %} class="alert alert-warning small"{% endif %}>This is an older version of an Internet-Draft whose latest revision state is "{{ doc.doc.get_state }}".</div>
{% else %} {% else %}

View file

@ -38,7 +38,7 @@
</thead> </thead>
<tbody> <tbody>
{% for ref in refs %} {% for ref in refs %}
{% with ref.source.canonical_name as name %} {% with ref.source.name as name %}
<tr> <tr>
<td> <td>
<a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a> <a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a>

View file

@ -4,10 +4,10 @@
{% block pagehead %} {% block pagehead %}
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}"> <link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
{% endblock %} {% endblock %}
{% block title %}References from {{ doc.canonical_name }}{% endblock %} {% block title %}References from {{ doc.name }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1>References from {{ doc.canonical_name }}</h1> <h1>References from {{ doc.name }}</h1>
<p class="my-3 alert alert-info"> <p class="my-3 alert alert-info">
These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly. These dependencies are extracted using heuristics looking for strings with particular prefixes. Notably, this means that references to I-Ds by title only are not reflected here. If it's really important, please inspect the documents' references sections directly.
</p> </p>

View file

@ -13,7 +13,7 @@
title="Document changes" title="Document changes"
href="/feed/document-changes/{{ name }}/"> href="/feed/document-changes/{{ name }}/">
<meta name="description" <meta name="description"
content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.canonical_name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %}){% endif %}"> content="{{ doc.title }} {% if doc.get_state_slug == 'rfc' and not snapshot %}(RFC {{ rfc_number }}{% if published %}, {{ doc.pub_date|date:'F Y' }}{% endif %}{% if obsoleted_by %}; obsoleted by {% for rel in obsoleted_by %}{{ rel.source.name|prettystdname}}{% if not forloop.last%}, {% endif %}{% endfor %}{% endif %}){% endif %}">
{% endblock %} {% endblock %}
{% block morecss %}.inline { display: inline; }{% endblock %} {% block morecss %}.inline { display: inline; }{% endblock %}
{% block title %} {% block title %}
@ -173,14 +173,14 @@
{% endif %} {% endif %}
</a> </a>
<a class="btn btn-primary btn-sm" <a class="btn btn-primary btn-sm"
href="{% url 'ietf.doc.views_doc.document_references' doc.canonical_name %}" href="{% url 'ietf.doc.views_doc.document_references' doc.name %}"
rel="nofollow"> rel="nofollow">
<i class="bi bi-arrow-left"> <i class="bi bi-arrow-left">
</i> </i>
References References
</a> </a>
<a class="btn btn-primary btn-sm" <a class="btn btn-primary btn-sm"
href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}" href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.name %}"
rel="nofollow"> rel="nofollow">
<i class="bi bi-arrow-right"> <i class="bi bi-arrow-right">
</i> </i>

View file

@ -52,7 +52,7 @@
<td class="edit"></td> <td class="edit"></td>
<td> <td>
{% for rel in relation_group.list %} {% for rel in relation_group.list %}
{{ rel.target.canonical_name|upper|urlize_ietf_docs }}{% if not forloop.last %},{% endif %} {{ rel.target.name|upper|urlize_ietf_docs }}{% if not forloop.last %},{% endif %}
{% endfor %} {% endfor %}
</td> </td>
</tr> </tr>

View file

@ -2,13 +2,13 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #} {# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% block title %}Edit shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}{% endblock %} {% block title %}Edit shepherd writeup for {{ doc.name }}-{{ doc.rev }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
Edit shepherd writeup Edit shepherd writeup
<br> <br>
<small class="text-body-secondary">{{ doc.canonical_name }}-{{ doc.rev }}</small> <small class="text-body-secondary">{{ doc.name }}-{{ doc.rev }}</small>
</h1> </h1>
<form class="mt-3" enctype="multipart/form-data" method="post"> <form class="mt-3" enctype="multipart/form-data" method="post">
{% csrf_token %} {% csrf_token %}

View file

@ -12,6 +12,6 @@
</p> </p>
<p> <p>
The document writeup can be edited The document writeup can be edited
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}writeup/">here</a>. <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}writeup/">here</a>.
</p> </p>
{% endblock %} {% endblock %}

View file

@ -40,7 +40,7 @@
</div> </div>
<button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button> <button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -48,7 +48,7 @@
</div> </div>
<button type="submit" class="btn btn-primary">Submit</button> <button type="submit" class="btn btn-primary">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -2,13 +2,13 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #} {# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% block title %}{{ title }} {{ doc.canonical_name }}{% endblock %} {% block title %}{{ title }} {{ doc.name }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
{{ title }} {{ title }}
<br> <br>
<small class="text-body-secondary">{{ doc.canonical_name }}</small> <small class="text-body-secondary">{{ doc.name }}</small>
</h1> </h1>
<p class="alert alert-info my-3"> <p class="alert alert-info my-3">
{{ info|safe }} {{ info|safe }}
@ -18,7 +18,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button> <button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -22,7 +22,7 @@
name="regenerate_addresses"> name="regenerate_addresses">
Regenerate address list</button> Regenerate address list</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -33,7 +33,7 @@ No IPR declarations have been submitted directly on this I-D.
{% if downrefs %} {% if downrefs %}
The document contains these normative downward references. The document contains these normative downward references.
See RFC 3967 for additional information: See RFC 3967 for additional information:
{% for ref in downrefs %} {{ref.target.canonical_name}}: {{ref.target.title}} ({{ref.target.std_level}} - {{ref.target.stream.desc}}) {% for ref in downrefs %} {{ref.target.name}}: {{ref.target.title}} ({{ref.target.std_level}} - {{ref.target.stream.desc}})
{% endfor %}{%endif%} {% endfor %}{%endif%}
{% endautoescape %} {% endautoescape %}

View file

@ -27,7 +27,7 @@
name="submit" name="submit"
value="Send reminder">Send</button> value="Send reminder">Send</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary" name="action" value="assign">Assign reviewer</button> <button type="submit" class="btn btn-primary" name="action" value="assign">Assign reviewer</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=doc.canonical_name request_id=review_req.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=doc.name request_id=review_req.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -18,7 +18,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Close request</button> <button type="submit" class="btn btn-primary">Close request</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=doc.canonical_name request_id=review_req.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=doc.name request_id=review_req.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -88,7 +88,7 @@
</button> </button>
{% if assignment %} {% if assignment %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=doc.canonical_name request_id=assignment.review_request.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=doc.name request_id=assignment.review_request.pk %}">
Back Back
</a> </a>
{% else %} {% else %}

View file

@ -14,7 +14,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Save</button> <button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=review_req.doc.canonical_name request_id=review_req.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=review_req.doc.name request_id=review_req.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -17,7 +17,7 @@
{% bootstrap_form form %} {% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Save</button> <button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=review_req.doc.canonical_name request_id=review_req.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=review_req.doc.name request_id=review_req.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -19,7 +19,7 @@
name="action" name="action"
value="noresponse">Mark assignment as no-response</button> value="noresponse">Mark assignment as no-response</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=assignment.review_request.doc.canonical_name request_id=assignment.review_request.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=assignment.review_request.doc.name request_id=assignment.review_request.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -18,7 +18,7 @@
{% csrf_token %} {% csrf_token %}
{% bootstrap_form form %} {% bootstrap_form form %}
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=doc.canonical_name request_id=review_req.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=doc.name request_id=review_req.pk %}">
Back Back
</a> </a>
<button type="submit" class="btn btn-warning" name="action" value="reject">Reject assignment</button> <button type="submit" class="btn btn-warning" name="action" value="reject">Reject assignment</button>

View file

@ -44,7 +44,7 @@
{% bootstrap_field form.comment layout="horizontal" %} {% bootstrap_field form.comment layout="horizontal" %}
<button type="submit" class="btn btn-primary">Request review</button> <button type="submit" class="btn btn-primary">Request review</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -18,7 +18,7 @@
{% bootstrap_form form layout="horizontal" %} {% bootstrap_form form layout="horizontal" %}
<button type="submit" class="btn btn-primary">Continue</button> <button type="submit" class="btn btn-primary">Continue</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -16,7 +16,7 @@
{% csrf_token %} {% csrf_token %}
<button type="submit" class="btn btn-primary" name="action" value="withdraw">Withdraw assignment</button> <button type="submit" class="btn btn-primary" name="action" value="withdraw">Withdraw assignment</button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_review.review_request" name=assignment.review_request.doc.canonical_name request_id=assignment.review_request.pk %}"> href="{% url "ietf.doc.views_review.review_request" name=assignment.review_request.doc.name request_id=assignment.review_request.pk %}">
Back Back
</a> </a>
</form> </form>

View file

@ -20,14 +20,14 @@
{% if doc.get_state_slug == 'rfc' %} {% if doc.get_state_slug == 'rfc' %}
<li class="page-item rfc{% if not snapshot %} active{% endif %}"> <li class="page-item rfc{% if not snapshot %} active{% endif %}">
<a class="page-link" <a class="page-link"
href="{% if doc.doc %}{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.doc.canonical_name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.doc.canonical_name %}{% endif %}{% else %}{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.canonical_name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.canonical_name %}{% endif %}{% endif %}"> href="{% if doc.doc %}{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.doc.name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.doc.name %}{% endif %}{% else %}{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.name %}{% endif %}{% endif %}">
RFC {{ doc.rfc_number }} RFC {{ doc.rfc_number }}
</a> </a>
</li> </li>
{% elif doc.doc.get_state_slug == 'rfc' %} {% elif doc.doc.get_state_slug == 'rfc' %}
<li class="page-item rfc"> <li class="page-item rfc">
<a class="page-link" <a class="page-link"
href="{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.doc.canonical_name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.doc.canonical_name %}{% endif %}"> href="{% if document_html %}{% url 'ietf.doc.views_doc.document_html' name=doc.doc.name %}{% else %}{% url 'ietf.doc.views_doc.document_main' name=doc.doc.name %}{% endif %}">
RFC {{ doc.doc.rfc_number }} RFC {{ doc.doc.rfc_number }}
</a> </a>
</li> </li>

View file

@ -110,7 +110,7 @@
{% if doc.rev != "00" %} {% if doc.rev != "00" %}
<a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}"> <a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}">
{% elif doc.replaces %} {% elif doc.replaces %}
<a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_canonical_name }}&amp;url2={{ doc.name }}-{{ doc.rev }}"> <a href="{{ rfcdiff_base_url }}?url1={{ doc.replaces_name }}&amp;url2={{ doc.name }}-{{ doc.rev }}">
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if doc.type_id == "rfc" %} {% if doc.type_id == "rfc" %}

View file

@ -3,13 +3,13 @@
{% load origin %} {% load origin %}
{% load ietf_filters %} {% load ietf_filters %}
{% load textfilters %} {% load textfilters %}
{% block title %}Shepherd writeup for {{ doc.canonical_name }}{% endblock %} {% block title %}Shepherd writeup for {{ doc.name }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
Shepherd writeup Shepherd writeup
<br> <br>
<small class="text-body-secondary">{{ doc.canonical_name }}</small> <small class="text-body-secondary">{{ doc.name }}</small>
</h1> </h1>
<pre class="border p-3 my-3">{{writeup|maybewordwrap|urlize_ietf_docs|linkify}}</pre> <pre class="border p-3 my-3">{{writeup|maybewordwrap|urlize_ietf_docs|linkify}}</pre>
{% if can_edit %} {% if can_edit %}

View file

@ -1,7 +1,7 @@
{% load ietf_filters %}{% load mail_filters %}{% autoescape off %} {% load ietf_filters %}{% load mail_filters %}{% autoescape off %}
{% filter wordwrap:78 %}The AD has approved changing the status of the following {% if related_doc_info|length == 1 %}document{% else %}documents{% endif %}: {% filter wordwrap:78 %}The AD has approved changing the status of the following {% if related_doc_info|length == 1 %}document{% else %}documents{% endif %}:
{% for relateddoc in related_doc_info %}- {{relateddoc.title }} {% for relateddoc in related_doc_info %}- {{relateddoc.title }}
({{relateddoc.canonical_name }}) to {{ relateddoc.newstatus }} ({{relateddoc.name }}) to {{ relateddoc.newstatus }}
{% endfor %} {% endfor %}
An announcement has not yet been sent. An announcement has not yet been sent.
{% endfilter %} {% endfilter %}

View file

@ -5,7 +5,7 @@ Subject: {{action}}: {{relateddoc.target.title}} to {{newstatus}}
{% filter wordwrap:78 %}The IESG has approved changing the status of the following document: {% filter wordwrap:78 %}The IESG has approved changing the status of the following document:
- {{relateddoc.target.title }} - {{relateddoc.target.title }}
({{relateddoc.target.canonical_name }}) to {{ newstatus }} ({{relateddoc.target.name }}) to {{ newstatus }}
This {{action|lower}} is documented at: This {{action|lower}} is documented at:
{{status_change_url}} {{status_change_url}}

View file

@ -2,13 +2,13 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #} {# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %} {% load origin %}
{% load django_bootstrap5 %} {% load django_bootstrap5 %}
{% block title %}Approve {{ doc.canonical_name }}{% endblock %} {% block title %}Approve {{ doc.name }}{% endblock %}
{% block content %} {% block content %}
{% origin %} {% origin %}
<h1> <h1>
Approve Approve
<br> <br>
<small class="text-body-secondary">{{ doc.canonical_name }}</small> <small class="text-body-secondary">{{ doc.name }}</small>
</h1> </h1>
<form class="my-3" method="post"> <form class="my-3" method="post">
{% csrf_token %} {% csrf_token %}

View file

@ -11,7 +11,7 @@
<small class="text-body-secondary">{{ doc.title }}</small> <small class="text-body-secondary">{{ doc.title }}</small>
</h1> </h1>
<p class="my-3 alert alert-info"> <p class="my-3 alert alert-info">
The text will be submitted as <b>{{ doc.canonical_name }}-{{ next_rev }}</b>. The text will be submitted as <b>{{ doc.name }}-{{ next_rev }}</b>.
</p> </p>
<form class="my-3" enctype="multipart/form-data" method="post"> <form class="my-3" enctype="multipart/form-data" method="post">
{% csrf_token %} {% csrf_token %}
@ -27,7 +27,7 @@
Reset to template text Reset to template text
</button> </button>
<a class="btn btn-secondary float-end" <a class="btn btn-secondary float-end"
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}"> href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">
Back Back
</a> </a>
</form> </form>

View file

@ -42,7 +42,7 @@ Internet-Drafts:
{% if group.rfcs %}Requests for Comments: {% if group.rfcs %}Requests for Comments:
{% for document in group.rfcs %} {{ document.name.upper }}: {{ document.title}} ({{ document.pages }} pages){% for r in document.rel %} {% for document in group.rfcs %} {{ document.name.upper }}: {{ document.title}} ({{ document.pages }} pages){% for r in document.rel %}
* {{ r.action }} {{ r.target.name|upper }}{% endfor %}{% for r in document.invrel %} * {{ r.action }} {{ r.target.name|upper }}{% endfor %}{% for r in document.invrel %}
* {% if r.relationsship == "obs" %}{{ r.inverse_action|upper }}{% else %}{{ r.action }}{% endif %} {{ r.source.canonical_name|upper }}{% endfor %} * {% if r.relationsship == "obs" %}{{ r.inverse_action|upper }}{% else %}{{ r.action }}{% endif %} {{ r.source.name|upper }}{% endfor %}
{% endfor %} {% endfor %}
{% else %}No Requests for Comments{% endif %} {% else %}No Requests for Comments{% endif %}
{% endautoescape %} {% endautoescape %}

View file

@ -11,7 +11,7 @@
<div class="col pe-5 me-5"> <div class="col pe-5 me-5">
<div class="fw-bold">{{ doc.title }}</div> <div class="fw-bold">{{ doc.title }}</div>
<a href="{{ doc.get_href }}" aria-label="Content"><i class="bi bi-file-earmark-fill"></i></a> <a href="{{ doc.get_href }}" aria-label="Content"><i class="bi bi-file-earmark-fill"></i></a>
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc.canonical_name }}</a> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc.name }}</a>
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View file

@ -1,7 +1,7 @@
{% load ietf_filters %}{% with doc.conflictdoc as conflictdoc %} {% load ietf_filters %}{% with doc.conflictdoc as conflictdoc %}
o {{ doc.canonical_name }}-{{ doc.rev }} o {{ doc.name }}-{{ doc.rev }}
{% filter wordwrap:"68"|indent|indent %}{{ doc.title }}{% endfilter %} {% filter wordwrap:"68"|indent|indent %}{{ doc.title }}{% endfilter %}
{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }} {{ conflictdoc.name }}-{{ conflictdoc.rev }}
{% filter wordwrap:"66"|indent:"4" %}{{ conflictdoc.title }} ({{ conflictdoc.stream }}: {{ conflictdoc.intended_std_level }}){% endfilter %} {% filter wordwrap:"66"|indent:"4" %}{{ conflictdoc.title }} ({{ conflictdoc.stream }}: {{ conflictdoc.intended_std_level }}){% endfilter %}
{% if conflictdoc.note %}{# note: note is not escaped #} {% filter wordwrap:"64"|indent:"6" %}Note: {{ conflictdoc.note|striptags }}{% endfilter %} {% if conflictdoc.note %}{# note: note is not escaped #} {% filter wordwrap:"64"|indent:"6" %}Note: {{ conflictdoc.note|striptags }}{% endfilter %}
{% endif %} Token: {{ doc.ad }} {% endif %} Token: {{ doc.ad }}

View file

@ -19,9 +19,9 @@
{% with doc.rfc_number as rfc_number %} {% with doc.rfc_number as rfc_number %}
<a href="{% if rfc_number %} https://www.rfc-editor.org/rfc/rfc{{ rfc_number }}/ {% else %} {{ doc.get_href }} {% endif %}" aria-label="Content"><i class="bi bi-file-earmark-fill"></i></a> <a href="{% if rfc_number %} https://www.rfc-editor.org/rfc/rfc{{ rfc_number }}/ {% else %} {{ doc.get_href }} {% endif %}" aria-label="Content"><i class="bi bi-file-earmark-fill"></i></a>
{% endwith %} {% endwith %}
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">{{ doc.canonical_name }}</a> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">{{ doc.name }}</a>
{% if doc.has_rfc_editor_note %} {% if doc.has_rfc_editor_note %}
<a href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}writeup/"> <a href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}writeup/">
<em>(Has RFC Editor Note)</em> <em>(Has RFC Editor Note)</em>
</a> </a>
{% endif %} {% endif %}

View file

@ -1,5 +1,5 @@
{% load ietf_filters %}{% with doc.rfc_number as rfc_number %} {% load ietf_filters %}{% with doc.rfc_number as rfc_number %}
o {{doc.canonical_name}}{% if not rfc_number %}-{{doc.rev}}{% endif %}{% endwith %}{%if doc.has_rfc_editor_note %} (Has RFC Editor Note){% endif %}{% if doc.stream %} - {{ doc.stream }} stream{% endif %} o {{doc.name}}{% if not rfc_number %}-{{doc.rev}}{% endif %}{% endwith %}{%if doc.has_rfc_editor_note %} (Has RFC Editor Note){% endif %}{% if doc.stream %} - {{ doc.stream }} stream{% endif %}
{% filter wordwrap:"68"|indent|indent %}{{ doc.title }} ({{ doc.intended_std_level }}){% endfilter %} {% filter wordwrap:"68"|indent|indent %}{{ doc.title }} ({{ doc.intended_std_level }}){% endfilter %}
{% if doc.note %}{# note: note is not escaped #} {% filter wordwrap:"68"|indent|indent %}Note: {{ doc.note|striptags }}{% endfilter %} {% if doc.note %}{# note: note is not escaped #} {% filter wordwrap:"68"|indent|indent %}Note: {{ doc.note|striptags }}{% endfilter %}
{% endif %} Token: {{ doc.ad }}{% if doc.iana_review_state %} {% endif %} Token: {{ doc.ad }}{% if doc.iana_review_state %}

View file

@ -165,7 +165,7 @@ Parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% if downrefs %} {% if downrefs %}
<p>If APPROVED - The Secretariat will add to the downref registry:<br> <p>If APPROVED - The Secretariat will add to the downref registry:<br>
{% for ref in downrefs %} {% for ref in downrefs %}
+ Add {{ref.target.canonical_name}} + Add {{ref.target.name}}
({{ref.target.std_level}} - {{ref.target.stream.desc}}) ({{ref.target.std_level}} - {{ref.target.stream.desc}})
to downref registry.<br> to downref registry.<br>
{% if not ref.target.std_level %} {% if not ref.target.std_level %}

View file

@ -45,7 +45,7 @@
{% for rfc in rfcs %} {% for rfc in rfcs %}
<tr> <tr>
<td class="text-nowrap"> <td class="text-nowrap">
<a href="{{ rfc.doc.get_absolute_url }}">{{ rfc.doc.canonical_name|prettystdname }}</a> <a href="{{ rfc.doc.get_absolute_url }}">{{ rfc.doc.name|prettystdname }}</a>
</td> </td>
<td class="text-nowrap">{{ rfc.doc.intended_std_level.name }}</td> <td class="text-nowrap">{{ rfc.doc.intended_std_level.name }}</td>
<td> <td>

View file

@ -76,8 +76,8 @@
<i class="small bi bi-bell" <i class="small bi bi-bell"
title="Last Update: {{ draft.time|utc|date:"Y-m-d H:i:s" }} UTC"></i> title="Last Update: {{ draft.time|utc|date:"Y-m-d H:i:s" }} UTC"></i>
{% endif %} {% endif %}
<a href="{% url "ietf.doc.views_doc.document_main" name=draft.material.canonical_name %}"> <a href="{% url "ietf.doc.views_doc.document_main" name=draft.material.name %}">
{{ draft.material.canonical_name }} {{ draft.material.name }}
</a> </a>
<br> <br>
{% empty %} {% empty %}

View file

@ -77,8 +77,8 @@
{# drafts #} {# drafts #}
<td> <td>
{% for draft in entry.drafts %} {% for draft in entry.drafts %}
<a href="{% url "ietf.doc.views_doc.document_main" name=draft.material.canonical_name %}"> <a href="{% url "ietf.doc.views_doc.document_main" name=draft.material.name %}">
{{ draft.material.canonical_name }} {{ draft.material.name }}
</a> </a>
<br> <br>
{% empty %} {% empty %}

View file

@ -111,7 +111,7 @@
{% with doc.referenced_by_rfcs.count as refbycount %} {% with doc.referenced_by_rfcs.count as refbycount %}
{% if refbycount %} {% if refbycount %}
<a class="text-end" <a class="text-end"
href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.canonical_name %}" href="{% url 'ietf.doc.views_doc.document_referenced_by' doc.name %}"
rel="nofollow"> rel="nofollow">
{{ refbycount }} RFC{{ refbycount|pluralize }} {{ refbycount }} RFC{{ refbycount|pluralize }}
</a> </a>
@ -132,7 +132,7 @@
<ul> <ul>
{% for doc in person.active_drafts %} {% for doc in person.active_drafts %}
<li> <li>
<a href="{{ doc.get_absolute_url }}">{{ doc.canonical_name }}</a> <a href="{{ doc.get_absolute_url }}">{{ doc.name }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -148,7 +148,7 @@
{% if not doc.replaced_by %} {% if not doc.replaced_by %}
<li> <li>
<a href="{{ doc.get_absolute_url }}"> <a href="{{ doc.get_absolute_url }}">
{{ doc.canonical_name }} {{ doc.name }}
</a> </a>
</li> </li>
{% endif %} {% endif %}