fix: teach ajax_select2_search_docs about rfcs (#6679)

This commit is contained in:
Robert Sparks 2023-11-21 15:33:44 -06:00 committed by GitHub
parent eb22d6a12f
commit 2137dd8491
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 35 additions and 9 deletions

View file

@ -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",

View file

@ -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')])

View file

@ -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),

View file

@ -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)

View file

@ -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

View file

@ -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>

View file

@ -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"