From 4e95459410b7e711df2193e264c4f040f8b07770 Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Wed, 20 Dec 2017 11:53:27 +0530 Subject: [PATCH] set the desktop icon while saving the domain settings (#4657) * set the desktop icon while saving the domain settings * delete the custom icon only if the setup not complete --- frappe/core/doctype/domain/domain.py | 5 +++-- frappe/core/doctype/domain_settings/domain_settings.py | 5 ++++- frappe/desk/doctype/desktop_icon/desktop_icon.py | 10 ++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/frappe/core/doctype/domain/domain.py b/frappe/core/doctype/domain/domain.py index 1fe3a967c1..61869f8fe8 100644 --- a/frappe/core/doctype/domain/domain.py +++ b/frappe/core/doctype/domain/domain.py @@ -18,10 +18,11 @@ class Domain(Document): self.setup_roles() self.setup_properties() self.set_values() - if not int(frappe.db.get_single_value('System Settings', 'setup_complete') or 0): + # always set the desktop icons while changing the domain settings + self.setup_desktop_icons() + if not int(frappe.defaults.get_defaults().setup_complete or 0): # if setup not complete, setup desktop etc. self.setup_sidebar_items() - self.setup_desktop_icons() self.set_default_portal_role() if self.data.custom_fields: diff --git a/frappe/core/doctype/domain_settings/domain_settings.py b/frappe/core/doctype/domain_settings/domain_settings.py index ab3cfc38df..2ac9c716a7 100644 --- a/frappe/core/doctype/domain_settings/domain_settings.py +++ b/frappe/core/doctype/domain_settings/domain_settings.py @@ -15,7 +15,10 @@ class DomainSettings(Document): self.save() def on_update(self): - for d in self.active_domains: + for i, d in enumerate(self.active_domains): + # set the flag to update the the desktop icons of all domains + if i >= 1: + frappe.flags.keep_desktop_icons = True domain = frappe.get_doc('Domain', d.domain) domain.setup_domain() diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.py b/frappe/desk/doctype/desktop_icon/desktop_icon.py index 91de421e8f..6d5e2d6ab5 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.py +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.py @@ -196,11 +196,13 @@ def set_desktop_icons(visible_list, ignore_duplicate=True): if the desktop icon does not exist and the name is a DocType, then will create an icon for the doctype''' - # clear all custom - frappe.db.sql('delete from `tabDesktop Icon` where standard=0') + # clear all custom only if setup is not complete + if not int(frappe.defaults.get_defaults().setup_complete or 0): + frappe.db.sql('delete from `tabDesktop Icon` where standard=0') - # set all as blocked - frappe.db.sql('update `tabDesktop Icon` set blocked=0, hidden=1') + # set standard as blocked and hidden if setting first active domain + if not frappe.flags.keep_desktop_icons: + frappe.db.sql('update `tabDesktop Icon` set blocked=0, hidden=1 where standard=1') # set as visible if present, or add icon for module_name in visible_list: