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,