Skip to content

Commit 663113d

Browse files
committed
Previous IPR information in last call announcements could be incomplete. Use a better search for IPR declarations related to a document, and include the IPR information in the last call preview.
- Legacy-Id: 3084
1 parent 101fe5f commit 663113d

3 files changed

Lines changed: 20 additions & 18 deletions

File tree

ietf/idrfc/mails.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
from django.template.loader import render_to_string
77
from django.utils.html import strip_tags
88
from django.conf import settings
9+
from django.core.urlresolvers import reverse as urlreverse
910

1011
from ietf.utils.mail import send_mail, send_mail_text
1112
from ietf.idtracker.models import *
13+
from ietf.ipr.search import iprs_from_docs
1214

1315
def email_state_changed(request, doc, text):
1416
to = [x.strip() for x in doc.idinternal.state_change_notice_to.replace(';', ',').split(',')]
@@ -74,6 +76,13 @@ def generate_last_call_announcement(request, doc):
7476
d.filled_title = textwrap.fill(d.title, width=70, subsequent_indent=" " * 3)
7577
urls.append(settings.IDTRACKER_BASE_URL + d.idinternal.get_absolute_url())
7678

79+
iprs, docs = iprs_from_docs(docs)
80+
if iprs:
81+
ipr_links = [ urlreverse("ietf.ipr.views.show", kwargs=dict(ipr_id=i.ipr_id)) for i in iprs]
82+
ipr_links = [ settings.IDTRACKER_BASE_URL+url if not url.startswith("http") else url for url in ipr_links ]
83+
else:
84+
ipr_links = None
85+
7786
return render_to_string("idrfc/last_call_announcement.txt",
7887
dict(doc=doc,
7988
doc_url=settings.IDTRACKER_BASE_URL + doc.idinternal.get_absolute_url(),
@@ -84,6 +93,7 @@ def generate_last_call_announcement(request, doc):
8493
urls=urls,
8594
status=status,
8695
impl_report="Draft" in status or "Full" in status,
96+
ipr_links=ipr_links,
8797
)
8898
)
8999

ietf/idrfc/views_ballot.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from ietf.idtracker.models import *
1919
from ietf.iesg.models import *
2020
from ietf.ipr.models import IprDetail
21+
from ietf.ipr.search import iprs_from_docs
2122
from ietf.idrfc.mails import *
2223
from ietf.idrfc.utils import *
2324
from ietf.idrfc.lastcall import request_last_call
@@ -631,24 +632,6 @@ def make_last_call(request, name):
631632

632633
announcement = ballot.last_call_text
633634

634-
# why cut -4 off filename? a better question is probably why these
635-
# tables aren't linked together properly
636-
filename_fragment = doc.filename[:-4]
637-
iprs = IprDetail.objects.filter(title__icontains=filename_fragment)
638-
if iprs:
639-
links = [ urlreverse("ietf.ipr.views.show", kwargs=dict(ipr_id=i.ipr_id))
640-
for i in iprs]
641-
642-
links = [ settings.IDTRACKER_BASE_URL+url if not url.startswith("http") else url for url in links ]
643-
644-
announcement += "\n\n"
645-
announcement += "The following IPR Declarations may be related to this I-D:"
646-
announcement += "\n\n"
647-
announcement += "\n".join(links)
648-
else:
649-
announcement += "\n\n"
650-
announcement += "No IPR declarations have been submitted directly on this I-D."
651-
652635
if request.method == 'POST':
653636
form = MakeLastCallForm(request.POST)
654637
if form.is_valid():

ietf/templates/idrfc/last_call_announcement.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,13 @@ http://www.ietf.org/iesg/implementation.html
1919
{% endif %}
2020
IESG discussion can be tracked via
2121
{{ doc_url }}
22+
23+
{% if ipr_links %}
24+
The following IPR Declarations may be related to this I-D:
25+
26+
{% for link in ipr_links %} {{ link }}
27+
{% endfor %}
28+
{% else %}
29+
No IPR declarations have been submitted directly on this I-D.
30+
{% endif %}
2231
{% endautoescape %}

0 commit comments

Comments
 (0)