" +
" " +
@@ -320,7 +320,7 @@ frappe.ui.form.ControlLink = class ControlLink extends frappe.ui.form.ControlDat
});
}
}
- me.$input.cache[doctype][term] = r.results;
+ me.$input.cache[doctype][term] = r.message;
me.awesomplete.list = me.$input.cache[doctype][term];
me.toggle_href(doctype);
},
diff --git a/frappe/public/js/frappe/form/link_selector.js b/frappe/public/js/frappe/form/link_selector.js
index 1040233b61..c3470fb967 100644
--- a/frappe/public/js/frappe/form/link_selector.js
+++ b/frappe/public/js/frappe/form/link_selector.js
@@ -86,14 +86,14 @@ frappe.ui.form.LinkSelector = class LinkSelector {
frappe.link_search(
this.doctype,
args,
- function (r) {
+ function (results) {
var parent = me.dialog.fields_dict.results.$wrapper;
if (args.start === 0) {
parent.empty();
}
- if (r.values.length) {
- for (const v of r.values) {
+ if (results.length) {
+ for (const v of results) {
var row = $(
repl(
'\
@@ -149,7 +149,7 @@ frappe.ui.form.LinkSelector = class LinkSelector {
}
var more_btn = me.dialog.fields_dict.more.$wrapper;
- if (r.values.length < me.page_length) {
+ if (results.length < me.page_length) {
more_btn.hide();
} else {
more_btn.show();
@@ -246,7 +246,7 @@ frappe.link_search = function (doctype, args, callback, btn) {
type: "GET",
args: args,
callback: function (r) {
- callback && callback(r);
+ callback && callback(r.message);
},
btn: btn,
});
diff --git a/frappe/public/js/frappe/form/multi_select_dialog.js b/frappe/public/js/frappe/form/multi_select_dialog.js
index 243f42f0ba..3d757c6aef 100644
--- a/frappe/public/js/frappe/form/multi_select_dialog.js
+++ b/frappe/public/js/frappe/form/multi_select_dialog.js
@@ -576,22 +576,22 @@ frappe.ui.form.MultiSelectDialog = class MultiSelectDialog {
no_spinner: true,
args: args,
});
- const more = res.values.length && res.values.length > this.page_length ? 1 : 0;
+ const more = res.message.length && res.message.length > this.page_length ? 1 : 0;
- return [res, more];
+ return [res.message, more];
}
async get_results() {
const args = this.get_args_for_search();
- const [res, more] = await this.perform_search(args);
+ let [results, more] = await this.perform_search(args);
if (more) {
- res.values = res.values.splice(0, this.page_length);
+ results = results.splice(0, this.page_length);
}
this.results = [];
- if (res.values.length) {
- res.values.forEach((result) => {
+ if (results.length) {
+ results.forEach((result) => {
result.checked = 0;
this.results.push(result);
});
@@ -602,11 +602,11 @@ frappe.ui.form.MultiSelectDialog = class MultiSelectDialog {
async get_filtered_parents_for_child_search() {
const parent_search_args = this.get_args_for_search();
parent_search_args.filter_fields = ["name"];
- const [response, _] = await this.perform_search(parent_search_args);
+ const [results, _] = await this.perform_search(parent_search_args);
let parent_names = [];
- if (response.values.length) {
- parent_names = response.values.map((v) => v.name);
+ if (results.length) {
+ parent_names = results.map((v) => v.name);
}
return parent_names;
}
diff --git a/frappe/tests/test_search.py b/frappe/tests/test_search.py
index 422e2e01ad..cadd0d22bd 100644
--- a/frappe/tests/test_search.py
+++ b/frappe/tests/test_search.py
@@ -19,10 +19,10 @@ class TestSearch(FrappeTestCase):
self.addCleanup(teardown_test_link_field_order, self)
def test_search_field_sanitizer(self):
- # pass
- search_link("DocType", "User", query=None, filters=None, page_length=20, searchfield="name")
- result = frappe.response["results"][0]
- self.assertTrue("User" in result["value"])
+ results = search_link(
+ "DocType", "User", query=None, filters=None, page_length=20, searchfield="name"
+ )
+ self.assertTrue("User" in results[0]["value"])
# raise exception on injection
for searchfield in (
@@ -67,7 +67,7 @@ class TestSearch(FrappeTestCase):
def test_link_field_order(self):
# Making a request to the search_link with the tree doctype
- search_link(
+ results = search_link(
doctype=self.tree_doctype_name,
txt="all",
query=None,
@@ -75,20 +75,18 @@ class TestSearch(FrappeTestCase):
page_length=20,
searchfield=None,
)
- result = frappe.response["results"]
# Check whether the result is sorted or not
- self.assertEqual(self.parent_doctype_name, result[0]["value"])
+ self.assertEqual(self.parent_doctype_name, results[0]["value"])
# Check whether searching for parent also list out children
- self.assertEqual(len(result), len(self.child_doctypes_names) + 1)
+ self.assertEqual(len(results), len(self.child_doctypes_names) + 1)
# Search for the word "pay", part of the word "pays" (country) in french.
def test_link_search_in_foreign_language(self):
try:
frappe.local.lang = "fr"
- search_widget(doctype="DocType", txt="pay", page_length=20)
- output = frappe.response["values"]
+ output = search_widget(doctype="DocType", txt="pay", page_length=20)
result = [["found" for x in y if x == "Country"] for y in output]
self.assertTrue(["found"] in result)
@@ -155,12 +153,12 @@ class TestSearch(FrappeTestCase):
self.assertListEqual(frappe.call("frappe.tests.test_search.get_data", *args, **kwargs), [])
# should not fail if query has @ symbol in it
- search_link("User", "user@random", searchfield="name")
- self.assertListEqual(frappe.response["results"], [])
+ results = search_link("User", "user@random", searchfield="name")
+ self.assertListEqual(results, [])
def test_reference_doctype(self):
"""search query methods should get reference_doctype if they want"""
- results = test_search(
+ results = search_link(
doctype="User",
txt="",
filters=None,
@@ -171,7 +169,7 @@ class TestSearch(FrappeTestCase):
self.assertListEqual(results, [])
def test_search_relevance(self):
- search = partial(test_search, doctype="Language", filters=None, page_length=10)
+ search = partial(search_link, doctype="Language", filters=None, page_length=10)
for row in search(txt="e"):
self.assertTrue(row["value"].startswith("e"))
@@ -183,11 +181,6 @@ class TestSearch(FrappeTestCase):
self.assertEqual("es", search(txt="es")[0]["value"])
-def test_search(*args, **kwargs):
- search_link(*args, **kwargs)
- return frappe.response["results"]
-
-
@frappe.validate_and_sanitize_search_inputs
def get_data(doctype, txt, searchfield, start, page_len, filters):
return [doctype, txt, searchfield, start, page_len, filters]