[Enhancement] Allow Sidebar Menu record search using text from Item Name of a record (#10324)

* Search Record in Sidebar Menu Using Item Name for Order Page

* Test Case to create 2 Quotations with different Items
This commit is contained in:
Doridel Cahanap
2017-08-08 19:42:50 +08:00
committed by Nabin Hait
parent 53f0f62f1c
commit 96e52be5f1
2 changed files with 108 additions and 8 deletions

View File

@@ -18,8 +18,8 @@ def get_list_context(context=None):
"get_list": get_transaction_list
}
def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_page_length=20, order_by="modified"):
from frappe.www.list import get_list
user = frappe.session.user
key = None
@@ -45,16 +45,41 @@ def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_p
filters.append((doctype, key, "in", parties))
if key:
return post_process(doctype, get_list(doctype, txt,
filters=filters, fields = "name",
limit_start=limit_start, limit_page_length=limit_page_length,
ignore_permissions=True,
order_by = "modified desc"))
return post_process(doctype, get_list_for_transactions(doctype, txt,
filters=filters, fields="name",limit_start=limit_start,
limit_page_length=limit_page_length,ignore_permissions=True,
order_by="modified desc"))
else:
return []
return post_process(doctype, get_list(doctype, txt, filters, limit_start, limit_page_length,
fields="name", order_by = "modified desc"))
return post_process(doctype, get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length,
fields="name", order_by="modified desc"))
def get_list_for_transactions(doctype, txt, filters, limit_start, limit_page_length=20, ignore_permissions=False,fields=None, order_by=None):
from frappe.www.list import get_list
meta = frappe.get_meta(doctype)
data = []
or_filters = []
for d in get_list(doctype, txt, filters=filters, fields="name", limit_start=limit_start,
limit_page_length=limit_page_length, ignore_permissions=True, order_by="modified desc"):
data.append(d)
if txt:
if meta.get_field('items'):
if meta.get_field('items').options:
child_doctype = meta.get_field('items').options
for item in frappe.get_all(child_doctype, {"item_name": ['like', "%" + txt + "%"]}):
child = frappe.get_doc(child_doctype, item.name)
or_filters.append([doctype, "name", "=", child.parent])
if or_filters:
for r in frappe.get_list(doctype, fields=fields,filters=filters, or_filters=or_filters, limit_start=limit_start,
limit_page_length=limit_page_length, ignore_permissions=ignore_permissions,
order_by=order_by):
data.append(r)
return data
def get_party_details(customers, suppliers):
if customers: