summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-01-17 20:49:36 +0100
committerChristophe Simonis <chs@odoo.com>2019-01-17 20:49:36 +0100
commit4aa153e65cf2995e3c109dab2958501e3911ff94 (patch)
treec8a8b6cab833200f78776589f67a0cb3f868ea2f /addons/web/static/src/js
parent83cc046e9a90e8592d0d47c7162ab7bd923621ba (diff)
parent19558129f0e2d5c9940f6fa95534840f8f025547 (diff)
[MERGE] forward port branch 11.0 up to 19558129f0e
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome/search_menus.js6
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js35
-rw-r--r--addons/web/static/src/js/widgets/model_field_selector.js1
3 files changed, 26 insertions, 16 deletions
diff --git a/addons/web/static/src/js/chrome/search_menus.js b/addons/web/static/src/js/chrome/search_menus.js
index e2b1c1bdcbd..054533f5c1b 100644
--- a/addons/web/static/src/js/chrome/search_menus.js
+++ b/addons/web/static/src/js/chrome/search_menus.js
@@ -191,6 +191,10 @@ return Widget.extend({
icon: 'fa-star',
field: {
get_context: function () {
+ var filterContext = filter.context;
+ if (typeof filter.context === 'string') {
+ filterContext = pyeval.eval('context', filter.context);
+ }
var sortParsed = JSON.parse(filter.sort || "[]");
var orderedBy = [];
_.each(sortParsed, function (sort) {
@@ -200,7 +204,7 @@ return Widget.extend({
});
});
- return _.defaults({}, filter.context, {orderedBy : orderedBy});
+ return _.defaults({}, filterContext, {orderedBy : orderedBy});
},
get_groupby: function () { return [filter.context]; },
get_domain: function () { return filter.domain; }
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index 54f469bbc19..c4590c1430b 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -208,7 +208,7 @@ var PivotModel = AbstractModel.extend({
return {has_data: false};
}
return {
- colGroupBys: this.data.main_col.groupbys,
+ colGroupBys: this.data.main_col.root.groupbys,
context: this.data.context,
domain: this.data.domain,
fields: this.fields,
@@ -217,7 +217,7 @@ var PivotModel = AbstractModel.extend({
mainColWidth: this.data.main_col.width,
measures: this.data.measures,
rows: !isRaw && this._computeRows(),
- rowGroupBys: this.data.main_row.groupbys,
+ rowGroupBys: this.data.main_row.root.groupbys,
sortedColumn: this.data.sorted_column,
};
},
@@ -283,22 +283,19 @@ var PivotModel = AbstractModel.extend({
return this._loadData();
}
- var old_row_root = this.data.main_row.root;
- var old_col_root = this.data.main_col.root;
+ var old_row = this.data.main_row;
+ var old_col = this.data.main_col;
return this._loadData().then(function () {
- var new_groupby_length;
if (!('groupBy' in params) && !('pivot_row_groupby' in (params.context || {}))) {
// we only update the row groupbys according to the old groupbys
// if we don't have the key 'groupBy' in params. In that case,
// we want to have the full open state for the groupbys.
- self._updateTree(old_row_root, self.data.main_row.root);
- new_groupby_length = self._getHeaderDepth(self.data.main_row.root) - 1;
- self.data.main_row.groupbys = old_row_root.groupbys.slice(0, new_groupby_length);
+ self._updateTree(old_row.root, self.data.main_row.root);
+ self._updateMainGroupBys(old_row, self.data.main_row);
}
- self._updateTree(old_col_root, self.data.main_col.root);
- new_groupby_length = self._getHeaderDepth(self.data.main_col.root) - 1;
- self.data.main_row.groupbys = old_row_root.groupbys.slice(0, new_groupby_length);
+ self._updateTree(old_col.root, self.data.main_col.root);
+ self._updateMainGroupBys(old_col, self.data.main_col);
});
},
/**
@@ -680,9 +677,6 @@ var PivotModel = AbstractModel.extend({
}
}
- this.data.main_row.groupbys = rowGroupBys;
- this.data.main_col.groupbys = colGroupBys;
-
main_row_header.other_root = main_col_header;
main_col_header.other_root = main_row_header;
@@ -752,6 +746,19 @@ var PivotModel = AbstractModel.extend({
}
},
/**
+ * Updates the groupBys that the main[row | col] holds
+ *
+ * @private
+ * @param {Object} old: The main abstract header before reload
+ * @param {Object} main: The main abstract header after reload
+ *
+ */
+ _updateMainGroupBys: function (old, main) {
+ var new_groupby_length = this._getHeaderDepth(main.root) - 1;
+ var new_groupby_list = old.root.groupbys.slice(0, new_groupby_length);
+ main.root.groupbys = new_groupby_list;
+ },
+ /**
* @param {Object} old_tree
* @param {Object} new_tree
*/
diff --git a/addons/web/static/src/js/widgets/model_field_selector.js b/addons/web/static/src/js/widgets/model_field_selector.js
index 81abfbe0d6c..414305f6f06 100644
--- a/addons/web/static/src/js/widgets/model_field_selector.js
+++ b/addons/web/static/src/js/widgets/model_field_selector.js
@@ -257,7 +257,6 @@ var ModelFieldSelector = Widget.extend({
if (this.dirty) {
this.dirty = false;
- this.pages = this.pages.slice(0, this.chain.length || 1);
this.trigger_up("field_chain_changed", {chain: this.chain});
}
},