summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/views/basic')
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js12
1 files changed, 7 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js
index 19500a0e442..d5f3c86cc8e 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -2087,13 +2087,15 @@ var BasicModel = AbstractModel.extend({
});
list.data.push(newGroup.id);
list.count += newGroup.count;
- var old_group = _.find(previousGroups, function (g) {
+ var oldGroup = _.find(previousGroups, function (g) {
return g.res_id === newGroup.res_id && g.value === newGroup.value;
});
- if (old_group) {
- newGroup.isOpen = old_group.isOpen;
- // copy the oldGroup data to keep 'isOpen' state of sub-groups
- newGroup.data = newGroup.isOpen ? old_group.data : [];
+ if (oldGroup) {
+ // restore the internal state of the group
+ _.extend(newGroup, _.pick(oldGroup, 'limit', 'isOpen', 'offset'));
+ // if open, also restore the oldGroup data to keep internal
+ // state of sub-groups
+ newGroup.data = oldGroup.isOpen ? oldGroup.data : [];
} else if (!newGroup.openGroupByDefault) {
newGroup.isOpen = false;
} else {