From 6ef8b8227c9aee6662945288de3ca6b223ca605d Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Fri, 20 Apr 2012 12:51:24 +0000 Subject: [PATCH] Fix bug in diff'ing charter revisions. - Legacy-Id: 4293 --- ietf/idrfc/views_doc.py | 3 ++- ietf/wgcharter/views.py | 31 ++++++++++++++++++------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/ietf/idrfc/views_doc.py b/ietf/idrfc/views_doc.py index e0dedf80b..1021e1271 100644 --- a/ietf/idrfc/views_doc.py +++ b/ietf/idrfc/views_doc.py @@ -177,7 +177,8 @@ def document_history(request, name): url = "" if name.startswith("charter"): - url = settings.CHARTER_TXT_URL + e.doc.name + e.rev + ".txt" + h = find_history_active_at(e.doc, e.time) + url = settings.CHARTER_TXT_URL + ("%s-%s.txt" % ((h or doc).canonical_name(), e.rev)) elif name.startswith("draft"): # rfcdiff tool has special support for IDs url = e.doc.name + "-" + e.rev diff --git a/ietf/wgcharter/views.py b/ietf/wgcharter/views.py index c7c67da8f..a000bc657 100644 --- a/ietf/wgcharter/views.py +++ b/ietf/wgcharter/views.py @@ -262,11 +262,9 @@ def submit(request, name): charter.rev = next_rev - e = DocEvent() - e.type = "new_revision" - e.by = login - e.doc = charter + e = NewRevisionDocEvent(doc=charter, by=login, type="new_revision") e.desc = "New version available: %s-%s.txt" % (charter.canonical_name(), charter.rev) + e.rev = charter.rev e.save() # Save file on disk @@ -465,6 +463,22 @@ def approve(request, name): close_open_ballots(charter, login) + # according to spec, 00-02 becomes 01, so copy file and record new revision + try: + old = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), charter.rev)) + new = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), next_approved_revision(charter.rev))) + shutil.copy(old, new) + except IOError: + raise Http404("Charter text %s" % filename) + + charter.rev = next_approved_revision(charter.rev) + + e = NewRevisionDocEvent(doc=charter, by=login, type="new_revision") + e.desc = "New version available: %s-%s.txt" % (charter.canonical_name(), charter.rev) + e.rev = charter.rev + e.save() + + # approve e = DocEvent(doc=charter, by=login) e.type = "iesg_approved" e.desc = "IESG has approved the charter" @@ -483,15 +497,6 @@ def approve(request, name): e = log_state_changed(request, charter, login, prev_charter_state) - # copy file - try: - old = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), charter.rev)) - new = os.path.join(charter.get_file_path(), '%s-%s.txt' % (charter.canonical_name(), next_approved_revision(charter.rev))) - shutil.copy(old, new) - except IOError: - raise Http404("Charter text %s" % filename) - - charter.rev = next_approved_revision(charter.rev) charter.time = e.time charter.save()