diff options
| author | qsm-odoo <qsm@odoo.com> | 2019-02-04 14:45:16 +0000 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2019-02-05 11:39:11 +0000 |
| commit | b6db6b878c5d329c19262d829e13726c3a3a1d25 (patch) | |
| tree | fd49fff13e186b91f88b287a99e114adaa8a406d | |
| parent | 99499589eafb9c05236eb47553c1d723573c1b70 (diff) | |
[REF] website, *: remove 'website.context' module
* website_forum, website_gengo, website_mail_channel, website_sale
Retrieving the global context is now the root's job, this will prevent
problems when trying to extend the values the context has.
See upcoming improvements with https://github.com/odoo/odoo/pull/29442
closes odoo/odoo#30816
| -rw-r--r-- | addons/website/static/src/js/content/context.js | 25 | ||||
| -rw-r--r-- | addons/website/static/src/js/content/snippets.animation.js | 17 | ||||
| -rw-r--r-- | addons/website/static/src/js/content/website_root.js | 55 | ||||
| -rw-r--r-- | addons/website/static/src/js/editor/editor_menu.js | 11 | ||||
| -rw-r--r-- | addons/website/static/src/js/editor/editor_menu_translate.js | 15 | ||||
| -rw-r--r-- | addons/website/static/src/js/menu/content.js | 22 | ||||
| -rw-r--r-- | addons/website/static/src/js/menu/edit.js | 10 | ||||
| -rw-r--r-- | addons/website/static/src/js/menu/seo.js | 19 | ||||
| -rw-r--r-- | addons/website/static/src/js/menu/translate.js | 20 | ||||
| -rw-r--r-- | addons/website/static/src/js/widgets/ace.js | 8 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 1 | ||||
| -rw-r--r-- | addons/website_forum/static/src/js/website_forum.js | 3 | ||||
| -rw-r--r-- | addons/website_gengo/static/src/js/website_gengo.js | 37 | ||||
| -rw-r--r-- | addons/website_mail_channel/static/src/js/website_mail_channel.editor.js | 13 | ||||
| -rw-r--r-- | addons/website_sale/static/src/js/website_sale_options.js | 5 |
15 files changed, 176 insertions, 85 deletions
diff --git a/addons/website/static/src/js/content/context.js b/addons/website/static/src/js/content/context.js deleted file mode 100644 index 671ad345e65..00000000000 --- a/addons/website/static/src/js/content/context.js +++ /dev/null @@ -1,25 +0,0 @@ -odoo.define('website.context', function (require) { -'use strict'; - -function getContext(context) { - var html = document.documentElement; - return _.extend({ - lang: (html.getAttribute('lang') || 'en_US').replace('-', '_'), - website_id: html.getAttribute('data-website-id') | 0, - }, context || {}); -} - -function getExtraContext(context) { - var html = document.documentElement; - return _.extend(getContext(), { - editable: !!(html.dataset.editable || $('[data-oe-model]').length), // temporary hack, this should be done in python - translatable: !!html.dataset.translatable, - edit_translations: !!html.dataset.edit_translations, - }, context || {}); -} - -return { - get: getContext, - getExtra: getExtraContext, -}; -}); diff --git a/addons/website/static/src/js/content/snippets.animation.js b/addons/website/static/src/js/content/snippets.animation.js index d2a653b0837..2c322012d1c 100644 --- a/addons/website/static/src/js/content/snippets.animation.js +++ b/addons/website/static/src/js/content/snippets.animation.js @@ -487,6 +487,23 @@ var Animation = Widget.extend({ new AnimationEffect(this, updateCallback, startEvents, $startTarget, options) ); }, + /** + * @private + * @param {boolean} [extra=false] + * @param {Object} [extraContext] + * @returns {Object} + */ + _getContext: function (extra, extraContext) { + var context; + this.trigger_up('context_get', { + extra: extra || false, + context: extraContext, + callback: function (ctx) { + context = ctx; + }, + }); + return context; + }, }); //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: diff --git a/addons/website/static/src/js/content/website_root.js b/addons/website/static/src/js/content/website_root.js index 0d89ae528a9..a665d4eba99 100644 --- a/addons/website/static/src/js/content/website_root.js +++ b/addons/website/static/src/js/content/website_root.js @@ -22,7 +22,6 @@ var ServiceProviderMixin = require('web.ServiceProviderMixin'); var session = require('web.session'); var utils = require('web.utils'); var rootWidget = require('web_editor.root_widget'); -var wContext = require('website.context'); var sAnimation = require('website.content.snippets.animation'); require("website.content.zoomodoo"); @@ -32,7 +31,11 @@ var websiteRootRegistry = new rootWidget.RootWidgetRegistry(); // Load localizations outside the WebsiteRoot to not wait for DOM ready (but // wait for them in WebsiteRoot) -var lang = utils.get_cookie('frontend_lang') || wContext.get().lang; // FIXME the cookie value should maybe be in the ctx? +function getLang() { + var html = document.documentElement; + return (html.getAttribute('lang') || 'en_US').replace('-', '_'); +} +var lang = utils.get_cookie('frontend_lang') || getLang(); // FIXME the cookie value should maybe be in the ctx? var localeDef = ajax.loadJS('/web/webclient/locale/' + lang.replace('-', '_')); /** @@ -53,6 +56,7 @@ var WebsiteRoot = rootWidget.RootWidget.extend(ServiceProviderMixin, { custom_events: _.extend({}, rootWidget.RootWidget.prototype.custom_events || {}, { animation_start_demand: '_onAnimationStartDemand', animation_stop_demand: '_onAnimationStopDemand', + context_get: '_onContextGet', main_object_request: '_onMainObjectRequest', ready_to_clean_for_save: '_onAnimationStopDemand', }), @@ -138,7 +142,7 @@ var WebsiteRoot = rootWidget.RootWidget.extend(ServiceProviderMixin, { if (_.str.startsWith(route, '/web/dataset/call_kw/')) { var params = ev.data.args[1]; var options = ev.data.args[2]; - params.kwargs.context = _.extend({}, wContext.get(), params.kwargs.context || {}); + params.kwargs.context = _.extend({}, this._getContext(), params.kwargs.context || {}); if (options) { params.kwargs.context = _.omit(params.kwargs.context, options.noContextKeys); ev.data.args[2] = _.omit(options, 'noContextKeys'); @@ -149,6 +153,38 @@ var WebsiteRoot = rootWidget.RootWidget.extend(ServiceProviderMixin, { return ServiceProviderMixin._call_service.apply(this, arguments); }, /** + * Retrieves the global context of the public environment. This is the + * context which is automatically added to each RPC. + * + * @private + * @param {Object} [context] + * @returns {Object} + */ + _getContext: function (context) { + var html = document.documentElement; + return _.extend({ + 'lang': getLang(), + 'website_id': html.getAttribute('data-website-id') | 0, + }, context || {}); + }, + /** + * Retrieves the global context of the public environment (as + * @see _getContext) but with extra informations that would be useless to + * send with each RPC. + * + * @private + * @param {Object} [context] + * @returns {Object} + */ + _getExtraContext: function (context) { + var html = document.documentElement; + return _.extend(this._getContext(), { + 'editable': !!(html.dataset.editable || $('[data-oe-model]').length), // temporary hack, this should be done in python + 'translatable': !!html.dataset.translatable, + 'edit_translations': !!html.dataset.edit_translations, + }, context || {}); + }, + /** * As the WebsiteRoot instance is designed to be unique, the associated * registry has been instantiated outside of the class and is simply * returned here. @@ -243,6 +279,19 @@ var WebsiteRoot = rootWidget.RootWidget.extend(ServiceProviderMixin, { this._stopAnimations(ev.data.$target); }, /** + * Called when someone asked for the global public context. + * + * @private + * @param {OdooEvent} ev + */ + _onContextGet: function (ev) { + if (ev.data.extra) { + ev.data.callback(this._getExtraContext(ev.data.context)); + } else { + ev.data.callback(this._getContext(ev.data.context)); + } + }, + /** * @todo review * @private */ diff --git a/addons/website/static/src/js/editor/editor_menu.js b/addons/website/static/src/js/editor/editor_menu.js index e1020b1d444..5d7621b91e3 100644 --- a/addons/website/static/src/js/editor/editor_menu.js +++ b/addons/website/static/src/js/editor/editor_menu.js @@ -4,7 +4,6 @@ odoo.define('website.editor.menu', function (require) { var Dialog = require('web.Dialog'); var Widget = require('web.Widget'); var core = require('web.core'); -var wContext = require('website.context'); var WysiwygMultizone = require('web_editor.wysiwyg.multizone'); var _t = core._t; @@ -147,12 +146,18 @@ var EditorMenu = Widget.extend({ * @private */ _wysiwygInstance: function () { + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); return new WysiwygMultizone(this, { snippets: 'website.snippets', recordInfo: { - context: wContext.get(), + context: context, data_res_model: 'website', - data_res_id: wContext.get().website_id, + data_res_id: context.website_id, } }); }, diff --git a/addons/website/static/src/js/editor/editor_menu_translate.js b/addons/website/static/src/js/editor/editor_menu_translate.js index 3009feab0d0..c52c5e140fc 100644 --- a/addons/website/static/src/js/editor/editor_menu_translate.js +++ b/addons/website/static/src/js/editor/editor_menu_translate.js @@ -5,15 +5,9 @@ require('web.dom_ready'); var core = require('web.core'); var Dialog = require('web.Dialog'); var localStorage = require('web.local_storage'); -var wContext = require('website.context'); var WysiwygTranslate = require('web_editor.wysiwyg.multizone.translate'); var EditorMenu = require('website.editor.menu'); -var lang = $('html').attr('lang').replace('-', '_'); -if ($('.js_change_lang[data-lang="' + lang + '"]').data('default-lang')) { - return $.Deferred().reject("It's the default language"); -} - var _t = core._t; var localStorageNoDialogKey = 'website_translator_nodialog'; @@ -95,10 +89,15 @@ var TranslatorMenu = EditorMenu.extend({ * @private */ _wysiwygInstance: function () { - return new WysiwygTranslate(this, {lang: lang || wContext.get().lang}); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); + return new WysiwygTranslate(this, {lang: context.lang}); }, }); return TranslatorMenu; - }); diff --git a/addons/website/static/src/js/menu/content.js b/addons/website/static/src/js/menu/content.js index a75ec82ba87..d3aa045920c 100644 --- a/addons/website/static/src/js/menu/content.js +++ b/addons/website/static/src/js/menu/content.js @@ -5,7 +5,6 @@ var Class = require('web.Class'); var core = require('web.core'); var Dialog = require('web.Dialog'); var time = require('web.time'); -var wContext = require('website.context'); var weWidgets = require('wysiwyg.widgets'); var websiteNavbarData = require('website.navbar'); var websiteRootData = require('website.WebsiteRoot'); @@ -195,7 +194,12 @@ var PagePropertiesDialog = weWidgets.Dialog.extend({ */ save: function (data) { var self = this; - var context = wContext.get(); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); var url = this.$('#page_url').val(); var $date_publish = this.$("#date_publish"); @@ -469,7 +473,12 @@ var EditMenuDialog = weWidgets.Dialog.extend({ willStart: function () { var defs = [this._super.apply(this, arguments)]; var self = this; - var context = wContext.get(); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); defs.push(this._rpc({ model: 'website.menu', method: 'get_tree', @@ -516,7 +525,12 @@ var EditMenuDialog = weWidgets.Dialog.extend({ var new_menu = this.$('.oe_menu_editor').nestedSortable('toArray', {startDepthCount: 0}); var levels = []; var data = []; - var context = wContext.get(); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); // Resequence, re-tree and remove useless data new_menu.forEach(function (menu) { if (menu.id) { diff --git a/addons/website/static/src/js/menu/edit.js b/addons/website/static/src/js/menu/edit.js index 4f49e55c2f5..c4b89b33abe 100644 --- a/addons/website/static/src/js/menu/edit.js +++ b/addons/website/static/src/js/menu/edit.js @@ -2,7 +2,6 @@ odoo.define('website.editMenu', function (require) { 'use strict'; var core = require('web.core'); -var wContext = require('website.context'); var EditorMenu = require('website.editor.menu'); var websiteNavbarData = require('website.navbar'); @@ -31,7 +30,14 @@ var EditPageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ */ init: function () { this._super.apply(this, arguments); - this._editorAutoStart = (wContext.getExtra().editable && window.location.search.indexOf('enable_editor') >= 0); + var context; + this.trigger_up('context_get', { + extra: true, + callback: function (ctx) { + context = ctx; + }, + }); + this._editorAutoStart = (context.editable && window.location.search.indexOf('enable_editor') >= 0); }, /** * Auto-starts the editor if necessary or add the welcome message otherwise. diff --git a/addons/website/static/src/js/menu/seo.js b/addons/website/static/src/js/menu/seo.js index 981d8e1ad75..425024539ec 100644 --- a/addons/website/static/src/js/menu/seo.js +++ b/addons/website/static/src/js/menu/seo.js @@ -7,7 +7,6 @@ var Dialog = require('web.Dialog'); var mixins = require('web.mixins'); var rpc = require('web.rpc'); var Widget = require('web.Widget'); -var wContext = require('website.context'); var weWidgets = require('wysiwyg.widgets'); var websiteNavbarData = require('website.navbar'); @@ -49,7 +48,13 @@ var SuggestionList = Widget.extend({ refresh: function () { var self = this; self.$el.append(_t("Loading...")); - var language = self.language || wContext.get().lang.toLowerCase(); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); + var language = self.language || context.lang.toLowerCase(); this._rpc({ route: '/website/seo_suggest', params: { @@ -475,14 +480,20 @@ var MetaKeywords = Widget.extend({ }, _getLanguages: function () { var self = this; + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); this._rpc({ model: 'website', method: 'get_languages', - args: [[wContext.get().website_id]], + args: [[context.website_id]], }).then( function (data) { self.$('#language-box').html(core.qweb.render('Configurator.language_promote', { 'language': data, - 'def_lang': wContext.get().lang + 'def_lang': context.lang })); }); }, diff --git a/addons/website/static/src/js/menu/translate.js b/addons/website/static/src/js/menu/translate.js index 90a60250355..a94d93d1d75 100644 --- a/addons/website/static/src/js/menu/translate.js +++ b/addons/website/static/src/js/menu/translate.js @@ -2,15 +2,9 @@ odoo.define('website.translateMenu', function (require) { 'use strict'; var utils = require('web.utils'); -var wContext = require('website.context'); var TranslatorMenu = require('website.editor.menu.translate'); var websiteNavbarData = require('website.navbar'); -var ctx = wContext.getExtra(); -if (!ctx.translatable) { - return; -} - var TranslatePageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ actions: _.extend({}, websiteNavbarData.WebsiteNavbar.prototype.actions || {}, { edit_master: '_goToMasterPage', @@ -21,7 +15,15 @@ var TranslatePageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ * @override */ start: function () { - if (ctx.edit_translations) { + var context; + this.trigger_up('context_get', { + extra: true, + callback: function (ctx) { + context = ctx; + }, + }); + this._mustEditTranslations = context.edit_translations; + if (this._mustEditTranslations) { this._startTranslateMode(); } return this._super.apply(this, arguments); @@ -63,7 +65,7 @@ var TranslatePageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ * @returns {Deferred} */ _startTranslateMode: function () { - if (!ctx.edit_translations) { + if (!this._mustEditTranslations) { window.location.search += '&edit_translations'; return $.Deferred(); } @@ -72,5 +74,5 @@ var TranslatePageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ }, }); -websiteNavbarData.websiteNavbarRegistry.add(TranslatePageMenu, '.o_menu_systray'); +websiteNavbarData.websiteNavbarRegistry.add(TranslatePageMenu, '.o_menu_systray:has([data-action="translate"])'); }); diff --git a/addons/website/static/src/js/widgets/ace.js b/addons/website/static/src/js/widgets/ace.js index d3fde57d033..15df55e0c71 100644 --- a/addons/website/static/src/js/widgets/ace.js +++ b/addons/website/static/src/js/widgets/ace.js @@ -2,7 +2,6 @@ odoo.define("website.ace", function (require) { "use strict"; var AceEditor = require('web_editor.ace'); -var weContext = require('website.context'); /** * Extends the default view editor so that the URL hash is updated with view ID @@ -45,7 +44,12 @@ var WebsiteAceEditor = AceEditor.extend({ // When saving a generic view, the view will be COW'd and // replace by the specific view after the reload. Thus the id in // URL won't exist anymore. We need to find the specific ID. - var context = weContext.get(); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); defs.push(this._rpc({ model: 'ir.ui.view', method: 'search_read', diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 4c9ecc55b53..d8d5b86b539 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -50,7 +50,6 @@ <script type="text/javascript" src="/website/static/src/js/utils.js"/> <script type="text/javascript" src="/website/static/src/js/website.js"/> - <script type="text/javascript" src="/website/static/src/js/content/context.js"/> <script type="text/javascript" src="/website/static/src/js/content/compatibility.js"/> <script type="text/javascript" src="/website/static/src/js/content/lazy_template_call.js"/> <script type="text/javascript" src="/website/static/src/js/content/menu.js"/> diff --git a/addons/website_forum/static/src/js/website_forum.js b/addons/website_forum/static/src/js/website_forum.js index 1791ac1a5c5..612704e42bf 100644 --- a/addons/website_forum/static/src/js/website_forum.js +++ b/addons/website_forum/static/src/js/website_forum.js @@ -2,7 +2,6 @@ odoo.define('website_forum.website_forum', function (require) { 'use strict'; var core = require('web.core'); -var wContext = require('website.context'); var Wysiwyg = require('web_editor.wysiwyg'); var sAnimations = require('website.content.snippets.animation'); var session = require('web.session'); @@ -138,7 +137,7 @@ sAnimations.registry.websiteForum = sAnimations.Class.extend({ toolbar: toolbar, styleWithSpan: false, recordInfo: { - context: wContext.get(), + context: self._getContext(), res_model: 'forum.post', res_id: +window.location.pathname.split('-').pop(), }, diff --git a/addons/website_gengo/static/src/js/website_gengo.js b/addons/website_gengo/static/src/js/website_gengo.js index 03d9014b2b1..9db65555e83 100644 --- a/addons/website_gengo/static/src/js/website_gengo.js +++ b/addons/website_gengo/static/src/js/website_gengo.js @@ -5,20 +5,14 @@ var ajax = require('web.ajax'); var core = require('web.core'); var Dialog = require('web.Dialog'); var Widget = require('web.Widget'); -var wContext = require('website.context'); var WysiwygTranslate = require('web_editor.wysiwyg.multizone.translate'); var qweb = core.qweb; var _t = core._t; -if (!wContext.getExtra().edit_translations) { - // Temporary hack until the editor bar is moved to the web client - return; -} - -ajax.loadXML('/website_gengo/static/src/xml/website.gengo.xml', qweb); - WysiwygTranslate.include({ + xmlDependencies: (WysiwygTranslate.prototype.xmlDependencies || []) + .concat(['/website_gengo/static/src/xml/website.gengo.xml']), events: _.extend({}, WysiwygTranslate.prototype.events, { 'click a[data-action=translation_gengo_post]': 'translation_gengo_post', 'click a[data-action=translation_gengo_info]': 'translation_gengo_info', @@ -26,8 +20,14 @@ WysiwygTranslate.include({ start: function () { var def = this._super.apply(this, arguments); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); var gengo_langs = ["ar_SY","id_ID","nl_NL","fr_CA","pl_PL","zh_TW","sv_SE","ko_KR","pt_PT","en_US","ja_JP","es_ES","zh_CN","de_DE","fr_FR","fr_BE","ru_RU","it_IT","pt_BR","pt_BR","th_TH","nb_NO","ro_RO","tr_TR","bg_BG","da_DK","en_GB","el_GR","vi_VN","he_IL","hu_HU","fi_FI"]; - if (gengo_langs.indexOf(wContext.get().lang) >= 0) { + if (gengo_langs.indexOf(context.lang) >= 0) { this.$('.gengo_post,.gengo_wait,.gengo_inprogress,.gengo_info').remove(); this.$('button[data-action=save]') .after(qweb.render('website.ButtonGengoTranslator')); @@ -50,6 +50,12 @@ WysiwygTranslate.include({ $('[data-oe-translation-state="to_translate"], [data-oe-translation-state="None"]').each(function () { self.new_words += $(this).text().trim().replace(/ +/g," ").split(" ").length; }); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); ajax.jsonRpc('/website/check_gengo_set', 'call', { }).then(function (res) { var dialog; @@ -76,7 +82,7 @@ WysiwygTranslate.include({ }); ajax.jsonRpc('/website_gengo/set_translations', 'call', { 'data': trans, - 'lang': wContext.get().lang, + 'lang': context.lang, }).then(function () { ajax.jsonRpc('/website/post_gengo_jobs', 'call', {}); self._save(); @@ -98,9 +104,15 @@ WysiwygTranslate.include({ $('[data-oe-translation-state="translated"]').each(function () { translated_ids.push($(this).attr('data-oe-translation-id')); }); + var context; + this.trigger_up('context_get', { + callback: function (ctx) { + context = ctx; + }, + }); ajax.jsonRpc('/website/get_translated_length', 'call', { 'translated_ids': translated_ids, - 'lang': wContext.get().lang, + 'lang': context.lang, }).done(function (res){ var dialog = new GengoTranslatorStatisticDialog(res); dialog.appendTo($(document.body)); @@ -109,6 +121,7 @@ WysiwygTranslate.include({ }); var GengoTranslatorPostDialog = Widget.extend({ + xmlDependencies: ['/website_gengo/static/src/xml/website.gengo.xml'], events: { 'hidden.bs.modal': 'destroy', 'click button[data-action=service_level]': function () { @@ -126,6 +139,7 @@ var GengoTranslatorPostDialog = Widget.extend({ }); var GengoTranslatorStatisticDialog = Widget.extend({ + xmlDependencies: ['/website_gengo/static/src/xml/website.gengo.xml'], events: { 'hidden.bs.modal': 'destroy', }, @@ -150,6 +164,7 @@ var GengoTranslatorStatisticDialog = Widget.extend({ }); var GengoApiConfigDialog = Widget.extend({ + xmlDependencies: ['/website_gengo/static/src/xml/website.gengo.xml'], events: { 'hidden.bs.modal': 'destroy', 'click button[data-action=set_config]': 'set_config' diff --git a/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js b/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js index dfa25fe06e8..622451f2857 100644 --- a/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js +++ b/addons/website_mail_channel/static/src/js/website_mail_channel.editor.js @@ -2,8 +2,6 @@ odoo.define('website_mail_channel.editor', function (require) { 'use strict'; var core = require('web.core'); -var rpc = require('web.rpc'); -var wContext = require('website.context'); var options = require('web_editor.snippets.options'); var wUtils = require('website.utils'); @@ -17,12 +15,11 @@ options.registry.subscribe = options.Class.extend({ window_title: _t("Add a Subscribe Button"), select: _t("Discussion List"), init: function (field) { - return rpc.query({ - model: 'mail.channel', - method: 'name_search', - args: ['', [['public','=','public']]], - context: wContext.get(), // TODO use this._rpc - }); + return self._rpc({ + model: 'mail.channel', + method: 'name_search', + args: ['', [['public', '=', 'public']]], + }); }, }).then(function (mail_channel_id) { self.$target.attr("data-id", mail_channel_id); diff --git a/addons/website_sale/static/src/js/website_sale_options.js b/addons/website_sale/static/src/js/website_sale_options.js index 0f61f48454e..92f325c18be 100644 --- a/addons/website_sale/static/src/js/website_sale_options.js +++ b/addons/website_sale/static/src/js/website_sale_options.js @@ -4,7 +4,6 @@ odoo.define('website_sale_options.website_sale', function (require) { var core = require('web.core'); var _t = core._t; var OptionalProductsModal = require('sale.OptionalProductsModal'); -var wContext = require('website.context'); var sAnimations = require('website.content.snippets.animation'); var ProductConfiguratorMixin = require('sale.ProductConfiguratorMixin'); require('website_sale.website_sale'); @@ -86,7 +85,7 @@ sAnimations.registry.WebsiteSaleOptions = sAnimations.Class.extend(ProductConfig okButtonText: _t('Proceed to Checkout'), cancelButtonText: _t('Continue Shopping'), title: _t('Add to cart'), - context: wContext.get(), + context: self._getContext(), }).open(); self.optionalProductsModal.on('options_empty', null, self._onModalOptionsEmpty.bind(self)); @@ -172,7 +171,7 @@ sAnimations.registry.WebsiteSaleOptions = sAnimations.Class.extend(ProductConfig this.$form.ajaxSubmit({ url: '/shop/cart/update_option', data: { - lang: wContext.get().lang, + lang: this._getContext().lang, custom_values: customValues }, success: function (quantity) { |
