diff --git a/ietf/doc/templatetags/ietf_filters.py b/ietf/doc/templatetags/ietf_filters.py index 0ae854fc3..efd200f8f 100644 --- a/ietf/doc/templatetags/ietf_filters.py +++ b/ietf/doc/templatetags/ietf_filters.py @@ -528,3 +528,12 @@ def rfcbis(s): def urlize(value): raise RuntimeError("Use linkify from textfilters instead of urlize") +@register.filter +@stringfilter +def charter_major_rev(rev): + return rev[:2] + +@register.filter +@stringfilter +def charter_minor_rev(rev): + return rev[3:5] diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py index 199053260..cf7e971aa 100644 --- a/ietf/doc/tests_charter.py +++ b/ietf/doc/tests_charter.py @@ -16,7 +16,7 @@ from django.urls import reverse as urlreverse import debug # pyflakes:ignore -from ietf.doc.factories import CharterFactory +from ietf.doc.factories import CharterFactory, NewRevisionDocEventFactory from ietf.doc.models import ( Document, State, BallotDocEvent, BallotType, NewRevisionDocEvent, TelechatDocEvent, WriteupDocEvent ) from ietf.doc.utils_charter import ( next_revision, default_review_text, default_action_text, @@ -30,6 +30,61 @@ from ietf.utils.test_utils import TestCase from ietf.utils.mail import outbox, empty_outbox, get_payload from ietf.utils.test_utils import login_testing_unauthorized +class ViewCharterTests(TestCase): + def test_view_revisions(self): + charter = CharterFactory() + e = NewRevisionDocEventFactory(doc=charter,rev="01") + charter.rev = e.rev + charter.save_with_history([e]) + e = NewRevisionDocEventFactory(doc=charter,rev="01-00") + charter.rev = e.rev + charter.save_with_history([e]) + e =NewRevisionDocEventFactory(doc=charter,rev="02") + charter.rev = e.rev + charter.save_with_history([e]) + e =NewRevisionDocEventFactory(doc=charter,rev="02-00") + charter.rev = e.rev + charter.save_with_history([e]) + e = NewRevisionDocEventFactory(doc=charter,rev="02-01") + charter.rev = e.rev + charter.save_with_history([e]) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertIn('The information below is for a proposed recharter. The current approved charter is',q('#message-row').text()) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name,'rev':'02-00'}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertIn('The information below is for an older version of the current proposed rechartering effort',q('#message-row').text()) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name,'rev':'02'}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertIn('The information below is for the currently approved charter, but newer proposed charter text exists',q('#message-row').text()) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name,'rev':'01-00'}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertIn('The information below is for an older proposed',q('#message-row').text()) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name,'rev':'01'}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertIn('The information below is for an older approved',q('#message-row').text()) + + e = NewRevisionDocEventFactory(doc=charter,rev="03") + charter.rev='03' + charter.save_with_history([e]) + + url = urlreverse('ietf.doc.views_doc.document_main',kwargs={'name':charter.name}) + r = self.client.get(url) + q = PyQuery(r.content) + self.assertEqual('',q('#message-row').text()) + + + class EditCharterTests(TestCase): def setUp(self): self.charter_dir = self.tempdir('charter') diff --git a/ietf/templates/doc/document_charter.html b/ietf/templates/doc/document_charter.html index fa8d532e7..60a4ff2df 100644 --- a/ietf/templates/doc/document_charter.html +++ b/ietf/templates/doc/document_charter.html @@ -23,11 +23,23 @@
The information below is for an old version of the document | - {% else %} -- {% endif %} + {% if doc.rev|charter_major_rev != latest_rev|charter_major_rev %} + | The information below is for an older {% if doc.rev|charter_minor_rev %}proposed{% else %}approved{% endif %} charter | + {% else %} + {% if doc.rev != latest_rev %} + {% if doc.rev|charter_minor_rev %} +The information below is for an older version of the current proposed rechartering effort | + {% else %} +The information below is for the currently approved charter, but newer proposed charter text exists | + {% endif %} + {% else %} + {% if doc.rev|charter_minor_rev and doc.rev|charter_major_rev != '00' %} +The information below is for a proposed recharter. The current approved charter is version {{ doc.rev|charter_major_rev }} | + {% else %} ++ {% endif %} + {% endif %} + {% endif %} |
---|