fix: Include search fields in Project Link field query (#25505)
* fix: Include search fields in Project Link field query
* fix: add project_name to Project search fields
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index bc1ac5e..b31724f 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -292,11 +292,14 @@
cond = """(`tabProject`.customer = %s or
ifnull(`tabProject`.customer,"")="") and""" %(frappe.db.escape(filters.get("customer")))
- fields = get_fields("Project", ["name"])
+ fields = get_fields("Project", ["name", "project_name"])
+ searchfields = frappe.get_meta("Project").get_search_fields()
+ searchfields = " or ".join([field + " like %(txt)s" for field in searchfields])
return frappe.db.sql("""select {fields} from `tabProject`
- where `tabProject`.status not in ("Completed", "Cancelled")
- and {cond} `tabProject`.name like %(txt)s {match_cond}
+ where
+ `tabProject`.status not in ("Completed", "Cancelled")
+ and {cond} {match_cond} {scond}
order by
if(locate(%(_txt)s, name), locate(%(_txt)s, name), 99999),
idx desc,
@@ -304,6 +307,7 @@
limit {start}, {page_len}""".format(
fields=", ".join(['`tabProject`.{0}'.format(f) for f in fields]),
cond=cond,
+ scond=searchfields,
match_cond=get_match_cond(doctype),
start=start,
page_len=page_len), {