Skip to content

Commit

Permalink
feat: show link field title in sidebar filters if set (#26417)
Browse files Browse the repository at this point in the history
* feat: In sidebar filter link field show Title of Field if set (#26413)

* fix: test_list_view_child_table_filter_with_created_by_filter

* fix tests

* fix: formatting

* fix: formatting

* refactor: cleanup logic slightly, reduce code repetition

Respect value of show_title_field_in_link

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

---------

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
Co-authored-by: Akhil Narang <me@akhilnarang.dev>
  • Loading branch information
rareMaxim and akhilnarang committed May 15, 2024
1 parent 3a4dd9a commit 557293a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
16 changes: 14 additions & 2 deletions frappe/desk/listview.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,26 @@ 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}",
fields=["count(*) as count", f"`{field}` as name"],
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
2 changes: 2 additions & 0 deletions frappe/public/js/frappe/list/list_sidebar_group_by.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 557293a

Please sign in to comment.