perf: use get_value instead of get_cached_value
get_cached_value internally calls get_doc which is much slower than fetching a value from db
This commit is contained in:
parent
74276ef69b
commit
f760aa1de2
1 changed files with 8 additions and 8 deletions
|
|
@ -321,17 +321,17 @@ def get_additional_timeline_content(doctype, docname):
|
|||
return contents
|
||||
|
||||
def set_link_titles(doc):
|
||||
meta = frappe.get_meta(doc.doctype)
|
||||
link_titles = {}
|
||||
link_titles.update(get_title_values_for_link_and_dynamic_link_fields(meta, doc))
|
||||
link_titles.update(get_title_values_for_table_and_multiselect_fields(meta, doc))
|
||||
link_titles.update(get_title_values_for_link_and_dynamic_link_fields(doc))
|
||||
link_titles.update(get_title_values_for_table_and_multiselect_fields(doc))
|
||||
|
||||
send_link_titles(link_titles)
|
||||
|
||||
def get_title_values_for_link_and_dynamic_link_fields(meta, doc, link_fields=None):
|
||||
def get_title_values_for_link_and_dynamic_link_fields(doc, link_fields=None):
|
||||
link_titles = {}
|
||||
|
||||
if not link_fields:
|
||||
meta = frappe.get_meta(doc.doctype)
|
||||
link_fields = meta.get_link_fields() + meta.get_dynamic_link_fields()
|
||||
|
||||
for field in link_fields:
|
||||
|
|
@ -344,24 +344,24 @@ def get_title_values_for_link_and_dynamic_link_fields(meta, doc, link_fields=Non
|
|||
if not meta or not (meta.title_field and meta.show_title_field_in_link):
|
||||
continue
|
||||
|
||||
link_title = frappe.get_cached_value(doctype, doc.get(field.fieldname), meta.title_field)
|
||||
link_title = frappe.db.get_value(doctype, doc.get(field.fieldname), meta.title_field)
|
||||
link_titles.update({doctype + "::" + doc.get(field.fieldname): link_title})
|
||||
|
||||
return link_titles
|
||||
|
||||
def get_title_values_for_table_and_multiselect_fields(meta, doc, table_fields=None):
|
||||
def get_title_values_for_table_and_multiselect_fields(doc, table_fields=None):
|
||||
link_titles = {}
|
||||
|
||||
if not table_fields:
|
||||
meta = frappe.get_meta(doc.doctype)
|
||||
table_fields = meta.get_table_fields()
|
||||
|
||||
for field in table_fields:
|
||||
if not doc.get(field.fieldname):
|
||||
continue
|
||||
|
||||
_meta = frappe.get_meta(field.options)
|
||||
for value in doc.get(field.fieldname):
|
||||
link_titles.update(get_title_values_for_link_and_dynamic_link_fields(_meta, value))
|
||||
link_titles.update(get_title_values_for_link_and_dynamic_link_fields(value))
|
||||
|
||||
return link_titles
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue