[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 033608eb11
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 <chs@odoo.com>
This commit is contained in:
Johan Demaret Rivarola
2019-05-09 15:47:20 +00:00
parent de3a4c2947
commit e11bacfe51
+38 -30
View File
@@ -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<steps.length; k++) {
if (steps[k].content === "add to SO") {