From 865dc62676f452aff7df4f63de7d0b5fcc71a881 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Thu, 16 Dec 2021 22:33:47 +0000 Subject: [PATCH] Change strategy to only creating a single file per doc/rev, and not creating the 'draft-'-less or version-less variants. Corrected calculation of date in the management command. - Legacy-Id: 19789 --- .../commands/generate_draft_bibxml_files.py | 14 ++++++++------ ietf/settings.py | 2 +- ietf/submit/tests.py | 16 +++++++++++----- ietf/submit/utils.py | 14 +++++++++----- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/ietf/doc/management/commands/generate_draft_bibxml_files.py b/ietf/doc/management/commands/generate_draft_bibxml_files.py index 524384eee..8bdaa0a86 100644 --- a/ietf/doc/management/commands/generate_draft_bibxml_files.py +++ b/ietf/doc/management/commands/generate_draft_bibxml_files.py @@ -75,19 +75,21 @@ class Command(BaseCommand): for e in doc_events: self.mutter('%s %s' % (e.time, e.doc.name)) try: - e.doc.date = e.time.date() doc = e.doc if e.rev != doc.rev: for h in doc.history_set.order_by("-time"): if e.rev == h.rev: doc = h break + doc.date = e.time.date() ref_text = '%s' % render_to_string('doc/bibxml.xml', {'name':doc.name, 'doc': doc, 'doc_bibtype':'I-D'}) - if e.rev == e.doc.rev: - ref_file_name = os.path.join(bibxmldir, 'reference.I-D.%s.xml' % (doc.name[6:], )) - self.write(ref_file_name, ref_text) - else: - self.note("Skipping %s; outdated revision: %s" % (os.path.basename(ref_file_name), e.rev)) + # if e.rev == e.doc.rev: + # for name in (doc.name, doc.name[6:]): + # ref_file_name = os.path.join(bibxmldir, 'reference.I-D.%s.xml' % (name, )) + # self.write(ref_file_name, ref_text) + # for name in (doc.name, doc.name[6:]): + # ref_rev_file_name = os.path.join(bibxmldir, 'reference.I-D.%s-%s.xml' % (name, doc.rev)) + # self.write(ref_rev_file_name, ref_text) ref_rev_file_name = os.path.join(bibxmldir, 'reference.I-D.%s-%s.xml' % (doc.name, doc.rev)) self.write(ref_rev_file_name, ref_text) except Exception as ee: diff --git a/ietf/settings.py b/ietf/settings.py index 88d49ca39..a48cbebd6 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -1016,7 +1016,7 @@ HTPASSWD_FILE = "/www/htpasswd" # Generation of pdf files GHOSTSCRIPT_COMMAND = "/usr/bin/gs" -# Generation of bibxml files for internet-drafts +# Generation of bibxml files (currently only for internet drafts) BIBXML_BASE_PATH = '/a/ietfdata/derived/bibxml' # Timezone files for iCalendar diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 02f1e9ea7..949c75d66 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -39,7 +39,7 @@ from ietf.submit.mail import add_submission_email, process_response_email from ietf.utils.accesstoken import generate_access_token from ietf.utils.mail import outbox, empty_outbox, get_payload_text from ietf.utils.models import VersionInfo -from ietf.utils.test_utils import login_testing_unauthorized, TestCase, unicontent +from ietf.utils.test_utils import login_testing_unauthorized, TestCase from ietf.utils.draft import Draft @@ -50,6 +50,7 @@ class BaseSubmitTestCase(TestCase): 'SUBMIT_YANG_DRAFT_MODEL_DIR', 'SUBMIT_YANG_IANA_MODEL_DIR', 'SUBMIT_YANG_CATALOG_DIR', + 'BIBXML_BASE_PATH', ] def setUp(self): @@ -59,6 +60,7 @@ class BaseSubmitTestCase(TestCase): # old drafts may not be moved out of the way properly. self.saved_repository_path = settings.IDSUBMIT_REPOSITORY_PATH settings.IDSUBMIT_REPOSITORY_PATH = settings.INTERNET_DRAFT_PATH + os.mkdir(os.path.join(settings.BIBXML_BASE_PATH,'bibxml-ids')) def tearDown(self): settings.IDSUBMIT_REPOSITORY_PATH = self.saved_repository_path @@ -257,10 +259,14 @@ class SubmitTests(BaseSubmitTestCase): return confirmation_url def verify_bibxml_ids_creation(self, draft): - url = urlreverse('ietf.doc.views_doc.document_bibxml', kwargs=dict(name=draft.name, rev=draft.rev)) - r = self.client.get(url) - self.assertEqual(r.status_code, 200) - self.assertIn(draft.name, unicontent(r)) + # for name in (draft.name, draft.name[6:]): + # ref_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s.xml' % (name, )) + # self.assertTrue(os.path.exists(ref_file_name)) + # ref_rev_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s-%s.xml' % (name, draft.rev )) + # self.assertTrue(os.path.exists(ref_rev_file_name)) + ref_rev_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s-%s.xml' % (draft.name, draft.rev )) + self.assertTrue(os.path.exists(ref_rev_file_name)) + def submit_new_wg(self, formats): # submit new -> supply submitter info -> approve diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index 7015a3b04..9e9ef274c 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -453,12 +453,16 @@ def post_submission(request, submission, approved_doc_desc, approved_subm_desc): # Create bibxml-ids entry ref_text = '%s' % render_to_string('doc/bibxml.xml', {'name':draft.name, 'doc': draft, 'doc_bibtype':'I-D'}) - ref_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s.xml' % (draft.name[6:], )) - with io.open(ref_file_name, "w", encoding='utf-8') as f: - f.write(ref_text) - ref_rev_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s-%s.xml' % (draft.name[6:], draft.rev )) + # for name in (draft.name, draft.name[6:]): + # ref_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s.xml' % (name, )) + # with io.open(ref_file_name, "w", encoding='utf-8') as f: + # f.write(ref_text) + # ref_rev_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s-%s.xml' % (name, draft.rev )) + # with io.open(ref_rev_file_name, "w", encoding='utf-8') as f: + # f.write(ref_text) + ref_rev_file_name = os.path.join(os.path.join(settings.BIBXML_BASE_PATH, 'bibxml-ids'), 'reference.I-D.%s-%s.xml' % (draft.name, draft.rev )) with io.open(ref_rev_file_name, "w", encoding='utf-8') as f: - f.write(ref_text) + f.write(ref_text) log.log(f"{submission.name}: done")