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
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')
received = self.getJson(dict(name=f'RfC {number}'))
@ -1032,7 +1032,7 @@ class RfcdiffSupportTests(TestCase):
draft = reload_db_objects(draft)
# 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'))
def do_rfc_with_broken_history_test(self, draft_name):
@ -1048,7 +1048,7 @@ class RfcdiffSupportTests(TestCase):
received,
dict(
content_url=rfc.get_href(),
name=rfc.canonical_name(),
name=rfc.name,
previous=f'{draft.name}-10',
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))
for rfc in new_rfcs:
rebuild_reference_relations(rfc)
log("Updated references for %s"%rfc.canonical_name())
log("Updated references for %s"%rfc.name)
except:
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]))

View file

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

View file

@ -119,12 +119,6 @@ class RfcFactory(BaseDocumentFactory):
else:
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):

View file

@ -46,7 +46,7 @@ class DocumentChangesFeed(Feed):
raise FeedDoesNotExist
return urlreverse(
"ietf.doc.views_doc.document_history",
kwargs=dict(name=obj.canonical_name()),
kwargs=dict(name=obj.name),
)
def subtitle(self, obj):
@ -86,7 +86,7 @@ class DocumentChangesFeed(Feed):
return (
urlreverse(
"ietf.doc.views_doc.document_history",
kwargs=dict(name=item.doc.canonical_name()),
kwargs=dict(name=item.doc.name),
)
+ "#history-%s" % item.pk
)
@ -208,13 +208,13 @@ class RfcFeed(Feed):
return [doc for doc, time in results]
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):
return item.abstract
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):
return item.publication_time
@ -229,7 +229,7 @@ class RfcFeed(Feed):
for fmt, media_type in [("txt", "text/plain"), ("html", "text/html")]:
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,
"is_format_of": self.item_link(item),
}
@ -237,7 +237,7 @@ class RfcFeed(Feed):
if item.rfc_number not in [571, 587]:
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",
"is_format_of": self.item_link(item),
}
@ -245,7 +245,7 @@ class RfcFeed(Feed):
else:
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",
}
)
@ -256,16 +256,16 @@ class RfcFeed(Feed):
]:
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,
"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({"doi": "10.17487/%s" % item.canonical_name().upper()})
extra.update({"doi": "10.17487/%s" % item.name.upper()})
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)

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)
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:
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 ]

View file

@ -173,7 +173,7 @@ class DocumentInfo(models.Model):
if self.uploaded_filename:
self._cached_base_name = self.uploaded_filename
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':
if self.is_dochistory():
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)
elif self.type_id in ["slides", "agenda", "minutes", "bluesheets", "procmaterials", ] and self.meeting_related():
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':
# 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
@ -189,9 +189,9 @@ class DocumentInfo(models.Model):
self._cached_base_name = "%s-%s.md" % (self.name, self.rev)
else:
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:
self._cached_base_name = "%s.txt" % (self.canonical_name(), )
self._cached_base_name = "%s.txt" % (self.name, )
return self._cached_base_name
def get_file_name(self):
@ -507,7 +507,7 @@ class DocumentInfo(models.Model):
def replaces(self):
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")])
first = list(s)[0] if s else None
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":
try:
html = Path(
os.path.join(settings.RFC_PATH, self.canonical_name() + ".html")
os.path.join(settings.RFC_PATH, self.name + ".html")
).read_text()
except (IOError, UnicodeDecodeError):
return None
@ -805,7 +805,7 @@ class Document(DocumentInfo):
name = self.name
url = None
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")
elif self.type_id in ('slides','bluesheets','recording'):
session = self.session_set.first()
@ -844,7 +844,7 @@ class Document(DocumentInfo):
return e
def display_name(self):
name = self.canonical_name()
name = self.name
if name.startswith('rfc'):
name = name.upper()
return name
@ -1109,10 +1109,7 @@ class DocHistoryAuthor(DocumentAuthorInfo):
class DocHistory(DocumentInfo):
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)
def __str__(self):
@ -1124,11 +1121,6 @@ class DocHistory(DocumentInfo):
def get_related_proceedings_material(self):
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):
kwargs["time__lte"] = self.time
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}')
def doc_canonical_name(name):
def doc_name(name):
"""Check whether a given document exists, and return its canonical name"""
def find_unique(n):
@ -174,7 +174,7 @@ def doc_canonical_name(name):
def link_charter_doc_match(match):
if not doc_canonical_name(match[0]):
if not doc_name(match[0]):
return match[0]
url = urlreverse(
"ietf.doc.views_doc.document_main",
@ -187,7 +187,7 @@ def link_non_charter_doc_match(match):
name = match[0]
# handle "I-D.*"" reference-style matches
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:
return match[0]
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))
return f'<a href="{url}">{match[0]}</a>'
cname = doc_canonical_name(name)
cname = doc_name(name)
if not cname:
return match[0]
if name == cname:
@ -222,7 +222,7 @@ def link_non_charter_doc_match(match):
def link_other_doc_match(match):
doc = match[2].strip().lower()
rev = match[3]
if not doc_canonical_name(doc + rev):
if not doc_name(doc + rev):
return match[0]
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc + rev))
return f'<a href="{url}">{match[1]}</a>'
@ -268,7 +268,7 @@ def urlize_related_source_list(related, document_html=False):
names = set()
titles = set()
for rel in related:
name=rel.source.canonical_name()
name=rel.source.name
title = rel.source.title
if name in names and title in titles:
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"""
links = []
for rel in related:
name=rel.target.canonical_name()
name=rel.target.name
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))
name = escape(name)

View file

@ -347,7 +347,7 @@ class SearchTests(TestCase):
self.assertEqual(r.status_code, 200)
self.assertContains(r, draft.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, statchg.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'))
self.assertEqual(r.status_code, 200)
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'))
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':
self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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, "Show full document")
self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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.assertNotContains(r, "Show full document")
self.assertContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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, "Show full document")
self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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':
self.assertContains(r, "Show full document")
self.assertNotContains(r, "Deimos street")
self.assertContains(r, replaced.canonical_name())
self.assertContains(r, replaced.name)
self.assertContains(r, replaced.title)
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.save_with_history([DocEventFactory(doc=rfc)])
(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)
q = PyQuery(r.content)
self.assertEqual(q('title').text(), f'RFC {rfc.rfc_number} - {rfc.title}')
# 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)))
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}')))
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
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)))
self.assertEqual(r.status_code, 200)
self.assertContains(r, "Replaced Internet-Draft")
self.assertContains(r, replacement.canonical_name())
self.assertContains(r, replacement.name)
self.assertContains(r, replacement.title)
rel.delete()
@ -787,13 +787,13 @@ Man Expires September 22, 2015 [Page 3]
self.assertContains(r, "RFC 123456")
self.assertContains(r, draft.name)
# 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_by.canonical_name())
self.assertContains(r, obsoleted_by.name)
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_by.canonical_name())
self.assertContains(r, updated_by.name)
self.assertContains(r, updated_by.title)
# 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(
urlreverse(
'ietf.doc.views_doc.document_main',
kwargs={'name': draft.canonical_name()},
kwargs={'name': draft.name},
)
)
self.assertEqual(r.status_code, 200)
@ -2698,20 +2698,20 @@ class Idnits2SupportTests(TestCase):
rfc = WgRfcFactory()
draft = WgDraftFactory()
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)
self.assertEqual(r.status_code, 200)
self.assertContains(r,'rfcnum')
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)
self.assertEqual(r.status_code, 200)
self.assertNotContains(r,'rfcnum')
self.assertContains(r,'Unknown')
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)
self.assertEqual(r.status_code, 200)
self.assertContains(r,'Proposed')

View file

@ -32,7 +32,7 @@ class BofreqTests(TestCase):
settings_temp_path_overrides = TestCase.settings_temp_path_overrides + ['BOFREQ_PATH']
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:
f.write(f"""# This is a test bofreq.
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
# 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.assertFalse(os.path.exists(path))
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
# 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')
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:
f.write('This is the old proposal.')
f.close()
@ -435,7 +435,7 @@ class ConflictReviewSubmitTests(TestCase):
self.assertEqual(r.status_code, 302)
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
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:
self.assertEqual(f.read(),"This is a new proposal.")
f.close()

View file

