From 046d30a63f376c648f674bed3aacda0b58e292fe Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Sun, 2 Jun 2024 00:23:48 +0530 Subject: [PATCH] feat: render, update and save group by field value on change of group by field --- .../crm_view_settings/crm_view_settings.py | 4 ++ frontend/src/components/GroupBy.vue | 59 +++++++++++++++---- frontend/src/components/ViewControls.vue | 19 ++++++ 3 files changed, 69 insertions(+), 13 deletions(-) diff --git a/crm/fcrm/doctype/crm_view_settings/crm_view_settings.py b/crm/fcrm/doctype/crm_view_settings/crm_view_settings.py index 56c959ea..f483c22c 100644 --- a/crm/fcrm/doctype/crm_view_settings/crm_view_settings.py +++ b/crm/fcrm/doctype/crm_view_settings/crm_view_settings.py @@ -35,6 +35,7 @@ def create(view): doc.load_default_columns = view.load_default_columns or False doc.filters = json.dumps(view.filters) doc.order_by = view.order_by + doc.group_by_field = view.group_by_field doc.columns = json.dumps(view.columns) doc.rows = json.dumps(view.rows) doc.insert() @@ -60,6 +61,7 @@ def update(view): doc.load_default_columns = view.load_default_columns or False doc.filters = json.dumps(filters) doc.order_by = view.order_by + doc.group_by_field = view.group_by_field doc.columns = json.dumps(columns) doc.rows = json.dumps(rows) doc.save() @@ -139,6 +141,7 @@ def create_or_update_default_view(view): doc.load_default_columns = view.load_default_columns or False doc.filters = json.dumps(filters) doc.order_by = view.order_by + doc.group_by_field = view.group_by_field doc.columns = json.dumps(columns) doc.rows = json.dumps(rows) doc.save() @@ -154,6 +157,7 @@ def create_or_update_default_view(view): doc.load_default_columns = view.load_default_columns or False doc.filters = json.dumps(filters) doc.order_by = view.order_by + doc.group_by_field = view.group_by_field doc.columns = json.dumps(columns) doc.rows = json.dumps(rows) doc.is_default = True diff --git a/frontend/src/components/GroupBy.vue b/frontend/src/components/GroupBy.vue index 4fcd24e8..701a0cba 100644 --- a/frontend/src/components/GroupBy.vue +++ b/frontend/src/components/GroupBy.vue @@ -1,7 +1,14 @@ diff --git a/frontend/src/components/ViewControls.vue b/frontend/src/components/ViewControls.vue index 653e3b12..0a059cb0 100644 --- a/frontend/src/components/ViewControls.vue +++ b/frontend/src/components/ViewControls.vue @@ -415,6 +415,7 @@ function getParams() { icon: _view.icon, filters: _view.filters, order_by: _view.order_by, + group_by_field: _view.group_by_field, columns: _view.columns, rows: _view.rows, route_name: _view.route_name, @@ -430,6 +431,7 @@ function getParams() { icon: '', filters: {}, order_by: 'modified desc', + group_by_field: 'owner', columns: '', rows: '', route_name: route.name, @@ -676,6 +678,21 @@ function updateSort(order_by) { } } +function updateGroupBy(group_by_field) { + viewUpdated.value = true + if (!defaultParams.value) { + defaultParams.value = getParams() + } + list.value.params = defaultParams.value + list.value.params.view.group_by_field = group_by_field + view.value.group_by_field = group_by_field + list.value.reload() + + if (!route.query.view) { + create_or_update_default_view() + } +} + function updateColumns(obj) { if (!obj) { obj = { @@ -727,6 +744,7 @@ function create_or_update_default_view() { name: view.value.name, filters: defaultParams.value.filters, order_by: defaultParams.value.order_by, + group_by_field: defaultParams.value.view.group_by_field, columns: defaultParams.value.columns, rows: defaultParams.value.rows, route_name: route.name, @@ -891,6 +909,7 @@ function saveView() { name: view.value.name, filters: defaultParams.value.filters, order_by: defaultParams.value.order_by, + group_by_field: defaultParams.value.view.group_by_field, columns: defaultParams.value.columns, rows: defaultParams.value.rows, route_name: route.name,