Skip to content

Commit 6ef8b82

Browse files
committed
Fix bug in diff'ing charter revisions.
- Legacy-Id: 4293
1 parent 0970082 commit 6ef8b82

2 files changed

Lines changed: 20 additions & 14 deletions

File tree

ietf/idrfc/views_doc.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,8 @@ def document_history(request, name):
177177

178178
url = ""
179179
if name.startswith("charter"):
180-
url = settings.CHARTER_TXT_URL + e.doc.name + e.rev + ".txt"
180+
h = find_history_active_at(e.doc, e.time)
181+
url = settings.CHARTER_TXT_URL + ("%s-%s.txt" % ((h or doc).canonical_name(), e.rev))
181182
elif name.startswith("draft"):
182183
# rfcdiff tool has special support for IDs
183184
url = e.doc.name + "-" + e.rev

ietf/wgcharter/views.py

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,9 @@ def submit(request, name):
262262

263263
charter.rev = next_rev
264264

265-
e = DocEvent()
266-
e.type = "new_revision"
267-
e.by = login
268-
e.doc = charter
265+
e = NewRevisionDocEvent(doc=charter, by=login, type="new_revision")
269266
e.desc = "New version available: <b>%s-%s.txt</b>" % (charter.canonical_name(), charter.rev)
267+
e.rev = charter.rev
270268
e.save()
271269

272270
# Save file on disk
@@ -465,6 +463,22 @@ def approve(request, name):
465463

466464
close_open_ballots(charter, login)
467465

466+
# according to spec, 00-02 becomes 01, so copy file and record new revision
467+
try:
468+
old = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), charter.rev))
469+
new = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), next_approved_revision(charter.rev)))
470+
shutil.copy(old, new)
471+
except IOError:
472+
raise Http404("Charter text %s" % filename)
473+
474+
charter.rev = next_approved_revision(charter.rev)
475+
476+
e = NewRevisionDocEvent(doc=charter, by=login, type="new_revision")
477+
e.desc = "New version available: <b>%s-%s.txt</b>" % (charter.canonical_name(), charter.rev)
478+
e.rev = charter.rev
479+
e.save()
480+
481+
# approve
468482
e = DocEvent(doc=charter, by=login)
469483
e.type = "iesg_approved"
470484
e.desc = "IESG has approved the charter"
@@ -483,15 +497,6 @@ def approve(request, name):
483497

484498
e = log_state_changed(request, charter, login, prev_charter_state)
485499

486-
# copy file
487-
try:
488-
old = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), charter.rev))
489-
new = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), next_approved_revision(charter.rev)))
490-
shutil.copy(old, new)
491-
except IOError:
492-
raise Http404("Charter text %s" % filename)
493-
494-
charter.rev = next_approved_revision(charter.rev)
495500
charter.time = e.time
496501
charter.save()
497502

0 commit comments

Comments
 (0)