@ -41,7 +41,7 @@ class IssueRSABBallotTests(TestCase):
self.client.login(username="rsab-chair", password="rsab-chair+password")
for name in [
doc.canonical_name()
doc.name
for doc in (individual_draft, wg_draft, rg_draft, ed_rfc)
]:
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:'))
notification_text = get_payload_text(notification)
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='rfc9998').canonical_name(), notification_text)
self.assertNotIn(Document.objects.get(name='rfc14').canonical_name(), notification_text)
self.assertIn(Document.objects.get(name='rfc9999').name, notification_text)
self.assertIn(Document.objects.get(name='rfc9998').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
else:
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
# 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.assertFalse(os.path.exists(path))
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
# 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')
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:
f.write('This is the old proposal.')
f.close()
@ -552,7 +552,7 @@ class StatusChangeSubmitTests(TestCase):
self.assertEqual(r.status_code, 302)
doc = Document.objects.get(name='status-change-imaginary-mid-review')
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:
self.assertEqual(f.read(),"This is a new proposal.")
f.close()

View file

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

View file

@ -56,7 +56,7 @@ def save_document_in_history(doc):
# copy fields
fields = get_model_fields_as_dict(doc)
fields["doc"] = doc
fields["name"] = doc.canonical_name()
fields["name"] = doc.name
dochist = DocHistory(**fields)
dochist.save()
@ -978,8 +978,8 @@ def make_rev_history(doc):
if e:
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=e.doc))
history[url] = {
'name': e.doc.canonical_name(),
'rev': e.doc.canonical_name(),
'name': e.doc.name,
'rev': e.doc.name,
'published': e.time.isoformat(),
'url': url
}

View file

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

View file

@ -171,7 +171,7 @@ class UploadForm(forms.Form):
return get_cleaned_text_file_content(self.cleaned_data["txt"])
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:
if self.cleaned_data['txt']:
destination.write(self.cleaned_data['txt'])
@ -185,7 +185,7 @@ def submit(request, name):
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)
if not_uploaded_yet:
@ -202,7 +202,7 @@ def submit(request, name):
events = []
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.save()
events.append(e)
@ -234,7 +234,7 @@ def submit(request, name):
dict(),
))
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:
with io.open(filename, 'r') as f:
init["content"] = f.read()
@ -276,7 +276,7 @@ def edit_ad(request, name):
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',
{'form': form,
'doc': review,

View file

@ -796,7 +796,7 @@ def document_main(request, name, rev=None, document_html=False):
))
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)
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":
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)
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
basename = os.path.splitext(doc.uploaded_filename)[0]
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)
@ -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 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:
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(
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,
document_html=True,
)
@ -1461,7 +1461,7 @@ def document_referenced_by(request, name):
refs=refs[:250]
else:
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",
dict(name=name,
doc=doc,
@ -1768,8 +1768,8 @@ def telechat_date(request, name):
def doc_titletext(doc):
if doc.type.slug=='conflrev':
conflictdoc = doc.relateddocument_set.get(relationship__slug='conflrev').target
return 'the conflict review of %s' % conflictdoc.canonical_name()
return doc.canonical_name()
return 'the conflict review of %s' % conflictdoc.name
return doc.name
def edit_notify(request, name):
@ -2008,7 +2008,7 @@ def remind_action_holders(request, name):
form = ReminderEmailForm(request.POST)
if form.is_valid():
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()
return render(

View file

@ -99,7 +99,7 @@ def change_state(request, name, option=None):
)
related_doc_info = [
dict(title=rel_doc.target.title,
canonical_name=rel_doc.target.canonical_name(),
name=rel_doc.target.name,
newstatus=newstatus(rel_doc))
for rel_doc in related_docs
]
@ -148,7 +148,7 @@ class UploadForm(forms.Form):
return get_cleaned_text_file_content(self.cleaned_data["txt"])
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:
if self.cleaned_data['txt']:
destination.write(self.cleaned_data['txt'])
@ -162,7 +162,7 @@ def submit(request, name):
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)
if not_uploaded_yet:
@ -179,7 +179,7 @@ def submit(request, name):
events = []
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.save()
events.append(e)
@ -211,7 +211,7 @@ def submit(request, name):
dict(),
)
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:
with io.open(filename, 'r') as f:
init["content"] = f.read()
@ -253,7 +253,7 @@ def edit_title(request, name):
init = { "title" : status_change.title }
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',
{'form': form,
'doc': status_change,
@ -284,7 +284,7 @@ def edit_ad(request, name):
init = { "ad" : status_change.ad_id }
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',
{'form': form,
'doc': status_change,
@ -399,7 +399,7 @@ def approve(request, name):
init = []
for rel in status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS):
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)
for form in formset.forms:
@ -574,9 +574,9 @@ def start_rfc_status_change(request, name=None):
init = {}
if name:
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[seed_rfc.canonical_name()]=None
relations[seed_rfc.name]=None
init['relations'] = relations
form = StartStatusChangeForm(initial=init)
@ -602,7 +602,7 @@ def edit_relations(request, name):
old_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']
status_change.relateddocument_set.filter(relationship__slug__in=STATUSCHANGE_RELATIONS).delete()
for key in new_relations:
@ -623,7 +623,7 @@ def edit_relations(request, name):
else:
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,
}
form = EditStatusChangeForm(initial=init)

