From bf9e25e42ec61d3b8f27911a6028f1cb966113ff Mon Sep 17 00:00:00 2001 From: kakde-sandeep Date: Sat, 1 Feb 2025 20:10:46 +0530 Subject: [PATCH 1/6] fix: #538 --- crm/api/doc.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/crm/api/doc.py b/crm/api/doc.py index ad2cf99c..e0e68b05 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -372,9 +372,11 @@ def get_data( new_filters = filters.copy() new_filters.update({column_field: kc.get("name")}) - all_count = len( - frappe.get_list(doctype, filters=convert_filter_to_tuple(doctype, new_filters)) - ) + all_count = frappe.get_list( + doctype, + filters=convert_filter_to_tuple(doctype, new_filters), + fields="count(*) as count" + )[0].count kc["all_count"] = all_count kc["count"] = len(column_data) @@ -476,7 +478,9 @@ def get_data( "page_length_count": page_length_count, "is_default": is_default, "views": get_views(doctype), - "total_count": len(frappe.get_list(doctype, filters=filters)), + "total_count": frappe.get_list( + doctype, filters=filters, fields="count(*) as count" + )[0].count, "row_count": len(data), "form_script": get_form_script(doctype), "list_script": get_form_script(doctype, "List"), From e1feef71ff62bf483a977a9b60060a0407a4a381 Mon Sep 17 00:00:00 2001 From: kakde-sandeep Date: Sat, 1 Feb 2025 20:15:32 +0530 Subject: [PATCH 2/6] fix: indentation --- crm/api/doc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crm/api/doc.py b/crm/api/doc.py index e0e68b05..43b6ed52 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -479,8 +479,8 @@ def get_data( "is_default": is_default, "views": get_views(doctype), "total_count": frappe.get_list( - doctype, filters=filters, fields="count(*) as count" - )[0].count, + doctype, filters=filters, fields="count(*) as count" + )[0].count, "row_count": len(data), "form_script": get_form_script(doctype), "list_script": get_form_script(doctype, "List"), From 02e9c7bc75490f3308749a9d1478726e11cbdda4 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 26 Feb 2025 17:49:33 +0530 Subject: [PATCH 3/6] refactor: avoid use of reserved keywords --- crm/api/doc.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crm/api/doc.py b/crm/api/doc.py index 43b6ed52..9e12e998 100644 --- a/crm/api/doc.py +++ b/crm/api/doc.py @@ -375,8 +375,8 @@ def get_data( all_count = frappe.get_list( doctype, filters=convert_filter_to_tuple(doctype, new_filters), - fields="count(*) as count" - )[0].count + fields="count(*) as total_count" + )[0].total_count kc["all_count"] = all_count kc["count"] = len(column_data) @@ -479,8 +479,8 @@ def get_data( "is_default": is_default, "views": get_views(doctype), "total_count": frappe.get_list( - doctype, filters=filters, fields="count(*) as count" - )[0].count, + doctype, filters=filters, fields="count(*) as total_count" + )[0].total_count, "row_count": len(data), "form_script": get_form_script(doctype), "list_script": get_form_script(doctype, "List"), From 8da41608fd4cb306e535914e756e794d3e74fe28 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 26 Feb 2025 19:31:12 +0530 Subject: [PATCH 4/6] fix: restrict Table Multiselect in sidebar panel --- frontend/src/components/SidePanelLayoutEditor.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/SidePanelLayoutEditor.vue b/frontend/src/components/SidePanelLayoutEditor.vue index 7b277db7..3b7ab0a3 100644 --- a/frontend/src/components/SidePanelLayoutEditor.vue +++ b/frontend/src/components/SidePanelLayoutEditor.vue @@ -158,6 +158,7 @@ const props = defineProps({ const restrictedFieldTypes = [ 'Table', + 'Table MultiSelect', 'Geolocation', 'Attach', 'Attach Image', From d64c77aef0ecb7c5327d5b9062dedf3bac536deb Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 26 Feb 2025 19:31:59 +0530 Subject: [PATCH 5/6] feat: added Table MultiSelect Control --- .../Controls/TableMultiselectInput.vue | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 frontend/src/components/Controls/TableMultiselectInput.vue diff --git a/frontend/src/components/Controls/TableMultiselectInput.vue b/frontend/src/components/Controls/TableMultiselectInput.vue new file mode 100644 index 00000000..683a2cd0 --- /dev/null +++ b/frontend/src/components/Controls/TableMultiselectInput.vue @@ -0,0 +1,140 @@ + + + From aee5048cae993ef7eb33fdc46034c5d77cde83b1 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Wed, 26 Feb 2025 19:32:32 +0530 Subject: [PATCH 6/6] fix: added Table multiselect control in Field layout --- frontend/src/components/Controls/Link.vue | 4 ++-- frontend/src/components/Controls/MultiValueInput.vue | 1 - frontend/src/components/FieldLayout/Field.vue | 7 +++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/Controls/Link.vue b/frontend/src/components/Controls/Link.vue index e6cb4356..89a92cce 100644 --- a/frontend/src/components/Controls/Link.vue +++ b/frontend/src/components/Controls/Link.vue @@ -82,7 +82,7 @@ const props = defineProps({ required: true, }, filters: { - type: [Array, String], + type: [Array, Object, String], default: [], }, modelValue: { @@ -133,7 +133,7 @@ watchDebounced( const options = createResource({ url: 'frappe.desk.search.search_link', - cache: [props.doctype, text.value, props.hideMe], + cache: [props.doctype, text.value, props.hideMe, props.filters], method: 'POST', params: { txt: text.value, diff --git a/frontend/src/components/Controls/MultiValueInput.vue b/frontend/src/components/Controls/MultiValueInput.vue index 9574c378..43e3e11a 100644 --- a/frontend/src/components/Controls/MultiValueInput.vue +++ b/frontend/src/components/Controls/MultiValueInput.vue @@ -39,7 +39,6 @@