From 7aa993b14b68e2fd3553ce598c26c53bc9f04b78 Mon Sep 17 00:00:00 2001 From: marination Date: Wed, 30 Oct 2019 18:33:44 +0530 Subject: [PATCH] fix: Fetching catched meta and removed description fetch from Search Fields Description is conditionally fetched and also used in WHERE clause, that is maintained. Improved naming --- erpnext/controllers/queries.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 02d0b12739a..db230033727 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -153,14 +153,17 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals conditions = [] #Get searchfields from meta and use in Item Link field query - meta = frappe.get_meta("Item") + meta = frappe.get_meta("Item", cached=True) searchfields = meta.get_search_fields() - fields = [f for f in searchfields if not f in ["name", "item_group", "description"]] - fields = ", ".join(fields) + if "description" in searchfields: + searchfields.remove("description") - searchfields = searchfields + [f for f in [searchfield or "name", "item_code", "item_group", "item_name"] - if not f in searchfields] + columns = [field for field in searchfields if not field in ["name", "item_group", "description"]] + columns = ", ".join(columns) + + searchfields = searchfields + [field for field in[searchfield or "name", "item_code", "item_group", "item_name"] + if not field in searchfields] searchfields = " or ".join([field + " like %(txt)s" for field in searchfields]) description_cond = '' @@ -174,7 +177,7 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals tabItem.item_group, if(length(tabItem.description) > 40, \ concat(substr(tabItem.description, 1, 40), "..."), description) as description, - {fields} + {columns} from tabItem where tabItem.docstatus < 2 and tabItem.has_variants=0 @@ -190,7 +193,7 @@ def item_query(doctype, txt, searchfield, start, page_len, filters, as_dict=Fals name, item_name limit %(start)s, %(page_len)s """.format( key=searchfield, - fields=fields, + columns=columns, scond=searchfields, fcond=get_filters_cond(doctype, filters, conditions).replace('%', '%%'), mcond=get_match_cond(doctype).replace('%', '%%'),