View file

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

View file

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

View file

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

View file

@ -191,7 +191,7 @@ class Person(models.Model):
def rfcs(self):
from ietf.doc.models import Document
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
def active_drafts(self):

View file

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

View file

@ -21,7 +21,7 @@
<button class="btn btn-primary" type="submit">Email RFC Editor (DNP) &amp; close ballot"</button>
{% endif %}
<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
</a>
</form>

View file

@ -12,16 +12,16 @@
</h1>
<p>
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.
</p>
{% if not downrefs_to_rfc %}
<p>
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>
<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 %}
<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.
@ -41,7 +41,7 @@
{% csrf_token %}
{% bootstrap_form approve_downrefs_form %}
<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
</a>
<button type="submit" class="btn btn-warning" value="Save checked downrefs">Add checked DOWNREF entries</button>

View file

@ -11,7 +11,7 @@
</h1>
<p>
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.
</p>
{% if doc.telechat_date %}
@ -24,5 +24,5 @@
</p>
{% endif %}
<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 %}

View file

@ -14,14 +14,14 @@
{% csrf_token %}
<p class="alert alert-danger my-3">
<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>
<br>
This will clear all ballot positions and discuss entries.
</p>
<button type="submit" class="btn btn-danger">Clear</button>
<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
</a>
</form>

View file

@ -14,14 +14,14 @@
{% csrf_token %}
<p class="alert alert-danger my-3">
<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>
<br>
The ballot will then be put on the IESG agenda of {{ telechat_date }}.
</p>
<button type="submit" class="btn btn-danger">Defer ballot</button>
<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
</a>
</form>

View file

@ -54,7 +54,7 @@
{% endif %}
{% endif %}
<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
</a>
</div>

View file

@ -39,7 +39,7 @@
href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a>
{% endif %}
<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
</a>
</form>

View file

@ -31,7 +31,7 @@
Clear
</button>
<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
</a>
</form>

View file

@ -37,7 +37,7 @@
</div>
<button type="submit" class="btn btn-danger">Send</button>
<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
</a>
</form>

View file

@ -19,7 +19,7 @@
</p>
<button class="btn btn-danger" type="submit">Undefer ballot</button>
<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
</a>
</form>

View file

@ -32,7 +32,7 @@
Save &amp; {% if ballot_issued %}re-{% endif %}issue ballot
</button>
<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
</a>
</form>

View file

@ -16,7 +16,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button>
<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
</a>
</form>

View file

@ -16,7 +16,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button>
<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
</a>
</form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button>
<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
</a>
</form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Submit</button>
<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
</a>
</form>

View file

@ -1,9 +1,9 @@
{% load ietf_filters %}{% load mail_filters %}{% autoescape off %}From: The IESG <iesg-secretary@ietf.org>
To: {{ to }}
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' %}
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 #}
{% load origin %}
{% load django_bootstrap5 %}
{% block title %}Approve {{ review.canonical_name }}{% endblock %}
{% block title %}Approve {{ review.name }}{% endblock %}
{% block content %}
{% origin %}
<h1>Approve {{ review.canonical_name }}</h1>
<h1>Approve {{ review.name }}</h1>
<form class="my-3" method="post">
{% csrf_token %}
{% bootstrap_form form %}

