diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.py b/frappe/desk/doctype/desktop_icon/desktop_icon.py index 84e0e9b55f..b2900cd543 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.py +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.py @@ -165,11 +165,22 @@ def get_desktop_icons(user=None, bootinfo=None): "icon_image", ] - standard_icons = frappe.get_all("Desktop Icon", fields=fields, filters={"standard": 1}) - user_icons = frappe.get_all( - "Desktop Icon", fields=fields, filters=[["standard", "=", 0], "or", ["owner", "=", user]] - ) - user_icons = user_icons + standard_icons + from frappe.query_builder import DocType + + DesktopIcon = DocType("Desktop Icon") + + user_icons = ( + frappe.qb.from_(DesktopIcon) + .select(*fields) + .where( + (DesktopIcon.standard == 1) + | ( + (DesktopIcon.standard == 0) + & (DesktopIcon.owner.isin(["Administrator", frappe.session.user])) + ) + ) + .distinct() + ).run(as_dict=True) # sort by idx user_icons.sort(key=lambda a: a.idx)