diff --git a/ietf/ipr/search.py b/ietf/ipr/search.py index 479557842..2671d93d8 100644 --- a/ietf/ipr/search.py +++ b/ietf/ipr/search.py @@ -174,7 +174,15 @@ def search(request, type="", q="", id=""): # Search by title of IPR disclosure # IPR list with documents elif type == "ipr_title_search": - pass + iprs = IprDetail.objects.filter(title__icontains=q, status__in=[1,3]).order_by("-submitted_date", "-ipr_id") + count = iprs.count() + iprs = [ ipr for ipr in iprs if not ipr.updated_by.all() ] + # Some extra information, to help us render 'and' between the + # last two documents in a sequence + mark_last_doc(iprs) + return render("ipr/search_iprtitle_result.html", {"q": q, "iprs": iprs, "count": count }, + context_instance=RequestContext(request) ) + else: raise ValueError("Unexpected search type in IPR query: %s" % type) return django.http.HttpResponseRedirect(request.path) diff --git a/ietf/ipr/testurl.list b/ietf/ipr/testurl.list index 233011153..ea706a26a 100644 --- a/ietf/ipr/testurl.list +++ b/ietf/ipr/testurl.list @@ -10,22 +10,32 @@ 200 /ipr/search/ https://datatracker.ietf.org/public/ipr_search.cgi 302 /ipr/search/?option=document_search # incomplete argument set gives redirect + 200 /ipr/search/?document_search=mod&option=document_search https://datatracker.ietf.org/public/ipr_search.cgi?option=document_search&document_search=mod 200,sort /ipr/search/?id_document_tag=2220&option=document_search https://datatracker.ietf.org/public/ipr_search.cgi?option=document_search&id_document_tag=2220 + 200,sort /ipr/search/?rfc_search=1034&option=rfc_search https://datatracker.ietf.org/public/ipr_search.cgi?option=rfc_search&rfc_search=1034 # Loong result, RFC search 200 /ipr/search/?rfc_search=4444&option=rfc_search https://datatracker.ietf.org/public/ipr_search.cgi?option=rfc_search&rfc_search=4444 # Empty result, RFC search + 200 /ipr/search/?patent_search=nortel&option=patent_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_search&patent_search=nortel 200 /ipr/search/?patent_search=nortelxz&option=patent_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_search&patent_search=nortelxz # Empty result + 200,sort,ignore:quote /ipr/search/?wg_search=dnsext&option=wg_search https://datatracker.ietf.org/public/ipr_search.cgi?option=wg_search&wg_search=dnsext #200,sort,ignore:quote /ipr/search/?wg_search=aaa&option=wg_search https://datatracker.ietf.org/public/ipr_search.cgi?option=wg_search&wg_search=aaa # FIXME This fails, needs revisiting 200,sort,ignore:quote /ipr/search/?wg_search=acct&option=wg_search https://datatracker.ietf.org/public/ipr_search.cgi?option=wg_search&wg_search=acct # Empty result + 200,sort,ignore:quote /ipr/search/?option=title_search&title_search=AAA https://datatracker.ietf.org/public/ipr_search.cgi?option=title_search&title_search=AAA 200,sort,ignore:quote /ipr/search/?option=title_search&title_search=AAAxz https://datatracker.ietf.org/public/ipr_search.cgi?option=title_search&title_search=AAAxz # Empty result + 200,sort /ipr/search/?patent_info_search=123&option=patent_info_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_info_search&patent_info_search=123 200,sort /ipr/search/?patent_info_search=31415&option=patent_info_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_info_search&patent_info_search=31415 # Empty result + 200 /ipr/search/?patent_info_search=12&option=patent_info_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_info_search&patent_info_search=12 # Error: at least 3 characters 200 /ipr/search/?patent_info_search=abc&option=patent_info_search https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_info_search&patent_info_search=abc # Error: at least 1 digit +200 /ipr/search/?option=ipr_title_search&ipr_title_search=nortel https://datatracker.ietf.org/public/ipr_search.cgi?option=ipr_title_search&ipr_title_search=nortel +200 /ipr/search/?option=ipr_title_search&ipr_title_search=nortelxz https://datatracker.ietf.org/public/ipr_search.cgi?option=ipr_title_search&ipr_title_search=nortelxz # Empty result + 200 /ipr/about/ https://datatracker.ietf.org/public/ipr_disclosure.cgi 200 /ipr/2006/ diff --git a/ietf/templates/ipr/search_iprtitle_result.html b/ietf/templates/ipr/search_iprtitle_result.html new file mode 100644 index 000000000..fa892f304 --- /dev/null +++ b/ietf/templates/ipr/search_iprtitle_result.html @@ -0,0 +1,6 @@ +{% extends "ipr/search_result.html" %} +{% load ietf_filters %} +{% block search_header %}{% if not count %}Search result on {{ q }}{% else %}IPR Disclosure Title Search Result{% endif %}{% endblock %} +{% block intro_prefix %}IPR that{% endblock %} +{% block intro_suffix %}and has the string "{{ q }}" within the IPR disclosure title.{% endblock %} +{% block search_failed %}No IPR disclosures with the word(s) "{{ q }}" in the title have been submitted{% endblock %} diff --git a/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortel b/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortel new file mode 100644 index 000000000..4096717b7 --- /dev/null +++ b/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortel @@ -0,0 +1,12 @@ +--- https://datatracker.ietf.org/public/ipr_search.cgi?option=ipr_title_search&ipr_title_search=nortel ++++ /ipr/search/?option=ipr_title_search&ipr_title_search=nortel +@@ -211,2 +211,2 @@ +-IPR that has word(s) "nortel" in the title, and is not related to a +-specific IETF contribution. ++IPR that is not related to a specific IETF contribution. and has the ++string "nortel" within the IPR disclosure title. +@@ -217,2 +217,2 @@ +-IPR that has word(s) "nortel" in the title, and is not related to a +-specific IETF contribution. ++IPR that is not related to a specific IETF contribution. and has the ++string "nortel" within the IPR disclosure title. \ No newline at end of file diff --git a/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortelxz b/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortelxz new file mode 100644 index 000000000..492ee4fe6 --- /dev/null +++ b/test/diff/_ipr_search__option=ipr_title_search&ipr_title_search=nortelxz @@ -0,0 +1,10 @@ +--- https://datatracker.ietf.org/public/ipr_search.cgi?option=ipr_title_search&ipr_title_search=nortelxz ++++ /ipr/search/?option=ipr_title_search&ipr_title_search=nortelxz +@@ -2,3 +2,5 @@ +-Search result on "nortelxz" +-No IPR disclosures with the word(s)"nortelxz" in the title have been +-submitted. ++Search result on nortelxz ++No IPR disclosures with the word(s) "nortelxz" in the title have been ++submitted ++IPR Search Main Page IPR Disclosure Page \ No newline at end of file diff --git a/test/diff/_ipr_search__patent_info_search=12&option=patent_info_search b/test/diff/_ipr_search__patent_info_search=12&option=patent_info_search new file mode 100644 index 000000000..cead7c446 --- /dev/null +++ b/test/diff/_ipr_search__patent_info_search=12&option=patent_info_search @@ -0,0 +1,4 @@ +--- https://datatracker.ietf.org/public/ipr_search.cgi?option=patent_info_search&patent_info_search=12 ++++ /ipr/search/?patent_info_search=12&option=patent_info_search +@@ -4,1 +4,1 @@ +-Please send problem reports to ietf-action@ietf.org. \ No newline at end of file