View file

@ -3,13 +3,13 @@
{% load origin %}
{% load django_bootstrap5 %}
{% 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 %}
{% origin %}
<h1>
Begin IETF conflict review
<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>
{% if user|has_role:"Secretariat" %}
<p class="my-3">

View file

@ -2,16 +2,16 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin %}
{% 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 %}
{% origin %}
<h1>
Edit conflict review
<br>
<small class="text-body-secondary">{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}</small>
<small class="text-body-secondary">{{ conflictdoc.name }}-{{ conflictdoc.rev }}</small>
</h1>
<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>
<form class="my-3" enctype="multipart/form-data" method="post">
{% csrf_token %}
@ -27,7 +27,7 @@
Reset to template text
</button>
<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
</a>
</form>

View file

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

View file

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

View file

@ -13,7 +13,7 @@
title="Document changes"
href="/feed/document-changes/{{ name }}/">
<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 %}
{% block morecss %}.inline { display: inline; }{% endblock %}
{% block title %}
@ -650,14 +650,14 @@
{% endif %}
</a>
<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">
<i class="bi bi-arrow-left">
</i>
References
</a>
<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">
<i class="bi bi-arrow-right">
</i>

View file

@ -33,7 +33,7 @@
<link rel="alternate" type="application/atom+xml" title="Document changes" href="/feed/document-changes/{{ doc.name }}/">
<meta name="description"
{% 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 %}
content="{{ doc.title }} (Internet-Draft, {{ doc.time|date:'Y' }})"
{% endif %}>
@ -63,7 +63,7 @@
</button>
<nav class="navbar bg-light px-1 fixed-top d-print-none d-md-none">
<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" %}
RFC {{ doc.rfc_number }}
{% else %}
@ -150,7 +150,7 @@
<i class="bi bi-arrow-bar-up"></i>
</button>
<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">
{% if not snapshot and doc.get_state_slug == "rfc" %}
RFC {{ doc.rfc_number }}

View file

@ -61,7 +61,7 @@
{% endif %}
{% else %}
{% 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 %}
<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 %}

View file

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

View file

@ -4,10 +4,10 @@
{% block pagehead %}
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
{% endblock %}
{% block title %}References from {{ doc.canonical_name }}{% endblock %}
{% block title %}References from {{ doc.name }}{% endblock %}
{% block content %}
{% origin %}
<h1>References from {{ doc.canonical_name }}</h1>
<h1>References from {{ doc.name }}</h1>
<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.
</p>

View file

@ -13,7 +13,7 @@
title="Document changes"
href="/feed/document-changes/{{ name }}/">
<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 %}
{% block morecss %}.inline { display: inline; }{% endblock %}
{% block title %}
@ -173,14 +173,14 @@
{% endif %}
</a>
<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">
<i class="bi bi-arrow-left">
</i>
References
</a>
<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">
<i class="bi bi-arrow-right">
</i>

View file

@ -52,7 +52,7 @@
<td class="edit"></td>
<td>
{% 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 %}
</td>
</tr>

View file

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

View file

@ -12,6 +12,6 @@
</p>
<p>
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>
{% endblock %}

View file

@ -40,7 +40,7 @@
</div>
<button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button>
<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
</a>
</form>

View file

@ -48,7 +48,7 @@
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<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
</a>
</form>

View file

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

View file

@ -22,7 +22,7 @@
name="regenerate_addresses">
Regenerate address list</button>
<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
</a>
</form>

View file

@ -33,7 +33,7 @@ No IPR declarations have been submitted directly on this I-D.
{% if downrefs %}
The document contains these normative downward references.
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%}
{% endautoescape %}

View file

@ -27,7 +27,7 @@
name="submit"
value="Send reminder">Send</button>
<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
</a>
</form>

View file

@ -15,7 +15,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary" name="action" value="assign">Assign reviewer</button>
<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
</a>
</form>

View file

@ -18,7 +18,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Close request</button>
<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
</a>
</form>

View file

@ -88,7 +88,7 @@
</button>
{% if assignment %}
<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
</a>
{% else %}

View file

@ -14,7 +14,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Save</button>
<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
</a>
</form>

View file

@ -17,7 +17,7 @@
{% bootstrap_form form %}
<button type="submit" class="btn btn-primary">Save</button>
<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
</a>
</form>

View file

@ -19,7 +19,7 @@
name="action"
value="noresponse">Mark assignment as no-response</button>
<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
</a>
</form>

View file

@ -18,7 +18,7 @@
{% csrf_token %}
{% bootstrap_form form %}
<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
</a>
<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" %}
<button type="submit" class="btn btn-primary">Request review</button>
<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
</a>
</form>

View file

@ -18,7 +18,7 @@
{% bootstrap_form form layout="horizontal" %}
<button type="submit" class="btn btn-primary">Continue</button>
<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
</a>
</form>

View file

@ -16,7 +16,7 @@
{% csrf_token %}
<button type="submit" class="btn btn-primary" name="action" value="withdraw">Withdraw assignment</button>
<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
</a>
</form>

View file

@ -20,14 +20,14 @@
{% if doc.get_state_slug == 'rfc' %}
<li class="page-item rfc{% if not snapshot %} active{% endif %}">
<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 }}
</a>
</li>
{% elif doc.doc.get_state_slug == 'rfc' %}
<li class="page-item rfc">
<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 }}
</a>
</li>

View file

@ -110,7 +110,7 @@
{% if doc.rev != "00" %}
<a href="{{ rfcdiff_base_url }}?url2={{ doc.name }}-{{ doc.rev }}">
{% 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 %}
{% if doc.type_id == "rfc" %}

View file

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

View file

@ -1,7 +1,7 @@
{% 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 %}:
{% for relateddoc in related_doc_info %}- {{relateddoc.title }}
({{relateddoc.canonical_name }}) to {{ relateddoc.newstatus }}
({{relateddoc.name }}) to {{ relateddoc.newstatus }}
{% endfor %}
An announcement has not yet been sent.
{% 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:
- {{relateddoc.target.title }}
({{relateddoc.target.canonical_name }}) to {{ newstatus }}
({{relateddoc.target.name }}) to {{ newstatus }}
This {{action|lower}} is documented at:
{{status_change_url}}

View file

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

View file

@ -11,7 +11,7 @@
<small class="text-body-secondary">{{ doc.title }}</small>
</h1>
<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>
<form class="my-3" enctype="multipart/form-data" method="post">
{% csrf_token %}
@ -27,7 +27,7 @@
Reset to template text
</button>
<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
</a>
</form>

View file

@ -42,7 +42,7 @@ Internet-Drafts:
{% if group.rfcs %}Requests for Comments:
{% 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 %}
* {% 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 %}
{% else %}No Requests for Comments{% endif %}
{% endautoescape %}

View file

@ -11,7 +11,7 @@
<div class="col pe-5 me-5">
<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="{% 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 class="row">

View file

@ -1,7 +1,7 @@
{% 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 %}
{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}
{{ conflictdoc.name }}-{{ conflictdoc.rev }}
{% 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 %}
{% endif %} Token: {{ doc.ad }}

View file

@ -19,9 +19,9 @@
{% 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>
{% 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 %}
<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>
</a>
{% endif %}

View file

@ -1,5 +1,5 @@
{% 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 %}
{% 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 %}

View file

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

View file

@ -45,7 +45,7 @@
{% for rfc in rfcs %}
<tr>
<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 class="text-nowrap">{{ rfc.doc.intended_std_level.name }}</td>
<td>

View file

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

View file

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

View file

@ -111,7 +111,7 @@
{% with doc.referenced_by_rfcs.count as refbycount %}
{% if refbycount %}
<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">
{{ refbycount }} RFC{{ refbycount|pluralize }}
</a>
@ -132,7 +132,7 @@
<ul>
{% for doc in person.active_drafts %}
<li>
<a href="{{ doc.get_absolute_url }}">{{ doc.canonical_name }}</a>
<a href="{{ doc.get_absolute_url }}">{{ doc.name }}</a>
</li>
{% endfor %}
</ul>
@ -148,7 +148,7 @@
{% if not doc.replaced_by %}
<li>
<a href="{{ doc.get_absolute_url }}">
{{ doc.canonical_name }}
{{ doc.name }}
</a>
</li>
{% endif %}