diff --git a/crm/api/doc.py b/crm/api/doc.py index 6e7738c6..6f337426 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -431,17 +431,24 @@ def get_list_data( "list_script": get_form_script(doctype, "List"), } - -def get_fields_meta(doctype): +@frappe.whitelist() +def get_fields_meta(doctype, restricted_fieldtypes=None, as_array=False): not_allowed_fieldtypes = [ "Tab Break", "Section Break", "Column Break", ] + if restricted_fieldtypes: + restricted_fieldtypes = frappe.parse_json(restricted_fieldtypes) + not_allowed_fieldtypes += restricted_fieldtypes + fields = frappe.get_meta(doctype).fields fields = [field for field in fields if field.fieldtype not in not_allowed_fieldtypes] + if as_array: + return fields + fields_meta = {} for field in fields: fields_meta[field.fieldname] = field diff --git a/frontend/src/components/Settings/FieldsLayout.vue b/frontend/src/components/Settings/FieldsLayout.vue index d43fbc93..66014571 100644 --- a/frontend/src/components/Settings/FieldsLayout.vue +++ b/frontend/src/components/Settings/FieldsLayout.vue @@ -38,7 +38,7 @@ class="flex flex-1 flex-col justify-between overflow-hidden" >
- +
@@ -75,7 +75,7 @@ function saveChanges() { let _sections = JSON.parse(JSON.stringify(sections.data)) _sections.forEach((section) => { if (!section.fields) return - section.fields = section.fields.map((field) => field.name) + section.fields = section.fields.map((field) => field.fieldname || field.name) }) loading.value = true call('crm.api.doc.save_fields_layout', { diff --git a/frontend/src/components/Settings/SidebarLayoutBuilder.vue b/frontend/src/components/Settings/SidebarLayoutBuilder.vue index 1c9fca02..643bea61 100644 --- a/frontend/src/components/Settings/SidebarLayoutBuilder.vue +++ b/frontend/src/components/Settings/SidebarLayoutBuilder.vue @@ -66,13 +66,33 @@ -