diff --git a/frappe/desk/doctype/custom_html_block/custom_html_block.py b/frappe/desk/doctype/custom_html_block/custom_html_block.py index 7f85c2db5f..2b65ceeaf4 100644 --- a/frappe/desk/doctype/custom_html_block/custom_html_block.py +++ b/frappe/desk/doctype/custom_html_block/custom_html_block.py @@ -1,9 +1,25 @@ # Copyright (c) 2023, Frappe Technologies and contributors # For license information, please see license.txt -# import frappe +import frappe from frappe.model.document import Document +from frappe.query_builder.utils import DocType class CustomHTMLBlock(Document): pass + + +@frappe.whitelist() +def get_custom_blocks_for_user(doctype, txt, searchfield, start, page_len, filters): + # return logged in users private blocks and all public blocks + customHTMLBlock = DocType("Custom HTML Block") + + condition_query = frappe.qb.get_query(customHTMLBlock) + + return ( + condition_query.select(customHTMLBlock.name).where( + (customHTMLBlock.private == 0) + | ((customHTMLBlock.owner == frappe.session.user) & (customHTMLBlock.private == 1)) + ) + ).run() diff --git a/frappe/public/js/frappe/widgets/widget_dialog.js b/frappe/public/js/frappe/widgets/widget_dialog.js index 4f200f390f..51138a7dc4 100644 --- a/frappe/public/js/frappe/widgets/widget_dialog.js +++ b/frappe/public/js/frappe/widgets/widget_dialog.js @@ -715,6 +715,11 @@ class CustomBlockDialog extends WidgetDialog { label: "Custom Block Name", options: "Custom HTML Block", reqd: 1, + get_query: () => { + return { + query: "frappe.desk.doctype.custom_html_block.custom_html_block.get_custom_blocks_for_user", + }; + }, }, ]; }