diff options
Diffstat (limited to 'addons/web/static/src')
4 files changed, 16 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/abstract_renderer.js b/addons/web/static/src/js/views/abstract_renderer.js index e1ae3fe5370..b1e30ca29bd 100644 --- a/addons/web/static/src/js/views/abstract_renderer.js +++ b/addons/web/static/src/js/views/abstract_renderer.js @@ -161,7 +161,7 @@ return mvc.Renderer.extend({ * @see sampleDataTargets */ _suppressFocusableElements() { - if (!this.state.isSample) { + if (!this.state.isSample || this.isEmbedded) { return; } const rootEls = []; diff --git a/addons/web/static/src/js/views/abstract_renderer_owl.js b/addons/web/static/src/js/views/abstract_renderer_owl.js index 78e0c097854..0c97159e294 100644 --- a/addons/web/static/src/js/views/abstract_renderer_owl.js +++ b/addons/web/static/src/js/views/abstract_renderer_owl.js @@ -41,7 +41,7 @@ odoo.define('web.AbstractRendererOwl', function () { * @see sampleDataTargets */ _suppressFocusableElements() { - if (!this.props.isSample) { + if (!this.props.isSample || this.props.isEmbedded) { const disabledEls = this.el.querySelectorAll(`.o_sample_data_disabled`); disabledEls.forEach(el => el.classList.remove('o_sample_data_disabled')); return; diff --git a/addons/web/static/src/js/views/abstract_view.js b/addons/web/static/src/js/views/abstract_view.js index 96767858f79..ae572739c4e 100644 --- a/addons/web/static/src/js/views/abstract_view.js +++ b/addons/web/static/src/js/views/abstract_view.js @@ -95,6 +95,7 @@ var AbstractView = Factory.extend({ * @param {Array[]} [params.searchQuery.domain=[]] * @param {string[]} [params.searchQuery.groupBy=[]] * @param {Object} [params.userContext={}] + * @param {boolean} [params.useSampleModel] * @param {boolean} [params.withControlPanel=AbstractView.prototype.withControlPanel] * @param {boolean} [params.withSearchPanel=AbstractView.prototype.withSearchPanel] */ @@ -159,12 +160,16 @@ var AbstractView = Factory.extend({ res_ids: controllerState.resIds || params.ids || (currentId ? [currentId] : undefined), }; + const useSampleModel = 'useSampleModel' in params ? + params.useSampleModel : + !!(this.arch.attrs.sample && JSON.parse(this.arch.attrs.sample)); + this.modelParams = { fields: this.fields, modelName: params.modelName, - useSampleModel: !!(this.arch.attrs.sample && JSON.parse(this.arch.attrs.sample)) + useSampleModel, }; - if (this.modelParams.useSampleModel) { + if (useSampleModel) { this.modelParams.SampleModel = this.config.Model; } @@ -354,13 +359,14 @@ var AbstractView = Factory.extend({ * @param {string} [action.name] * @param {string} [action.res_model] * @param {string} [action.target] + * @param {boolean} [action.useSampleModel] * @returns {Object} */ _extractParamsFromAction: function (action) { action = action || {}; var context = action.context || {}; var inline = action.target === 'inline'; - return { + const params = { actionId: action.id || false, actionViews: action.views || [], activateDefaultFavorite: !context.active_id && !context.active_ids, @@ -378,6 +384,10 @@ var AbstractView = Factory.extend({ withSearchBar: inline ? false : this.withSearchBar, withSearchPanel: this.withSearchPanel, }; + if ('useSampleModel' in action) { + params.useSampleModel = action.useSampleModel; + } + return params; }, /** * Processes a fieldsView. In particular, parses its arch. diff --git a/addons/web/static/src/js/widgets/pie_chart.js b/addons/web/static/src/js/widgets/pie_chart.js index 7cfc3fdacce..f4254ff3501 100644 --- a/addons/web/static/src/js/widgets/pie_chart.js +++ b/addons/web/static/src/js/widgets/pie_chart.js @@ -45,6 +45,7 @@ var PieChart = Widget.extend({ withControlPanel: false, withSearchPanel: false, isEmbedded: true, + useSampleModel: record.isSample, mode: 'pie', }; this.subViewParams.searchQuery = { |
