From e03525efba89fcd0f559130b2b4ebe1ef6c5b73a Mon Sep 17 00:00:00 2001 From: Gursheen Kaur Anand <40693548+GursheenK@users.noreply.github.com> Date: Fri, 15 Sep 2023 15:06:51 +0530 Subject: [PATCH] fix: remove items linked to non-existing doctypes from portal settings (#22417) * fix: remove non-existing ref doctypes from portal settings * fix: use separate list to iterate --- frappe/website/doctype/portal_settings/portal_settings.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frappe/website/doctype/portal_settings/portal_settings.py b/frappe/website/doctype/portal_settings/portal_settings.py index 78c2b2d20d..b983548062 100644 --- a/frappe/website/doctype/portal_settings/portal_settings.py +++ b/frappe/website/doctype/portal_settings/portal_settings.py @@ -49,6 +49,7 @@ class PortalSettings(Document): dirty = True if dirty: + self.remove_deleted_doctype_items() self.save() def on_update(self): @@ -65,3 +66,9 @@ class PortalSettings(Document): # clears role based home pages frappe.clear_cache() + + def remove_deleted_doctype_items(self): + existing_doctypes = set(frappe.get_list("DocType", pluck="name")) + for menu_item in list(self.get("menu")): + if menu_item.reference_doctype not in existing_doctypes: + self.remove(menu_item)