From e11bacfe512a3170f44d6d43646af914a9cf3b73 Mon Sep 17 00:00:00 2001 From: Johan Demaret Rivarola Date: Wed, 8 May 2019 08:41:42 +0000 Subject: [PATCH] [FIX] sale_stock: tour dependency on sale_management Creating a new database with only sale_stock installed will lead the boot_tests.js test to fail. That's because commit 033608eb11cff4b983038388e9cba5dd3e02ffac introduces an implicit dependency on a sale_management tour. This seems to be a mistake since sale_stock does not depend on sale_management. The tour only makes sense if both sale_stock and sale_management are installed though. That's why the additional steps will be run conditionally. After this commit, the extra steps will only be run when sale_management is installed. Technically, this is done by checking whether odoo._modules contains sale_management. opw-1964469 closes #33275 Signed-off-by: Christophe Simonis --- addons/sale_stock/static/src/js/tour.js | 68 ++++++++++++++----------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/addons/sale_stock/static/src/js/tour.js b/addons/sale_stock/static/src/js/tour.js index d27080305d5..cc64f95fecd 100644 --- a/addons/sale_stock/static/src/js/tour.js +++ b/addons/sale_stock/static/src/js/tour.js @@ -1,43 +1,51 @@ -odoo.define("sale_stock.tour", function (require) { +var deps = ['web_tour.tour']; + +if (_.contains(odoo._modules, 'sale_management')) { + deps.push('sale.product_configurator_tour'); + deps.push('sale.product_configurator_pricelist_tour'); +} + +odoo.define("sale_stock.tour", deps, function (require) { "use strict"; var tour = require('web_tour.tour'); - require('sale.tour'); - var quotation_product_selected_step_index = _.findIndex(tour.tours.sale_product_configurator_tour.steps, function (step) { - return (step.id === "quotation_product_selected"); - }); + if (_.has(odoo.__DEBUG__.services, 'sale.product_configurator_tour')) { + var quotation_product_selected_step_index = _.findIndex(tour.tours.sale_product_configurator_tour.steps, function (step) { + return (step.id === "quotation_product_selected"); + }); - tour.tours.sale_product_configurator_tour.steps[quotation_product_selected_step_index].run = function (actions) { - actions.auto(); - }; + tour.tours.sale_product_configurator_tour.steps[quotation_product_selected_step_index].run = function (actions) { + actions.auto(); + }; - tour.tours.sale_product_configurator_tour.steps.splice(quotation_product_selected_step_index+1, 0, { - trigger: ".o_dialog_warning + .modal-footer .btn-primary", - auto: true, - run: function (actions) { - actions.auto('.o_dialog_warning + .modal-footer .btn-primary'); - } - }, { - trigger: ".o_dialog_warning + .modal-footer .btn-primary", - auto: true, - run: function (actions) { - actions.auto('.o_dialog_warning + .modal-footer .btn-primary'); - } - }, { - trigger: "body:not(:has(.o_dialog_warning))", - auto: true, - in_modal: false, - run: function (actions) { - if ($('.modal-footer .btn-primary').length){ - actions.auto('.modal-footer .btn-primary'); + tour.tours.sale_product_configurator_tour.steps.splice(quotation_product_selected_step_index+1, 0, { + trigger: ".o_dialog_warning + .modal-footer .btn-primary", + auto: true, + run: function (actions) { + actions.auto('.o_dialog_warning + .modal-footer .btn-primary'); } - }, - }); + }, { + trigger: ".o_dialog_warning + .modal-footer .btn-primary", + auto: true, + run: function (actions) { + actions.auto('.o_dialog_warning + .modal-footer .btn-primary'); + } + }, { + trigger: "body:not(:has(.o_dialog_warning))", + auto: true, + in_modal: false, + run: function (actions) { + if ($('.modal-footer .btn-primary').length){ + actions.auto('.modal-footer .btn-primary'); + } + }, + }); + } // Check if sale_management is installed since sale_stock is adding an extra // step to add to SO (not enough inventory) - if ('sale.product_configurator_pricelist_tour' in odoo.__DEBUG__.services) { + if (_.has(odoo.__DEBUG__.services, 'sale.product_configurator_pricelist_tour')) { var steps = tour.tours.sale_product_configurator_pricelist_tour.steps; for (var k=0; k