Skip to content

Commit 2137dd8

Browse files
authored
fix: teach ajax_select2_search_docs about rfcs (ietf-tools#6679)
1 parent eb22d6a commit 2137dd8

7 files changed

Lines changed: 35 additions & 9 deletions

File tree

ietf/doc/forms.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ class AddDownrefForm(forms.Form):
137137
rfc = SearchableDocumentField(
138138
label="Referenced RFC",
139139
help_text="The RFC that is approved for downref",
140-
required=True)
140+
required=True,
141+
doc_type="rfc")
141142
drafts = SearchableDocumentsField(
142143
label="Internet-Drafts that makes the reference",
143144
help_text="The Internet-Drafts that approve the downref in their Last Call",

ietf/doc/tests.py

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,9 @@ def test_indexes(self):
421421
self.assertContains(r, draft.title)
422422

423423
def test_ajax_search_docs(self):
424-
draft = IndividualDraftFactory()
424+
draft = IndividualDraftFactory(name="draft-ietf-rfc1234bis")
425+
rfc = IndividualRfcFactory(rfc_number=1234)
425426

426-
# Document
427427
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
428428
"model_name": "document",
429429
"doc_type": "draft",
@@ -433,6 +433,28 @@ def test_ajax_search_docs(self):
433433
data = r.json()
434434
self.assertEqual(data[0]["id"], draft.pk)
435435

436+
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
437+
"model_name": "document",
438+
"doc_type": "rfc",
439+
})
440+
r = self.client.get(url, dict(q=rfc.name))
441+
self.assertEqual(r.status_code, 200)
442+
data = r.json()
443+
self.assertEqual(data[0]["id"], rfc.pk)
444+
445+
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
446+
"model_name": "document",
447+
"doc_type": "draft,rfc",
448+
})
449+
r = self.client.get(url, dict(q="1234"))
450+
self.assertEqual(r.status_code, 200)
451+
data = r.json()
452+
self.assertEqual(len(data), 2)
453+
pks = set([data[i]["id"] for i in range(2)])
454+
self.assertEqual(pks, set([rfc.pk, draft.pk]))
455+
456+
457+
436458
def test_recent_drafts(self):
437459
# Three drafts to show with various warnings
438460
drafts = WgDraftFactory.create_batch(3,states=[('draft','active'),('draft-iesg','ad-eval')])

ietf/doc/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
url(r'^all/?$', views_search.index_all_drafts),
9191
url(r'^active/?$', views_search.index_active_drafts),
9292
url(r'^recent/?$', views_search.recent_drafts),
93-
url(r'^select2search/(?P<model_name>document)/(?P<doc_type>draft)/$', views_search.ajax_select2_search_docs),
93+
url(r'^select2search/(?P<model_name>document)/(?P<doc_type>(draft|rfc|draft,rfc))/$', views_search.ajax_select2_search_docs),
9494
url(r'^ballots/irsg/$', views_ballot.irsg_ballot_status),
9595
url(r'^ballots/rsab/$', views_ballot.rsab_ballot_status),
9696

ietf/doc/views_search.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,10 @@ def ajax_select2_search_docs(request, model_name, doc_type): # TODO - remove mod
813813
if not q:
814814
objs = model.objects.none()
815815
else:
816-
qs = model.objects.filter(type=doc_type)
816+
if "," in doc_type:
817+
qs = model.objects.filter(type__in=[t.strip() for t in doc_type.split(',')])
818+
else:
819+
qs = model.objects.filter(type=doc_type)
817820

818821
for t in q:
819822
qs = qs.filter(name__icontains=t)

ietf/ipr/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def clean(self):
9595
return self.cleaned_data
9696

9797
class DraftForm(forms.ModelForm):
98-
document = SearchableDocumentField(label="I-D name/RFC number", required=True, doc_type="draft") # TODO - this needs to be an or, or the form needs modification
98+
document = SearchableDocumentField(label="I-D name/RFC number", required=True, doc_type="draft,rfc")
9999

100100
class Meta:
101101
model = IprDocRel

ietf/templates/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<label class="d-none d-md-block" aria-label="Document search">
6969
<input class="form-control select2-field search-select"
7070
id="navbar-doc-search"
71-
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
71+
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft,rfc' %}"
7272
type="text"
7373
data-placeholder="Document search">
7474
</label>

ietf/templates/doc/status_change/edit_related_rows.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
{% for rfc,choice_slug in form.relations.items %}
66
<div class="input-group mb-3">
77
<select class="form-control select2-field"
8-
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
8+
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='rfc' %}"
99
data-max-entries="1"
1010
data-width="resolve"
1111
data-result-key="text"
@@ -39,7 +39,7 @@
3939
id="new_relation_row_rfc"
4040
aria-label="Enter new affected RFC"
4141
class="form-control select2-field"
42-
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
42+
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='rfc' %}"
4343
data-result-key="text"
4444
data-max-entries="1"
4545
data-width="resolve"

0 commit comments

Comments
 (0)