fix: teach ajax_select2_search_docs about rfcs (#6679)
This commit is contained in:
parent
eb22d6a12f
commit
2137dd8491
|
@ -137,7 +137,8 @@ class AddDownrefForm(forms.Form):
|
|||
rfc = SearchableDocumentField(
|
||||
label="Referenced RFC",
|
||||
help_text="The RFC that is approved for downref",
|
||||
required=True)
|
||||
required=True,
|
||||
doc_type="rfc")
|
||||
drafts = SearchableDocumentsField(
|
||||
label="Internet-Drafts that makes the reference",
|
||||
help_text="The Internet-Drafts that approve the downref in their Last Call",
|
||||
|
|
|
@ -421,9 +421,9 @@ class SearchTests(TestCase):
|
|||
self.assertContains(r, draft.title)
|
||||
|
||||
def test_ajax_search_docs(self):
|
||||
draft = IndividualDraftFactory()
|
||||
draft = IndividualDraftFactory(name="draft-ietf-rfc1234bis")
|
||||
rfc = IndividualRfcFactory(rfc_number=1234)
|
||||
|
||||
# Document
|
||||
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
|
||||
"model_name": "document",
|
||||
"doc_type": "draft",
|
||||
|
@ -433,6 +433,28 @@ class SearchTests(TestCase):
|
|||
data = r.json()
|
||||
self.assertEqual(data[0]["id"], draft.pk)
|
||||
|
||||
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
|
||||
"model_name": "document",
|
||||
"doc_type": "rfc",
|
||||
})
|
||||
r = self.client.get(url, dict(q=rfc.name))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = r.json()
|
||||
self.assertEqual(data[0]["id"], rfc.pk)
|
||||
|
||||
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
|
||||
"model_name": "document",
|
||||
"doc_type": "draft,rfc",
|
||||
})
|
||||
r = self.client.get(url, dict(q="1234"))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
data = r.json()
|
||||
self.assertEqual(len(data), 2)
|
||||
pks = set([data[i]["id"] for i in range(2)])
|
||||
self.assertEqual(pks, set([rfc.pk, draft.pk]))
|
||||
|
||||
|
||||
|
||||
def test_recent_drafts(self):
|
||||
# Three drafts to show with various warnings
|
||||
drafts = WgDraftFactory.create_batch(3,states=[('draft','active'),('draft-iesg','ad-eval')])
|
||||
|
|
|
@ -90,7 +90,7 @@ urlpatterns = [
|
|||
url(r'^all/?$', views_search.index_all_drafts),
|
||||
url(r'^active/?$', views_search.index_active_drafts),
|
||||
url(r'^recent/?$', views_search.recent_drafts),
|
||||
url(r'^select2search/(?P<model_name>document)/(?P<doc_type>draft)/$', views_search.ajax_select2_search_docs),
|
||||
url(r'^select2search/(?P<model_name>document)/(?P<doc_type>(draft|rfc|draft,rfc))/$', views_search.ajax_select2_search_docs),
|
||||
url(r'^ballots/irsg/$', views_ballot.irsg_ballot_status),
|
||||
url(r'^ballots/rsab/$', views_ballot.rsab_ballot_status),
|
||||
|
||||
|
|
|
@ -813,7 +813,10 @@ def ajax_select2_search_docs(request, model_name, doc_type): # TODO - remove mod
|
|||
if not q:
|
||||
objs = model.objects.none()
|
||||
else:
|
||||
qs = model.objects.filter(type=doc_type)
|
||||
if "," in doc_type:
|
||||
qs = model.objects.filter(type__in=[t.strip() for t in doc_type.split(',')])
|
||||
else:
|
||||
qs = model.objects.filter(type=doc_type)
|
||||
|
||||
for t in q:
|
||||
qs = qs.filter(name__icontains=t)
|
||||
|
|
|
@ -95,7 +95,7 @@ class AddEmailForm(forms.Form):
|
|||
return self.cleaned_data
|
||||
|
||||
class DraftForm(forms.ModelForm):
|
||||
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
|
||||
document = SearchableDocumentField(label="I-D name/RFC number", required=True, doc_type="draft,rfc")
|
||||
|
||||
class Meta:
|
||||
model = IprDocRel
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<label class="d-none d-md-block" aria-label="Document search">
|
||||
<input class="form-control select2-field search-select"
|
||||
id="navbar-doc-search"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft,rfc' %}"
|
||||
type="text"
|
||||
data-placeholder="Document search">
|
||||
</label>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% for rfc,choice_slug in form.relations.items %}
|
||||
<div class="input-group mb-3">
|
||||
<select class="form-control select2-field"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='rfc' %}"
|
||||
data-max-entries="1"
|
||||
data-width="resolve"
|
||||
data-result-key="text"
|
||||
|
@ -39,7 +39,7 @@
|
|||
id="new_relation_row_rfc"
|
||||
aria-label="Enter new affected RFC"
|
||||
class="form-control select2-field"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='draft' %}"
|
||||
data-select2-ajax-url="{% url 'ietf.doc.views_search.ajax_select2_search_docs' model_name='document' doc_type='rfc' %}"
|
||||
data-result-key="text"
|
||||
data-max-entries="1"
|
||||
data-width="resolve"
|
||||
|
|
Loading…
Reference in a new issue