diff --git a/addons/account/static/tests/tours/account_dashboard_setup_bar_tests.js b/addons/account/static/tests/tours/account_dashboard_setup_bar_tests.js
index 0d11b027163..cdbe6c75339 100644
--- a/addons/account/static/tests/tours/account_dashboard_setup_bar_tests.js
+++ b/addons/account/static/tests/tours/account_dashboard_setup_bar_tests.js
@@ -20,7 +20,7 @@ odoo.define('account.dashboard.setup.tour', function (require) {
}, {
trigger: '.o_control_panel button:contains("' + _t('Print') + '")',
}, {
- trigger: '.o_control_panel .o_dropdown_menu a:contains("' + _t('Invoices without Payment') + '")',
+ trigger: '.o_control_panel .dropdown-menu a:contains("' + _t('Invoices without Payment') + '")',
}, {
trigger: 'iframe .o_report_layout_standard h2',
content: 'Primary color is correct',
diff --git a/addons/auth_totp/static/tests/totp_flow.js b/addons/auth_totp/static/tests/totp_flow.js
index 868be3db6a0..6f2f29ba7eb 100644
--- a/addons/auth_totp/static/tests/totp_flow.js
+++ b/addons/auth_totp/static/tests/totp_flow.js
@@ -161,7 +161,7 @@ tour.register('totp_login_device', {
run: 'click',
}, {
content: "click the Log out button",
- trigger: 'li[data-menu=logout] > a',
+ trigger: '.dropdown-item[data-menu=logout]',
}, {
content: "check that we're back on the login page or go to it",
trigger: 'input#login, a:contains(Log in)'
@@ -280,7 +280,7 @@ tour.register('totp_admin_disables', {
}
}, {
content: "Open Actions menu",
- trigger: 'button.o_dropdown_toggler:contains("Action")'
+ trigger: 'button.dropdown-toggle:contains("Action")'
}, {
content: "Select totp remover",
trigger: 'a.dropdown-item:contains(Disable two-factor authentication)'
diff --git a/addons/board/static/src/add_to_board/add_to_board.xml b/addons/board/static/src/add_to_board/add_to_board.xml
index 6419bd154af..98fdb8aad9b 100644
--- a/addons/board/static/src/add_to_board/add_to_board.xml
+++ b/addons/board/static/src/add_to_board/add_to_board.xml
@@ -4,12 +4,12 @@
Add to my dashboard
-
+
-
-
+
+
-
+
diff --git a/addons/board/static/tests/dashboard_tests.js b/addons/board/static/tests/dashboard_tests.js
index 7d2129d8a7f..8b05c697b55 100644
--- a/addons/board/static/tests/dashboard_tests.js
+++ b/addons/board/static/tests/dashboard_tests.js
@@ -7,6 +7,8 @@ odoo.define("board.dashboard_tests", function (require) {
var testUtils = require("web.test_utils");
var ListRenderer = require("web.ListRenderer");
var pyUtils = require("web.py_utils");
+ const { browser } = require("@web/core/browser/browser");
+ const { patchWithCleanup } = require("@web/../tests/helpers/utils");
const { registry } = require("@web/core/registry");
const { makeFakeUserService } = require("@web/../tests/helpers/mock_services");
const {
@@ -844,6 +846,7 @@ odoo.define("board.dashboard_tests", function (require) {
"partner,false,list": '
',
"partner,false,search": "",
};
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() });
const mockRPC = (route, args) => {
if (route === "/board/add_to_dashboard") {
@@ -895,9 +898,9 @@ odoo.define("board.dashboard_tests", function (require) {
// add this action to dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click($(".o_add_to_board button.o_dropdown_toggler"));
+ await testUtils.dom.triggerEvent($(".o_add_to_board button.dropdown-toggle"), "mouseenter");
await testUtils.fields.editInput($(".o_add_to_board input"), "a name");
- await testUtils.dom.click($(".o_add_to_board .o_dropdown_menu button"));
+ await testUtils.dom.click($(".o_add_to_board .dropdown-menu button"));
testUtils.mock.unpatch(ListController);
});
@@ -906,6 +909,7 @@ odoo.define("board.dashboard_tests", function (require) {
// the second search saved should not be influenced by the first
assert.expect(2);
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() });
serverData.views = {
"partner,false,list": '
',
"partner,false,search": "",
@@ -951,8 +955,8 @@ odoo.define("board.dashboard_tests", function (require) {
// Add it to dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click($(".o_add_to_board button.o_dropdown_toggler"));
- await testUtils.dom.click($(".o_add_to_board .o_dropdown_menu button"));
+ await testUtils.dom.triggerEvent($(".o_add_to_board button.dropdown-toggle"), "mouseenter");
+ await testUtils.dom.click($(".o_add_to_board .dropdown-menu button"));
// Remove it
await testUtils.dom.click(webClient.el.querySelector(".o_facet_remove"));
@@ -964,11 +968,12 @@ odoo.define("board.dashboard_tests", function (require) {
await applyFilter(webClient);
// Add it to dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click(
- webClient.el.querySelector(".o_add_to_board button.o_dropdown_toggler")
+ await testUtils.dom.triggerEvent(
+ webClient.el.querySelector(".o_add_to_board button.dropdown-toggle"),
+ "mouseenter"
);
await testUtils.dom.click(
- webClient.el.querySelector(".o_add_to_board .o_dropdown_menu button")
+ webClient.el.querySelector(".o_add_to_board .dropdown-menu button")
);
});
@@ -976,6 +981,7 @@ odoo.define("board.dashboard_tests", function (require) {
// View domains are to be added to the dashboard domain
assert.expect(1);
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() });
var view_domain = ["display_name", "ilike", "a"];
var filter_domain = ["display_name", "ilike", "b"];
@@ -1011,12 +1017,13 @@ odoo.define("board.dashboard_tests", function (require) {
await applyFilter(webClient);
// Add it to dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click(
- webClient.el.querySelector(".o_add_to_board button.o_dropdown_toggler")
+ await testUtils.dom.triggerEvent(
+ webClient.el.querySelector(".o_add_to_board button.dropdown-toggle"),
+ "mouseenter"
);
// add
await testUtils.dom.click(
- webClient.el.querySelector(".o_add_to_board .o_dropdown_menu button")
+ webClient.el.querySelector(".o_add_to_board .dropdown-menu button")
);
});
@@ -1255,7 +1262,7 @@ odoo.define("board.dashboard_tests", function (require) {
// add the view to the dashboard
await toggleFavoriteMenu(webClient);
- await testUtils.dom.click($(".o_add_to_board button.o_dropdown_toggler"));
+ await testUtils.dom.click($(".o_add_to_board button.dropdown-toggle"));
await testUtils.fields.editInput($(".o_add_to_board input"), "a name");
await testUtils.dom.click($(".o_add_to_board div button"));
diff --git a/addons/crm/static/tests/forecast_view_tests.js b/addons/crm/static/tests/forecast_view_tests.js
index 7d2992142e7..030adc9c560 100644
--- a/addons/crm/static/tests/forecast_view_tests.js
+++ b/addons/crm/static/tests/forecast_view_tests.js
@@ -7,7 +7,7 @@ import {
toggleFilterMenu,
toggleGroupByMenu,
toggleMenuItem,
- toggleMenuItemOption
+ toggleMenuItemOption,
} from "@web/../tests/search/helpers";
import { makeView } from "@web/../tests/views/helpers";
import { createWebClient, doAction } from "@web/../tests/webclient/helpers";
@@ -18,6 +18,7 @@ import AbstractModel from "web.AbstractModel";
import AbstractView from "web.AbstractView";
import { controlPanel as cpHelpers, mock } from "web.test_utils";
import legacyViewRegistry from "web.view_registry";
+import { browser } from "@web/core/browser/browser";
const patchDate = mock.patchDate;
@@ -72,6 +73,7 @@ QUnit.module("Views", (hooks) => {
QUnit.test("Forecast graph view", async function (assert) {
assert.expect(5);
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() });
const unpatchDate = patchDate(2021, 8, 16, 16, 54, 0);
const expectedDomains = [
@@ -167,6 +169,7 @@ QUnit.module("Views", (hooks) => {
async function (assert) {
assert.expect(16);
+ patchWithCleanup(browser, { setTimeout: (fn) => fn() });
const unpatchDate = patchDate(2021, 8, 16, 16, 54, 0);
const expectedDomains = [
diff --git a/addons/crm/static/tests/tours/crm_forecast_tour.js b/addons/crm/static/tests/tours/crm_forecast_tour.js
index df08fea7171..730c9c82ac0 100644
--- a/addons/crm/static/tests/tours/crm_forecast_tour.js
+++ b/addons/crm/static/tests/tours/crm_forecast_tour.js
@@ -11,11 +11,11 @@ tour.register('crm_forecast', {
trigger: ".o_app[data-menu-xmlid='crm.crm_menu_root']",
content: "open crm app",
}, {
- trigger: '.o_dropdown_toggler[data-menu-xmlid="crm.crm_menu_report"]',
+ trigger: '.dropdown-toggle[data-menu-xmlid="crm.crm_menu_report"]',
content: 'Open Reporting menu',
run: 'click',
}, {
- trigger: '.o_dropdown_item[data-menu-xmlid="crm.crm_menu_forecast"]',
+ trigger: '.dropdown-item[data-menu-xmlid="crm.crm_menu_forecast"]',
content: 'Open Forecast menu',
run: 'click',
}, {
diff --git a/addons/hr_expense/static/src/js/tours/hr_expense.js b/addons/hr_expense/static/src/js/tours/hr_expense.js
index b8200677c51..a2dffe7f4f0 100644
--- a/addons/hr_expense/static/src/js/tours/hr_expense.js
+++ b/addons/hr_expense/static/src/js/tours/hr_expense.js
@@ -35,7 +35,7 @@ tour.register('hr_expense_tour' , {
content: Markup(_t('Select expenses to submit them to your manager
')),
position: 'bottom'
}, {
- trigger: '.o_dropdown_toggler',
+ trigger: '.dropdown-toggle',
extra_trigger: ".o_expense_tree",
content: Markup(_t('Click on Action Create Report to submit selected expenses to your manager
')),
position: 'right',
diff --git a/addons/mail/static/src/components/messaging_menu/messaging_menu.scss b/addons/mail/static/src/components/messaging_menu/messaging_menu.scss
index ad9e3a144a3..3d48947cad9 100644
--- a/addons/mail/static/src/components/messaging_menu/messaging_menu.scss
+++ b/addons/mail/static/src/components/messaging_menu/messaging_menu.scss
@@ -107,7 +107,7 @@
// ------------------------------------------------------------------
// Make hightlight more consistent, due to messaging menu looking quite similar to discuss app in mobile
-.o_MessagingMenu.o-is-open {
+.o_MessagingMenu.show {
background-color: rgba($black, 0.1);
}
diff --git a/addons/mail/static/src/components/messaging_menu/messaging_menu.xml b/addons/mail/static/src/components/messaging_menu/messaging_menu.xml
index e9e56f7c906..66bafea4bad 100644
--- a/addons/mail/static/src/components/messaging_menu/messaging_menu.xml
+++ b/addons/mail/static/src/components/messaging_menu/messaging_menu.xml
@@ -2,8 +2,8 @@
-
-
+
diff --git a/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js b/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js
index f773ce7c05e..756c193a224 100644
--- a/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js
+++ b/addons/mail/static/src/components/messaging_menu/tests/messaging_menu_tests.js
@@ -201,7 +201,7 @@ QUnit.test('basic rendering', async function (assert) {
await afterNextRender(() => document.querySelector(`.o_MessagingMenu_toggler`).click());
assert.hasClass(
document.querySelector('.o_MessagingMenu'),
- "o-is-open",
+ "show",
"should mark messaging menu as opened"
);
assert.strictEqual(
@@ -280,7 +280,7 @@ QUnit.test('basic rendering', async function (assert) {
await afterNextRender(() => document.querySelector(`.o_MessagingMenu_toggler`).click());
assert.doesNotHaveClass(
document.querySelector('.o_MessagingMenu'),
- "o-is-open",
+ "show",
"should mark messaging menu as closed"
);
});
diff --git a/addons/mail/static/src/components/rtc_activity_notice/rtc_activity_notice.xml b/addons/mail/static/src/components/rtc_activity_notice/rtc_activity_notice.xml
index 5379d073179..81ea5e4a35c 100644
--- a/addons/mail/static/src/components/rtc_activity_notice/rtc_activity_notice.xml
+++ b/addons/mail/static/src/components/rtc_activity_notice/rtc_activity_notice.xml
@@ -2,7 +2,7 @@
-
+
@@ -19,7 +19,7 @@
-
+
diff --git a/addons/mail/static/src/widgets/rtc_activity_notice/rtc_activity_notice.xml b/addons/mail/static/src/widgets/rtc_activity_notice/rtc_activity_notice.xml
index c30a12bc03e..d5eb221310e 100644
--- a/addons/mail/static/src/widgets/rtc_activity_notice/rtc_activity_notice.xml
+++ b/addons/mail/static/src/widgets/rtc_activity_notice/rtc_activity_notice.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/addons/mail/static/src/xml/systray.xml b/addons/mail/static/src/xml/systray.xml
index 55a5c5c6614..ddfbee91c0c 100644
--- a/addons/mail/static/src/xml/systray.xml
+++ b/addons/mail/static/src/xml/systray.xml
@@ -49,13 +49,13 @@
-
-
+
diff --git a/addons/mail/static/tests/activity_tests.js b/addons/mail/static/tests/activity_tests.js
index 7d41db1da5b..780fab2a5d4 100644
--- a/addons/mail/static/tests/activity_tests.js
+++ b/addons/mail/static/tests/activity_tests.js
@@ -402,16 +402,16 @@ QUnit.test("activity view: no group_by_menu and no comparison_menu", async funct
assert.containsN(
webClient,
- ".o_search_options .o_dropdown button:visible",
+ ".o_search_options .dropdown button:visible",
2,
"only two elements should be available in view search"
);
assert.isVisible(
- $(webClient.el).find(".o_search_options .o_dropdown.o_filter_menu > button"),
+ $(webClient.el).find(".o_search_options .dropdown.o_filter_menu > button"),
"filter should be available in view search"
);
assert.isVisible(
- $(webClient.el).find(".o_search_options .o_dropdown.o_favorite_menu > button"),
+ $(webClient.el).find(".o_search_options .dropdown.o_favorite_menu > button"),
"favorites should be available in view search"
);
});
diff --git a/addons/mail/static/tests/tools/debug_manager_tests.js b/addons/mail/static/tests/tools/debug_manager_tests.js
index 0a50e4cd123..f3a7e667ebf 100644
--- a/addons/mail/static/tests/tools/debug_manager_tests.js
+++ b/addons/mail/static/tests/tools/debug_manager_tests.js
@@ -40,10 +40,10 @@ QUnit.test("Manage Messages", async function (assert) {
const wc = await createWebClient({ serverData, mockRPC });
await doAction(wc, 3, { viewType: "form", props: { resId: 5 } });
await legacyExtraNextTick();
- await click(wc.el, ".o_debug_manager .o_dropdown_toggler");
+ await click(wc.el, ".o_debug_manager .dropdown-toggle");
const dropdownItems = wc.el.querySelectorAll(
- ".o_debug_manager .o_dropdown_menu .o_dropdown_item"
+ ".o_debug_manager .dropdown-menu .dropdown-item"
);
assert.strictEqual(dropdownItems.length, 1);
assert.strictEqual(
diff --git a/addons/sale_timesheet/static/tests/tours/sale_timesheet_tour.js b/addons/sale_timesheet/static/tests/tours/sale_timesheet_tour.js
index 6e1fa4176f7..6aefb825e58 100644
--- a/addons/sale_timesheet/static/tests/tours/sale_timesheet_tour.js
+++ b/addons/sale_timesheet/static/tests/tours/sale_timesheet_tour.js
@@ -156,7 +156,7 @@ tour.register('sale_timesheet_tour', {
content: 'Click on the Configuration menu.',
run: 'click',
}, {
- trigger: 'li[data-menu-xmlid="project.menu_projects_config"]',
+ trigger: '.dropdown-item[data-menu-xmlid="project.menu_projects_config"]',
content: 'Select Configuration > Projects.',
run: 'click',
}, {
@@ -238,7 +238,7 @@ tour.register('sale_timesheet_tour', {
trigger: '.o_form_button_save',
content: 'Save Project',
}, {
- trigger: 'li[data-menu-xmlid="project.menu_projects"]',
+ trigger: '.dropdown-item[data-menu-xmlid="project.menu_projects"]',
content: 'Select Projects',
}, {
// an invisible element cannot be used as a trigger so this small hack is mandatory for the next step
diff --git a/addons/stock/static/src/xml/report_stock_forecasted.xml b/addons/stock/static/src/xml/report_stock_forecasted.xml
index 2c294cf4b09..20edf8c3ad2 100644
--- a/addons/stock/static/src/xml/report_stock_forecasted.xml
+++ b/addons/stock/static/src/xml/report_stock_forecasted.xml
@@ -8,13 +8,13 @@
-
-
-