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)