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 @@ - {% if doc.rev != latest_rev %} - - {% else %} - - {% endif %} + {% if doc.rev|charter_major_rev != latest_rev|charter_major_rev %} + + {% else %} + {% if doc.rev != latest_rev %} + {% if doc.rev|charter_minor_rev %} + + {% else %} + + {% endif %} + {% else %} + {% if doc.rev|charter_minor_rev and doc.rev|charter_major_rev != '00' %} + + {% else %} + + {% endif %} + {% endif %} + {% endif %}
The information below is for an old version of the documentThe information below is for an older {% if doc.rev|charter_minor_rev %}proposed{% else %}approved{% endif %} charterThe information below is for an older version of the current proposed rechartering effortThe information below is for the currently approved charter, but newer proposed charter text existsThe information below is for a proposed recharter. The current approved charter is version {{ doc.rev|charter_major_rev }}