From 1ae0c0b83874c604e2dbc7b73030eee6b8c5d02d Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Sat, 19 Aug 2023 09:33:04 -0500 Subject: [PATCH] fix: follow became_rfc in ipr searches --- ietf/ipr/tests.py | 2 +- ietf/ipr/utils.py | 8 +++++++- ietf/ipr/views.py | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ietf/ipr/tests.py b/ietf/ipr/tests.py index a77cb9016..be90b7c6d 100644 --- a/ietf/ipr/tests.py +++ b/ietf/ipr/tests.py @@ -720,7 +720,7 @@ Subject: test 'iprdocrel_set-INITIAL_FORMS' : 0, 'iprdocrel_set-0-id': '', "iprdocrel_set-0-document": disclosure.docs.first().pk, - "iprdocrel_set-0-revisions": disclosure.docs.first().document.rev, + "iprdocrel_set-0-revisions": disclosure.docs.first().rev, 'holder_legal_name': disclosure.holder_legal_name, 'patent_number': patent_dict['Number'], 'patent_title': patent_dict['Title'], diff --git a/ietf/ipr/utils.py b/ietf/ipr/utils.py index 9ce7384d2..0d404534a 100644 --- a/ietf/ipr/utils.py +++ b/ietf/ipr/utils.py @@ -40,7 +40,7 @@ def iprs_from_docs(docs,**kwargs): iprdocrels += document.ipr(**kwargs) return list(set([i.disclosure for i in iprdocrels])) -def related_docs(doc, relationship=('replaces', 'obs')): +def related_docs(doc, relationship=('replaces', 'obs'), reverse_relationship=("became_rfc",)): """Returns list of related documents""" results = [doc] @@ -52,6 +52,12 @@ def related_docs(doc, relationship=('replaces', 'obs')): rel.target.relation = rel.relationship.revname results += [x.target for x in rels] + rev_rels = list(doc.all_relations_that(reverse_relationship)) + for rel in rev_rels: + rel.source.related = rel + rel.source.relation = rel.relationship.name + results += [x.source for x in rev_rels] + return list(set(results)) diff --git a/ietf/ipr/views.py b/ietf/ipr/views.py index dc96eec8b..f96f5c4e2 100644 --- a/ietf/ipr/views.py +++ b/ietf/ipr/views.py @@ -69,7 +69,7 @@ def get_document_emails(ipr): has been posted""" messages = [] for rel in ipr.iprdocrel_set.all(): - doc = rel.document.document + doc = rel.document if doc.type_id=="draft": doc_info = 'Internet-Draft entitled "{}" ({})'.format(doc.title,doc.name) @@ -716,7 +716,7 @@ def search(request): related += related_docs(doc) iprs = iprs_from_docs(list(set(docs+related)),states=states) docs = [ doc for doc in docs if doc.ipr() ] - docs = sorted(docs, key=lambda x: max([ipr.disclosure.time for ipr in x.document.ipr()]), reverse=True) + docs = sorted(docs, key=lambda x: max([ipr.disclosure.time for ipr in x.ipr()]), reverse=True) template = "ipr/search_wg_result.html" q = Group.objects.get(id=q).acronym # make acronym for use in template @@ -729,7 +729,7 @@ def search(request): related += related_docs(doc) iprs = iprs_from_docs(list(set(docs+related)),states=states) docs = [ doc for doc in docs if doc.ipr() ] - docs = sorted(docs, key=lambda x: max([ipr.disclosure.time for ipr in x.document.ipr()]), reverse=True) + docs = sorted(docs, key=lambda x: max([ipr.disclosure.time for ipr in x.ipr()]), reverse=True) template = "ipr/search_doctitle_result.html" # Search by title of IPR disclosure