diff --git a/crm/api/doc.py b/crm/api/doc.py index c1739280..91b72b52 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -194,6 +194,23 @@ def get_fields_layout(doctype: str, type: str): return sections or [] + +@frappe.whitelist() +def save_fields_layout(doctype: str, type: str, layout: str): + if frappe.db.exists("CRM Fields Layout", {"dt": doctype, "type": type}): + doc = frappe.get_doc("CRM Fields Layout", {"dt": doctype, "type": type}) + else: + doc = frappe.new_doc("CRM Fields Layout") + + doc.update({ + "dt": doctype, + "type": type, + "layout": layout, + }) + doc.save(ignore_permissions=True) + + return doc.layout + def get_fields_meta(DocField, doctype, allowed_fieldtypes, restricted_fields): parent = "parent" if DocField._table_name == "tabDocField" else "dt" return ( diff --git a/frontend/src/components/Settings/FieldsLayout.vue b/frontend/src/components/Settings/FieldsLayout.vue index 256c026f..b53642c2 100644 --- a/frontend/src/components/Settings/FieldsLayout.vue +++ b/frontend/src/components/Settings/FieldsLayout.vue @@ -1,12 +1,32 @@