summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/pivot
diff options
context:
space:
mode:
authorJérémy Hennecart <jeh@odoo.com>2020-06-19 07:06:31 +0000
committerAaron Bohy <aab@odoo.com>2020-06-22 13:04:01 +0000
commitc7964657ecbbad278cec73cf231d7eef55b44347 (patch)
treebe77532a80cbed1283c2062cb2dc1159aa0fbdd4 /addons/web/static/src/js/views/pivot
parent96fcefb6f1fe3fb5a5f197e2635e6d71d9a1d9dd (diff)
[IMP] web: add support of "sample" attribute in views
With this commit, it is now possible to display sample (fake) data in empty views, in the hope of easing user onboarding. This can be enabled (in list and kanban views) with attribute sample="1" on the arch root element. In this case, if there is no data to display, sample data will be generated based on heuristics (depending on field types and names). This can be used in addition to the no content helper. Task 2232801 X-original-commit: 7c8e627ff5029cb539d702705e5ce53d658c76ed Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: Jérémy Hennecart <jeh@odoo.com> Co-authored-by: Julien Mougenot <jum@odoo.com>
Diffstat (limited to 'addons/web/static/src/js/views/pivot')
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_controller.js3
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js6
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_view.js6
3 files changed, 10 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/pivot/pivot_controller.js b/addons/web/static/src/js/views/pivot/pivot_controller.js
index 3eeed181795..f1937655952 100644
--- a/addons/web/static/src/js/views/pivot/pivot_controller.js
+++ b/addons/web/static/src/js/views/pivot/pivot_controller.js
@@ -41,6 +41,7 @@ odoo.define('web.PivotController', function (require) {
init: function (parent, model, renderer, params) {
this._super(...arguments);
+ this.disableLinking = params.disableLinking;
this.measures = params.measures;
this.title = params.title;
// views to use in the action triggered when a data cell is clicked
@@ -273,7 +274,7 @@ odoo.define('web.PivotController', function (require) {
_onOpenView: function (ev) {
ev.stopPropagation();
const cell = ev.data;
- if (cell.value === undefined || this.initialState.disableLinking) {
+ if (cell.value === undefined || this.disableLinking) {
return;
}
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 d00f75f5079..ceb15f24018 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -497,7 +497,7 @@ var PivotModel = AbstractModel.extend({
* @param {boolean} [options.raw=false]
* @returns {Object}
*/
- get: function (options) {
+ __get: function (options) {
options = options || {};
var raw = options.raw || false;
var groupBys = this._getGroupBys();
@@ -546,7 +546,7 @@ var PivotModel = AbstractModel.extend({
* @param {Object} params.timeRanges
* @returns {Promise}
*/
- load: function (params) {
+ __load: function (params) {
this.initialDomain = params.domain;
this.initialRowGroupBys = params.context.pivot_row_groupby || params.rowGroupBys;
this.defaultGroupedBy = params.groupedBy;
@@ -592,7 +592,7 @@ var PivotModel = AbstractModel.extend({
* @param {Object} [params.timeRanges]
* @returns {Promise}
*/
- reload: function (handle, params) {
+ __reload: function (handle, params) {
var self = this;
var oldColGroupBys = this.data.colGroupBys;
var oldRowGroupBys = this.data.rowGroupBys;
diff --git a/addons/web/static/src/js/views/pivot/pivot_view.js b/addons/web/static/src/js/views/pivot/pivot_view.js
index 7ff00d1fb77..7c021d6e3c0 100644
--- a/addons/web/static/src/js/views/pivot/pivot_view.js
+++ b/addons/web/static/src/js/views/pivot/pivot_view.js
@@ -114,9 +114,13 @@ odoo.define('web.PivotView', function (require) {
this.loadParams.default_order = params.default_order || this.arch.attrs.default_order;
this.loadParams.groupableFields = groupableFields;
+ const disableLinking = !!(this.arch.attrs.disable_linking &&
+ JSON.stringify(this.arch.attrs.disable_linking));
+
this.rendererParams.widgets = widgets;
- this.rendererParams.disableLinking = this.arch.attrs.disable_linking;
+ this.rendererParams.disableLinking = disableLinking;
+ this.controllerParams.disableLinking = disableLinking;
this.controllerParams.title = params.title || this.arch.attrs.string || _t("Untitled");
this.controllerParams.measures = measures;