From 3e1504beeae2e0542fad65f077a6f89692ca8b20 Mon Sep 17 00:00:00 2001 From: sokumon Date: Sun, 1 Feb 2026 02:25:14 +0530 Subject: [PATCH] fix: don't show duplicate icons --- .../desk/doctype/desktop_icon/desktop_icon.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) 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)