Call out downreferences in autogenerated last call text. Fixes #1982. Commit ready for merge.
- Legacy-Id: 11654
This commit is contained in:
parent
b0880b3499
commit
992aba1aec
|
@ -120,6 +120,7 @@ def generate_last_call_announcement(request, doc):
|
|||
else:
|
||||
ipr_links = None
|
||||
|
||||
downrefs = [rel for rel in doc.relateddocument_set.all() if rel.is_downref()]
|
||||
|
||||
addrs = gather_address_lists('last_call_issued',doc=doc).as_strings()
|
||||
mail = render_to_string("doc/mail/last_call_announcement.txt",
|
||||
|
@ -132,6 +133,7 @@ def generate_last_call_announcement(request, doc):
|
|||
docs=[ doc ],
|
||||
urls=[ settings.IDTRACKER_BASE_URL + doc.get_absolute_url() ],
|
||||
ipr_links=ipr_links,
|
||||
downrefs=downrefs,
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ from django.core.urlresolvers import reverse as urlreverse
|
|||
|
||||
from ietf.doc.models import ( Document, State, DocEvent, BallotDocEvent,
|
||||
BallotPositionDocEvent, LastCallDocEvent, WriteupDocEvent, TelechatDocEvent )
|
||||
from ietf.doc.factories import DocumentFactory
|
||||
from ietf.group.factories import GroupFactory
|
||||
from ietf.group.models import Group, Role
|
||||
from ietf.name.models import BallotPositionName
|
||||
from ietf.iesg.models import TelechatDate
|
||||
|
@ -713,3 +715,44 @@ class DeferUndeferTestCase(TestCase):
|
|||
|
||||
def setUp(self):
|
||||
make_test_data()
|
||||
|
||||
class RegenerateLastCallTestCase(TestCase):
|
||||
|
||||
def test_regenerate_last_call(self):
|
||||
group = GroupFactory(type_id='individ')
|
||||
draft = DocumentFactory.create(stream_id='ietf',group=group)
|
||||
draft.docalias_set.create(name=draft.name) # factory should do this
|
||||
draft.set_state(State.objects.get(type='draft',slug='active'))
|
||||
draft.set_state(State.objects.get(type='draft-iesg',slug='pub-req'))
|
||||
draft.intended_std_level_id='ps'
|
||||
draft.save()
|
||||
|
||||
url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.name))
|
||||
login_testing_unauthorized(self, "secretary", url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
r = self.client.post(url, dict(regenerate_last_call_text="1"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
lc_text = draft.latest_event(WriteupDocEvent, type="changed_last_call_text").text
|
||||
self.assertTrue("Subject: Last Call" in lc_text)
|
||||
self.assertFalse("contains normative down" in lc_text)
|
||||
|
||||
rfc = DocumentFactory.create(stream_id='ise')
|
||||
rfc.docalias_set.create(name=rfc.name)
|
||||
rfc_alias = rfc.docalias_set.create(name='rfc6666')
|
||||
rfc.set_state(State.objects.get(type='draft',slug='rfc'))
|
||||
rfc.set_state(State.objects.get(type='draft-iesg',slug='pub'))
|
||||
rfc.std_level_id='inf'
|
||||
rfc.save()
|
||||
|
||||
draft.relateddocument_set.create(target=rfc_alias,relationship_id='refnorm')
|
||||
|
||||
r = self.client.post(url, dict(regenerate_last_call_text="1"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
lc_text = draft.latest_event(WriteupDocEvent, type="changed_last_call_text").text
|
||||
self.assertTrue('contains these normative down' in lc_text)
|
||||
self.assertTrue('rfc6666' in lc_text)
|
||||
self.assertTrue('Independent Submission Editor stream' in lc_text)
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
{% if can_request_last_call and not need_intended_status %}
|
||||
<button type="submit" class="btn btn-primary" name="send_last_call_request" value="Save and Request Last Call">Save text & request last call</button>
|
||||
{% endif %}
|
||||
<button type="submit" class="btn btn-warning" name="regenerate_last_call_text" value="Gegenerate Last Call Text">Regenerate text</button>
|
||||
<button type="submit" class="btn btn-warning" name="regenerate_last_call_text" value="Regenerate Last Call Text">Regenerate text</button>
|
||||
{% if user|has_role:"Secretariat" and can_make_last_call %}
|
||||
<a class="btn btn-primary" href="{% url "doc_make_last_call" name=doc.name %}">Issue last call</a>
|
||||
{% endif %}
|
||||
|
|
|
@ -25,12 +25,17 @@ The file{{ urls|pluralize }} can be obtained via
|
|||
IESG discussion can be tracked via
|
||||
{{ doc_url }}
|
||||
|
||||
{% if ipr_links %}
|
||||
The following IPR Declarations may be related to this I-D:
|
||||
{% if ipr_links %}The following IPR Declarations may be related to this I-D:
|
||||
|
||||
{% for link in ipr_links %} {{ link }}
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
No IPR declarations have been submitted directly on this I-D.
|
||||
{% endif %}
|
||||
{% if downrefs %}
|
||||
The document contains these normative downward references.
|
||||
See RFC 3967 for additional information:
|
||||
{% for ref in downrefs %} {{ref.target.document.canonical_name}}: {{ref.target.document.title}} ({{ref.target.document.std_level}} - {{ref.target.document.stream.desc}})
|
||||
{% endfor %}Note that some of these references may already be listed in the acceptable Downref Registry.{%endif%}
|
||||
|
||||
{% endautoescape %}
|
||||
|
|
Loading…
Reference in a new issue