diff --git a/frappe/desk/listview.py b/frappe/desk/listview.py index cc32e4ab063..843d8c695bc 100644 --- a/frappe/desk/listview.py +++ b/frappe/desk/listview.py @@ -60,10 +60,12 @@ def get_group_by_count(doctype: str, current_filters: str, field: str) -> list[d .run(as_dict=True) ) - if not frappe.get_meta(doctype).has_field(field) and not is_default_field(field): + meta = frappe.get_meta(doctype) + + if not meta.has_field(field) and not is_default_field(field): raise ValueError("Field does not belong to doctype") - return frappe.get_list( + data = frappe.get_list( doctype, filters=current_filters, group_by=f"`tab{doctype}`.{field}", @@ -71,3 +73,13 @@ def get_group_by_count(doctype: str, current_filters: str, field: str) -> list[d order_by="count desc", limit=50, ) + + # Add in title if it's a link field and `show_title_field_in_link` is set + if (field_meta := meta.get_field(field)) and field_meta.fieldtype == "Link": + link_meta = frappe.get_meta(field_meta.options) + if link_meta.show_title_field_in_link: + title_field = link_meta.get_title_field() + for item in data: + item.title = frappe.get_value(field_meta.options, item.name, title_field) + + return data diff --git a/frappe/public/js/frappe/list/list_sidebar_group_by.js b/frappe/public/js/frappe/list/list_sidebar_group_by.js index 8430b54678d..53f5406f4b5 100644 --- a/frappe/public/js/frappe/list/list_sidebar_group_by.js +++ b/frappe/public/js/frappe/list/list_sidebar_group_by.js @@ -221,6 +221,8 @@ frappe.views.ListGroupBy = class ListGroupBy { label = __("Me"); } else if (fieldtype && fieldtype == "Check") { label = field.name == "0" ? __("No") : __("Yes"); + } else if (fieldtype && fieldtype == "Link" && field.title) { + label = __(field.title); } else { label = __(field.name); }