diff --git a/addons/im_livechat/__manifest__.py b/addons/im_livechat/__manifest__.py index 99f457481d4..36b97d09a1a 100644 --- a/addons/im_livechat/__manifest__.py +++ b/addons/im_livechat/__manifest__.py @@ -171,6 +171,7 @@ Help your customers with this chat, and analyse their feedback. 'web/static/src/legacy/js/core/cookie_utils.js', 'web/static/src/legacy/js/core/utils.js', 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/dom_ready.js', 'web/static/src/legacy/js/core/qweb.js', 'web/static/src/legacy/js/core/bus.js', 'web/static/src/legacy/js/services/core.js', diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py index c5519040e14..d471af683e0 100644 --- a/addons/project/__manifest__.py +++ b/addons/project/__manifest__.py @@ -154,6 +154,7 @@ 'web/static/src/legacy/root_widget.js', 'web/static/src/legacy/backend_utils.js', 'web/static/src/legacy/utils.js', + 'web/static/src/legacy/pseudo_web_client.js', 'web/static/src/legacy/web_client.js', 'web/static/src/legacy/js/chrome/*', 'web/static/src/legacy/js/components/*', @@ -168,6 +169,7 @@ 'web/static/src/legacy/js/fields/field_utils.js', 'web/static/src/legacy/js/fields/relational_fields.js', 'web/static/src/legacy/js/fields/field_registry.js', + 'web/static/src/legacy/js/fields/field_registration.js', 'web/static/src/legacy/js/fields/field_utils.js', 'web/static/src/legacy/js/views/abstract_model.js', 'web/static/src/legacy/js/views/basic/basic_model.js', diff --git a/addons/web/__manifest__.py b/addons/web/__manifest__.py index 8478cd92bc3..84f7f4d82ad 100644 --- a/addons/web/__manifest__.py +++ b/addons/web/__manifest__.py @@ -146,6 +146,7 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/core/owl_dialog.js', 'web/static/src/legacy/js/core/popover.js', 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/dom_ready.js', 'web/static/src/legacy/js/core/local_storage.js', 'web/static/src/legacy/js/core/mixins.js', 'web/static/src/legacy/js/core/qweb.js', @@ -232,6 +233,7 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/root_widget.js', 'web/static/src/legacy/backend_utils.js', 'web/static/src/legacy/utils.js', + 'web/static/src/legacy/pseudo_web_client.js', 'web/static/src/legacy/web_client.js', 'web/static/src/legacy/js/_deprecated/*', 'web/static/src/legacy/js/chrome/*', @@ -378,6 +380,7 @@ This module provides the core of the Odoo Web Client. 'web/static/src/legacy/js/core/owl_dialog.js', 'web/static/src/legacy/js/core/popover.js', 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/dom_ready.js', 'web/static/src/legacy/js/core/local_storage.js', 'web/static/src/legacy/js/core/menu.js', 'web/static/src/legacy/js/core/mixins.js', diff --git a/addons/web/static/src/legacy/frontend/keyboard_navigation_mixin.js b/addons/web/static/src/legacy/frontend/keyboard_navigation_mixin.js index 52a4eb9198f..fc1e9aa8467 100644 --- a/addons/web/static/src/legacy/frontend/keyboard_navigation_mixin.js +++ b/addons/web/static/src/legacy/frontend/keyboard_navigation_mixin.js @@ -1,7 +1,6 @@ -odoo.define('web.KeyboardNavigationMixin', function (require) { - "use strict"; - var BrowserDetection = require('web.BrowserDetection'); - const core = require('web.core'); +/** @odoo-module alias=web.KeyboardNavigationMixin **/ + import BrowserDetection from "web.BrowserDetection"; + import core from "web.core"; /** * list of the key that should not be used as accesskeys. Either because we want to reserve them for a specific behavior in Odoo or @@ -265,6 +264,4 @@ odoo.define('web.KeyboardNavigationMixin', function (require) { }, }; - return KeyboardNavigationMixin; - -}); + export default KeyboardNavigationMixin; diff --git a/addons/web/static/src/legacy/js/assets.js b/addons/web/static/src/legacy/js/assets.js index 8768d84ec92..10c7bb1b397 100644 --- a/addons/web/static/src/legacy/js/assets.js +++ b/addons/web/static/src/legacy/js/assets.js @@ -1,7 +1,6 @@ -odoo.define('web.assets.qweb', function (require) { -"use strict"; +/** @odoo-module **/ -const {assets} = require('@web/core/assets'); +import {assets} from "@web/core/assets"; const loadXML = assets.loadXML; assets.loadXML = function (xml, app) { @@ -19,5 +18,3 @@ assets.loadXML = function (xml, app) { core.qweb.add_template(qwebTemplates); }); } - -}); diff --git a/addons/web/static/src/legacy/js/chrome/action_mixin.js b/addons/web/static/src/legacy/js/chrome/action_mixin.js index 82feba04102..1ea607700c3 100644 --- a/addons/web/static/src/legacy/js/chrome/action_mixin.js +++ b/addons/web/static/src/legacy/js/chrome/action_mixin.js @@ -1,6 +1,5 @@ -odoo.define('web.ActionMixin', function (require) { - "use strict"; - +/** @odoo-module alias=web.ActionMixin **/ + /** * We define here the ActionMixin, the generic notion of action (from the point * of view of the web client). In short, an action is a widget which controls @@ -21,8 +20,8 @@ odoo.define('web.ActionMixin', function (require) { * @extends WidgetAdapterMixin */ - const core = require('web.core'); - const { WidgetAdapterMixin } = require('web.OwlCompatibility'); + import core from "web.core"; + import { WidgetAdapterMixin } from "web.OwlCompatibility"; const ActionMixin = Object.assign({}, WidgetAdapterMixin, { template: 'Action', @@ -231,5 +230,4 @@ odoo.define('web.ActionMixin', function (require) { }, }); - return ActionMixin; -}); + export default ActionMixin; diff --git a/addons/web/static/src/legacy/js/common_env.js b/addons/web/static/src/legacy/js/common_env.js index 887f14868fd..e64f2980a04 100644 --- a/addons/web/static/src/legacy/js/common_env.js +++ b/addons/web/static/src/legacy/js/common_env.js @@ -1,6 +1,5 @@ -odoo.define("web.commonEnv", function (require) { - "use strict"; - +/** @odoo-module alias=web.commonEnv **/ + /** * This file defines the common environment, which contains everything that * is needed in the env for both the backend and the frontend (Odoo @@ -17,13 +16,13 @@ odoo.define("web.commonEnv", function (require) { * [1] https://github.com/odoo/owl/blob/master/doc/reference/environment.md#content-of-an-environment */ - const { jsonRpc } = require("web.ajax"); - const { device, isDebug } = require("web.config"); - const { bus } = require("web.core"); - const rpc = require("web.rpc"); - const session = require("web.session"); - const { _t } = require("web.translation"); - const {getCookie, setCookie} = require('web.utils.cookies'); + import { jsonRpc } from "web.ajax"; + import { device, isDebug } from "web.config"; + import { bus } from "web.core"; + import rpc from "web.rpc"; + import session from "web.session"; + import { _t } from "web.translation"; + import {getCookie, setCookie} from "web.utils.cookies"; const browser = { clearInterval: window.clearInterval.bind(window), @@ -96,5 +95,4 @@ odoo.define("web.commonEnv", function (require) { session, }; - return env; -}); + export default env; diff --git a/addons/web/static/src/legacy/js/components/action_menus.js b/addons/web/static/src/legacy/js/components/action_menus.js index 0a07ab92a99..c93e6e976f6 100644 --- a/addons/web/static/src/legacy/js/components/action_menus.js +++ b/addons/web/static/src/legacy/js/components/action_menus.js @@ -1,10 +1,9 @@ -odoo.define('web.ActionMenus', function (require) { - "use strict"; - - const Context = require('web.Context'); - const DropdownMenu = require('web.DropdownMenu'); - const Registry = require('web.Registry'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.ActionMenus **/ + + import Context from "web.Context"; + import DropdownMenu from "web.DropdownMenu"; + import Registry from "web.Registry"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { onMounted, @@ -204,5 +203,4 @@ odoo.define('web.ActionMenus', function (require) { }; ActionMenus.template = 'web.Legacy.ActionMenus'; - return ActionMenus; -}); + export default ActionMenus; diff --git a/addons/web/static/src/legacy/js/components/custom_file_input.js b/addons/web/static/src/legacy/js/components/custom_file_input.js index fd4a36a6722..e46f75b17be 100644 --- a/addons/web/static/src/legacy/js/components/custom_file_input.js +++ b/addons/web/static/src/legacy/js/components/custom_file_input.js @@ -1,7 +1,6 @@ -odoo.define('web.CustomFileInput', function (require) { - "use strict"; - - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.CustomFileInput **/ + + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useRef } = owl; /** @@ -85,5 +84,4 @@ odoo.define('web.CustomFileInput', function (require) { }; CustomFileInput.template = 'web.CustomFileInput'; - return CustomFileInput; -}); + export default CustomFileInput; diff --git a/addons/web/static/src/legacy/js/components/datepicker.js b/addons/web/static/src/legacy/js/components/datepicker.js index b46413fa1bf..9cfb8489ef9 100644 --- a/addons/web/static/src/legacy/js/components/datepicker.js +++ b/addons/web/static/src/legacy/js/components/datepicker.js @@ -1,11 +1,10 @@ -odoo.define('web.DatePickerOwl', function (require) { - "use strict"; - - const config = require('web.config'); - const field_utils = require('web.field_utils'); - const time = require('web.time'); - const { useAutofocus } = require("@web/core/utils/hooks"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.DatePickerOwl **/ + + import config from "web.config"; + import field_utils from "web.field_utils"; + import time from "web.time"; + import { useAutofocus } from "@web/core/utils/hooks"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { onMounted, @@ -284,8 +283,7 @@ odoo.define('web.DatePickerOwl', function (require) { }, }); - return { + export default { DatePicker, DateTimePicker, }; -}); diff --git a/addons/web/static/src/legacy/js/components/dropdown_menu.js b/addons/web/static/src/legacy/js/components/dropdown_menu.js index 931ac33fbce..e459c54ea26 100644 --- a/addons/web/static/src/legacy/js/components/dropdown_menu.js +++ b/addons/web/static/src/legacy/js/components/dropdown_menu.js @@ -1,9 +1,8 @@ -odoo.define('web.DropdownMenu', function (require) { - "use strict"; - - const { _t } = require('web.core'); - const DropdownMenuItem = require('web.DropdownMenuItem'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.DropdownMenu **/ + + import { _t } from "web.core"; + import DropdownMenuItem from "web.DropdownMenuItem"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useExternalListener, useRef, useState } = owl; @@ -187,5 +186,4 @@ odoo.define('web.DropdownMenu', function (require) { }; DropdownMenu.template = 'web.DropdownMenu'; - return DropdownMenu; -}); + export default DropdownMenu; diff --git a/addons/web/static/src/legacy/js/components/dropdown_menu_item.js b/addons/web/static/src/legacy/js/components/dropdown_menu_item.js index 71b41e46401..18558b3c41d 100644 --- a/addons/web/static/src/legacy/js/components/dropdown_menu_item.js +++ b/addons/web/static/src/legacy/js/components/dropdown_menu_item.js @@ -1,8 +1,7 @@ -odoo.define('web.DropdownMenuItem', function (require) { - "use strict"; - - const { useListener } = require("@web/core/utils/hooks"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.DropdownMenuItem **/ + + import { useListener } from "@web/core/utils/hooks"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useExternalListener, useRef, useState } = owl; @@ -125,5 +124,4 @@ odoo.define('web.DropdownMenuItem', function (require) { DropdownMenuItem.template = 'web.DropdownMenuItem'; - return DropdownMenuItem; -}); + export default DropdownMenuItem; diff --git a/addons/web/static/src/legacy/js/components/pager.js b/addons/web/static/src/legacy/js/components/pager.js index 4812ce79b11..6b552f27c87 100644 --- a/addons/web/static/src/legacy/js/components/pager.js +++ b/addons/web/static/src/legacy/js/components/pager.js @@ -1,8 +1,7 @@ -odoo.define('web.Pager', function (require) { - "use strict"; - - const { useAutofocus } = require("@web/core/utils/hooks"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.Pager **/ + + import { useAutofocus } from "@web/core/utils/hooks"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { onWillUpdateProps, useState } = owl; @@ -222,5 +221,4 @@ odoo.define('web.Pager', function (require) { }; Pager.template = 'web.legacy.Pager'; - return Pager; -}); + export default Pager; diff --git a/addons/web/static/src/legacy/js/control_panel/comparison_menu.js b/addons/web/static/src/legacy/js/control_panel/comparison_menu.js index 733967e2499..eb7103c42d6 100644 --- a/addons/web/static/src/legacy/js/control_panel/comparison_menu.js +++ b/addons/web/static/src/legacy/js/control_panel/comparison_menu.js @@ -1,11 +1,10 @@ -odoo.define("web.ComparisonMenu", function (require) { - "use strict"; - - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const { SearchDropdownItem } = require("@web/search/search_dropdown_item/search_dropdown_item"); - const { FACET_ICONS } = require("web.searchUtils"); - const { useModel } = require("web.Model"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.ComparisonMenu **/ + + import { Dropdown } from "@web/core/dropdown/dropdown"; + import { SearchDropdownItem } from "@web/search/search_dropdown_item/search_dropdown_item"; + import { FACET_ICONS } from "web.searchUtils"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; class ComparisonMenu extends LegacyComponent { setup() { @@ -31,5 +30,4 @@ odoo.define("web.ComparisonMenu", function (require) { ComparisonMenu.template = "web.ComparisonMenu"; ComparisonMenu.components = { Dropdown, SearchDropdownItem }; - return ComparisonMenu; -}); + export default ComparisonMenu; diff --git a/addons/web/static/src/legacy/js/control_panel/control_panel.js b/addons/web/static/src/legacy/js/control_panel/control_panel.js index 7c8846b661b..7832a31ad70 100644 --- a/addons/web/static/src/legacy/js/control_panel/control_panel.js +++ b/addons/web/static/src/legacy/js/control_panel/control_panel.js @@ -1,16 +1,15 @@ -odoo.define('web.ControlPanel', function (require) { - "use strict"; - - const ActionMenus = require('web.ActionMenus'); - const ComparisonMenu = require('web.ComparisonMenu'); - const ActionModel = require('web.ActionModel'); - const FavoriteMenu = require('web.FavoriteMenu'); - const FilterMenu = require('web.FilterMenu'); - const GroupByMenu = require('web.GroupByMenu'); - const Pager = require('web.Pager'); - const SearchBar = require('web.SearchBar'); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.ControlPanel **/ + + import ActionMenus from "web.ActionMenus"; + import ComparisonMenu from "web.ComparisonMenu"; + import ActionModel from "web.ActionModel"; + import FavoriteMenu from "web.FavoriteMenu"; + import FilterMenu from "web.FilterMenu"; + import GroupByMenu from "web.GroupByMenu"; + import Pager from "web.Pager"; + import SearchBar from "web.SearchBar"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { onMounted, @@ -240,5 +239,4 @@ odoo.define('web.ControlPanel', function (require) { }; ControlPanel.template = 'web.Legacy.ControlPanel'; - return ControlPanel; -}); + export default ControlPanel; diff --git a/addons/web/static/src/legacy/js/control_panel/control_panel_model_extension.js b/addons/web/static/src/legacy/js/control_panel/control_panel_model_extension.js index e2ed43ebed1..32f8c654801 100644 --- a/addons/web/static/src/legacy/js/control_panel/control_panel_model_extension.js +++ b/addons/web/static/src/legacy/js/control_panel/control_panel_model_extension.js @@ -1,13 +1,12 @@ -odoo.define("web/static/src/js/control_panel/control_panel_model_extension.js", function (require) { - "use strict"; +/** @odoo-module alias=web/static/src/js/control_panel/control_panel_model_extension.js **/ + + import ActionModel from "web.ActionModel"; + import Domain from "web.Domain"; + import pyUtils from "web.py_utils"; - const ActionModel = require("web.ActionModel"); - const Domain = require('web.Domain'); - const pyUtils = require('web.py_utils'); - - const { DEFAULT_INTERVAL, DEFAULT_PERIOD, + import { DEFAULT_INTERVAL, DEFAULT_PERIOD, getComparisonOptions, getIntervalOptions, getPeriodOptions, - constructDateDomain, rankInterval, yearSelected } = require('web.searchUtils'); + constructDateDomain, rankInterval, yearSelected } from "web.searchUtils"; const FAVORITE_PRIVATE_GROUP = 1; const FAVORITE_SHARED_GROUP = 2; @@ -1671,5 +1670,4 @@ odoo.define("web/static/src/js/control_panel/control_panel_model_extension.js", ActionModel.registry.add("ControlPanel", ControlPanelModelExtension, 10); - return ControlPanelModelExtension; -}); + export default ControlPanelModelExtension; diff --git a/addons/web/static/src/legacy/js/control_panel/custom_favorite_item.js b/addons/web/static/src/legacy/js/control_panel/custom_favorite_item.js index 27db3b680b9..d5f8fc11ca3 100644 --- a/addons/web/static/src/legacy/js/control_panel/custom_favorite_item.js +++ b/addons/web/static/src/legacy/js/control_panel/custom_favorite_item.js @@ -1,11 +1,10 @@ -odoo.define('web.CustomFavoriteItem', function (require) { - "use strict"; - - const { CheckBox } = require("@web/core/checkbox/checkbox"); - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const FavoriteMenu = require('web.FavoriteMenu'); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.CustomFavoriteItem **/ + + import { CheckBox } from "@web/core/checkbox/checkbox"; + import { Dropdown } from "@web/core/dropdown/dropdown"; + import FavoriteMenu from "web.FavoriteMenu"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useState, useRef } = owl; @@ -147,5 +146,4 @@ odoo.define('web.CustomFavoriteItem', function (require) { FavoriteMenu.registry.add('favorite-generator-menu', CustomFavoriteItem, 0); - return CustomFavoriteItem; -}); + export default CustomFavoriteItem; diff --git a/addons/web/static/src/legacy/js/control_panel/custom_filter_item.js b/addons/web/static/src/legacy/js/control_panel/custom_filter_item.js index 69bb852dc4c..878264a121d 100644 --- a/addons/web/static/src/legacy/js/control_panel/custom_filter_item.js +++ b/addons/web/static/src/legacy/js/control_panel/custom_filter_item.js @@ -1,13 +1,12 @@ -odoo.define('web.CustomFilterItem', function (require) { - "use strict"; - - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const { DatePicker, DateTimePicker } = require('web.DatePickerOwl'); - const Domain = require('web.Domain'); - const { FIELD_OPERATORS, FIELD_TYPES } = require('web.searchUtils'); - const field_utils = require('web.field_utils'); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.CustomFilterItem **/ + + import { Dropdown } from "@web/core/dropdown/dropdown"; + import { DatePicker, DateTimePicker } from "web.DatePickerOwl"; + import Domain from "web.Domain"; + import { FIELD_OPERATORS, FIELD_TYPES } from "web.searchUtils"; + import field_utils from "web.field_utils"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useState } = owl; @@ -279,5 +278,4 @@ odoo.define('web.CustomFilterItem', function (require) { CustomFilterItem.props = { fields: Object }; CustomFilterItem.template = "web.CustomFilterItem"; - return CustomFilterItem; -}); + export default CustomFilterItem; diff --git a/addons/web/static/src/legacy/js/control_panel/favorite_menu.js b/addons/web/static/src/legacy/js/control_panel/favorite_menu.js index 3dfccacfef7..8f0ae39a53c 100644 --- a/addons/web/static/src/legacy/js/control_panel/favorite_menu.js +++ b/addons/web/static/src/legacy/js/control_panel/favorite_menu.js @@ -1,13 +1,12 @@ -odoo.define('web.FavoriteMenu', function (require) { - "use strict"; - - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const { SearchDropdownItem } = require("@web/search/search_dropdown_item/search_dropdown_item"); - const Dialog = require('web.OwlDialog'); - const { FACET_ICONS } = require("web.searchUtils"); - const Registry = require('web.Registry'); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.FavoriteMenu **/ + + import { Dropdown } from "@web/core/dropdown/dropdown"; + import { SearchDropdownItem } from "@web/search/search_dropdown_item/search_dropdown_item"; + import Dialog from "web.OwlDialog"; + import { FACET_ICONS } from "web.searchUtils"; + import Registry from "web.Registry"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useState } = owl; @@ -86,5 +85,4 @@ odoo.define('web.FavoriteMenu', function (require) { FavoriteMenu.components = { Dialog, Dropdown, SearchDropdownItem }; FavoriteMenu.template = 'web.Legacy.FavoriteMenu'; - return FavoriteMenu; -}); + export default FavoriteMenu; diff --git a/addons/web/static/src/legacy/js/control_panel/filter_menu.js b/addons/web/static/src/legacy/js/control_panel/filter_menu.js index 47568d92b83..e00d4baa302 100644 --- a/addons/web/static/src/legacy/js/control_panel/filter_menu.js +++ b/addons/web/static/src/legacy/js/control_panel/filter_menu.js @@ -1,12 +1,11 @@ -odoo.define('web.FilterMenu', function (require) { - "use strict"; - - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const { SearchDropdownItem } = require("@web/search/search_dropdown_item/search_dropdown_item"); - const CustomFilterItem = require('web.CustomFilterItem'); - const { FACET_ICONS } = require("web.searchUtils"); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.FilterMenu **/ + + import { Dropdown } from "@web/core/dropdown/dropdown"; + import { SearchDropdownItem } from "@web/search/search_dropdown_item/search_dropdown_item"; + import CustomFilterItem from "web.CustomFilterItem"; + import { FACET_ICONS } from "web.searchUtils"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; /** * 'Filters' menu @@ -62,5 +61,4 @@ odoo.define('web.FilterMenu', function (require) { FilterMenu.template = "web.legacy.FilterMenu"; FilterMenu.components = { CustomFilterItem, Dropdown, SearchDropdownItem }; - return FilterMenu; -}); + export default FilterMenu; diff --git a/addons/web/static/src/legacy/js/control_panel/groupby_menu.js b/addons/web/static/src/legacy/js/control_panel/groupby_menu.js index ea75c68416e..087adf2f487 100644 --- a/addons/web/static/src/legacy/js/control_panel/groupby_menu.js +++ b/addons/web/static/src/legacy/js/control_panel/groupby_menu.js @@ -1,12 +1,11 @@ -odoo.define('web.GroupByMenu', function (require) { - "use strict"; - - const { Dropdown } = require("@web/core/dropdown/dropdown"); - const { SearchDropdownItem } = require("@web/search/search_dropdown_item/search_dropdown_item"); - const { CustomGroupByItem } = require('@web/search/group_by_menu/custom_group_by_item'); - const { FACET_ICONS, GROUPABLE_TYPES } = require('web.searchUtils'); - const { useModel } = require('web.Model'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.GroupByMenu **/ + + import { Dropdown } from "@web/core/dropdown/dropdown"; + import { SearchDropdownItem } from "@web/search/search_dropdown_item/search_dropdown_item"; + import { CustomGroupByItem } from "@web/search/group_by_menu/custom_group_by_item"; + import { FACET_ICONS, GROUPABLE_TYPES } from "web.searchUtils"; + import { useModel } from "web.Model"; + import { LegacyComponent } from "@web/legacy/legacy_component"; class GroupByMenu extends LegacyComponent { @@ -74,5 +73,4 @@ odoo.define('web.GroupByMenu', function (require) { GroupByMenu.props = { fields: Object }; GroupByMenu.template = "web.GroupByMenu"; - return GroupByMenu; -}); + export default GroupByMenu; diff --git a/addons/web/static/src/legacy/js/control_panel/search_bar.js b/addons/web/static/src/legacy/js/control_panel/search_bar.js index c90723cfa19..9e2cde752c8 100644 --- a/addons/web/static/src/legacy/js/control_panel/search_bar.js +++ b/addons/web/static/src/legacy/js/control_panel/search_bar.js @@ -1,12 +1,11 @@ -odoo.define('web.SearchBar', function (require) { - "use strict"; - - const Domain = require('web.Domain'); - const field_utils = require('web.field_utils'); - const { useAutofocus } = require("@web/core/utils/hooks"); - const { useModel } = require('web.Model'); - const { fuzzyTest } = require('@web/core/utils/search'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.SearchBar **/ + + import Domain from "web.Domain"; + import field_utils from "web.field_utils"; + import { useAutofocus } from "@web/core/utils/hooks"; + import { useModel } from "web.Model"; + import { fuzzyTest } from "@web/core/utils/search"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { onMounted, onWillUnmount, toRaw, useExternalListener, useState } = owl; const CHAR_FIELDS = ['char', 'html', 'many2many', 'many2one', 'one2many', 'text']; @@ -489,5 +488,4 @@ odoo.define('web.SearchBar', function (require) { }; SearchBar.template = 'web.Legacy.SearchBar'; - return SearchBar; -}); + export default SearchBar; diff --git a/addons/web/static/src/legacy/js/control_panel/search_utils.js b/addons/web/static/src/legacy/js/control_panel/search_utils.js index 56b327689f9..df654791ab1 100644 --- a/addons/web/static/src/legacy/js/control_panel/search_utils.js +++ b/addons/web/static/src/legacy/js/control_panel/search_utils.js @@ -1,9 +1,8 @@ -odoo.define('web.searchUtils', function (require) { - "use strict"; - - const { _lt, _t } = require('web.core'); - const Domain = require('web.Domain'); - const pyUtils = require('web.py_utils'); +/** @odoo-module alias=web.searchUtils **/ + + import { _lt, _t } from "web.core"; + import Domain from "web.Domain"; + import pyUtils from "web.py_utils"; //------------------------------------------------------------------------- // Constants @@ -527,7 +526,7 @@ odoo.define('web.searchUtils', function (require) { return selectedOptionIds.some(optionId => !!YEAR_OPTIONS[optionId]); } - return { + export default { COMPARISON_OPTIONS, DEFAULT_INTERVAL, DEFAULT_PERIOD, @@ -546,4 +545,3 @@ odoo.define('web.searchUtils', function (require) { rankInterval, yearSelected, }; -}); diff --git a/addons/web/static/src/legacy/js/core/abstract_service.js b/addons/web/static/src/legacy/js/core/abstract_service.js index 5157b5b55f4..3f282de42e2 100644 --- a/addons/web/static/src/legacy/js/core/abstract_service.js +++ b/addons/web/static/src/legacy/js/core/abstract_service.js @@ -1,10 +1,9 @@ -odoo.define('web.AbstractService', function (require) { -"use strict"; +/** @odoo-module alias=web.AbstractService **/ -var Class = require('web.Class'); -const { serviceRegistry } = require("web.core"); -var Mixins = require('web.mixins'); -var ServicesMixin = require('web.ServicesMixin'); +import Class from "web.Class"; +import { serviceRegistry } from "web.core"; +import Mixins from "web.mixins"; +import ServicesMixin from "web.ServicesMixin"; var AbstractService = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, { dependencies: [], @@ -87,5 +86,4 @@ var AbstractService = Class.extend(Mixins.EventDispatcherMixin, ServicesMixin, { } }); -return AbstractService; -}); +export default AbstractService; diff --git a/addons/web/static/src/legacy/js/core/abstract_storage_service.js b/addons/web/static/src/legacy/js/core/abstract_storage_service.js index 5d724f87911..8ebc12aa2d4 100644 --- a/addons/web/static/src/legacy/js/core/abstract_storage_service.js +++ b/addons/web/static/src/legacy/js/core/abstract_storage_service.js @@ -1,12 +1,11 @@ -odoo.define('web.AbstractStorageService', function (require) { -'use strict'; +/** @odoo-module alias=web.AbstractStorageService **/ /** * This module defines an abstraction for services that write into Storage * objects (e.g. localStorage or sessionStorage). */ -var AbstractService = require('web.AbstractService'); +import AbstractService from "web.AbstractService"; var AbstractStorageService = AbstractService.extend({ // the 'storage' attribute must be set by actual StorageServices extending @@ -83,6 +82,4 @@ var AbstractStorageService = AbstractService.extend({ }, }); -return AbstractStorageService; - -}); +export default AbstractStorageService; diff --git a/addons/web/static/src/legacy/js/core/ajax.js b/addons/web/static/src/legacy/js/core/ajax.js index 3e694c472cd..6b1445d5382 100644 --- a/addons/web/static/src/legacy/js/core/ajax.js +++ b/addons/web/static/src/legacy/js/core/ajax.js @@ -1,13 +1,12 @@ -odoo.define('web.ajax', function (require) { -"use strict"; +/** @odoo-module alias=web.ajax **/ -var config = require('web.config'); -var core = require('web.core'); -const {Markup} = require('web.utils'); -var time = require('web.time'); -var download = require('web.download'); -var contentdisposition = require('web.contentdisposition'); -const { session } = require('@web/session'); +import config from "web.config"; +import core from "web.core"; +import {Markup} from "web.utils"; +import time from "web.time"; +import download from "web.download"; +import contentdisposition from "web.contentdisposition"; +import { session } from "@web/session"; var _t = core._t; @@ -325,6 +324,4 @@ _.extend(ajax, { post: post, }); -return ajax; - -}); +export default ajax; diff --git a/addons/web/static/src/legacy/js/core/browser_detection.js b/addons/web/static/src/legacy/js/core/browser_detection.js index 4b6605bfeda..a6824c2e1c5 100644 --- a/addons/web/static/src/legacy/js/core/browser_detection.js +++ b/addons/web/static/src/legacy/js/core/browser_detection.js @@ -1,7 +1,6 @@ -odoo.define('web.BrowserDetection', function (require) { - "use strict"; - var Class = require('web.Class'); - const { isMacOS, isBrowserChrome } = require('@web/core/browser/feature_detection'); +/** @odoo-module alias=web.BrowserDetection **/ + import Class from "web.Class"; + import { isMacOS, isBrowserChrome } from "@web/core/browser/feature_detection"; var BrowserDetection = Class.extend({ init: function () { @@ -10,6 +9,4 @@ odoo.define('web.BrowserDetection', function (require) { isOsMac: isMacOS, isBrowserChrome, }); - return BrowserDetection; -}); - + export default BrowserDetection; diff --git a/addons/web/static/src/legacy/js/core/bus.js b/addons/web/static/src/legacy/js/core/bus.js index 5257453edab..f49b4eaab75 100644 --- a/addons/web/static/src/legacy/js/core/bus.js +++ b/addons/web/static/src/legacy/js/core/bus.js @@ -1,19 +1,16 @@ -odoo.define('web.Bus', function (require) { -"use strict"; +/** @odoo-module alias=web.Bus **/ -var Class = require('web.Class'); -var mixins = require('web.mixins'); +import Class from "web.Class"; +import mixins from "web.mixins"; /** * Event Bus used to bind events scoped in the current instance * * @class Bus */ -return Class.extend(mixins.EventDispatcherMixin, { +export default Class.extend(mixins.EventDispatcherMixin, { init: function (parent) { mixins.EventDispatcherMixin.init.call(this); this.setParent(parent); }, }); - -}); diff --git a/addons/web/static/src/legacy/js/core/class.js b/addons/web/static/src/legacy/js/core/class.js index 4fed1983ee5..6ced296cdd5 100644 --- a/addons/web/static/src/legacy/js/core/class.js +++ b/addons/web/static/src/legacy/js/core/class.js @@ -1,5 +1,4 @@ -odoo.define('web.Class', function () { -"use strict"; +/** @odoo-module alias=web.Class **/ /** * Improved John Resig's inheritance, based on: * @@ -152,5 +151,4 @@ OdooClass.extend = function() { return Class; }; -return OdooClass; -}); +export default OdooClass; diff --git a/addons/web/static/src/legacy/js/core/collections.js b/addons/web/static/src/legacy/js/core/collections.js index bc27a9021cc..c54e3fc4594 100644 --- a/addons/web/static/src/legacy/js/core/collections.js +++ b/addons/web/static/src/legacy/js/core/collections.js @@ -1,7 +1,6 @@ -odoo.define("web.collections", function (require) { - "use strict"; - - var Class = require("web.Class"); +/** @odoo-module alias=web.collections **/ + + import Class from "web.Class"; /** * Allows to build a tree representation of a data. @@ -38,7 +37,6 @@ odoo.define("web.collections", function (require) { }, }); - return { + export default { Tree: Tree, }; -}); diff --git a/addons/web/static/src/legacy/js/core/concurrency.js b/addons/web/static/src/legacy/js/core/concurrency.js index 840df367aff..f30e8ca573f 100644 --- a/addons/web/static/src/legacy/js/core/concurrency.js +++ b/addons/web/static/src/legacy/js/core/concurrency.js @@ -1,5 +1,4 @@ -odoo.define('web.concurrency', function (require) { -"use strict"; +/** @odoo-module alias=web.concurrency **/ /** * Concurrency Utils @@ -15,9 +14,9 @@ odoo.define('web.concurrency', function (require) { * we solved some concurrency issues, when we noticed that a pattern emerged. */ -var Class = require('web.Class'); +import Class from "web.Class"; -return { +export default { /** * Returns a promise resolved after 'wait' milliseconds * @@ -319,5 +318,3 @@ return { }); } }; - -}); diff --git a/addons/web/static/src/legacy/js/core/context.js b/addons/web/static/src/legacy/js/core/context.js index a7ce801708d..756f88fbd7a 100644 --- a/addons/web/static/src/legacy/js/core/context.js +++ b/addons/web/static/src/legacy/js/core/context.js @@ -1,8 +1,7 @@ -odoo.define('web.Context', function (require) { -"use strict"; +/** @odoo-module alias=web.Context **/ -var Class = require('web.Class'); -var pyUtils = require('web.py_utils'); +import Class from "web.Class"; +import pyUtils from "web.py_utils"; var Context = Class.extend({ init: function () { @@ -48,6 +47,4 @@ var Context = Class.extend({ }, }); -return Context; - -}); +export default Context; diff --git a/addons/web/static/src/legacy/js/core/cookie_utils.js b/addons/web/static/src/legacy/js/core/cookie_utils.js index a8049aa3543..a5c9766a12a 100644 --- a/addons/web/static/src/legacy/js/core/cookie_utils.js +++ b/addons/web/static/src/legacy/js/core/cookie_utils.js @@ -1,5 +1,4 @@ -odoo.define('web.utils.cookies', function (require) { -"use strict"; +/** @odoo-module alias=web.utils.cookies **/ const utils = { /** @@ -70,5 +69,4 @@ const utils = { ].join(';'); }, }; -return utils; -}); +export default utils; diff --git a/addons/web/static/src/legacy/js/core/dialog.js b/addons/web/static/src/legacy/js/core/dialog.js index efee6c79147..9dc8936b63c 100644 --- a/addons/web/static/src/legacy/js/core/dialog.js +++ b/addons/web/static/src/legacy/js/core/dialog.js @@ -1,10 +1,9 @@ -odoo.define('web.Dialog', function (require) { -"use strict"; +/** @odoo-module alias=web.Dialog **/ -var core = require('web.core'); -var dom = require('web.dom'); -var Widget = require('web.Widget'); -const OwlDialog = require('web.OwlDialog'); +import core from "web.core"; +import dom from "web.dom"; +import Widget from "web.Widget"; +import OwlDialog from "web.OwlDialog"; var QWeb = core.qweb; var _t = core._t; @@ -535,6 +534,4 @@ Dialog.safeConfirm = function (owner, message, options) { return dialog.open(); }; -return Dialog; - -}); +export default Dialog; diff --git a/addons/web/static/src/legacy/js/core/dom.js b/addons/web/static/src/legacy/js/core/dom.js index 8b27aca5c0c..a4125b3f3b8 100644 --- a/addons/web/static/src/legacy/js/core/dom.js +++ b/addons/web/static/src/legacy/js/core/dom.js @@ -1,14 +1,4 @@ -odoo.define('web.dom_ready', function (require) { -'use strict'; - - return new Promise(function (resolve, reject) { - $(resolve); - }); -}); -//============================================================================== - -odoo.define('web.dom', function (require) { -"use strict"; +/** @odoo-module alias=web.dom **/ /** * DOM Utility helpers @@ -19,8 +9,8 @@ odoo.define('web.dom', function (require) { * something happens in the DOM. */ -var concurrency = require('web.concurrency'); -var core = require('web.core'); +import concurrency from "web.concurrency"; +import core from "web.core"; var _t = core._t; /** @@ -634,5 +624,4 @@ var dom = { }); }, }; -return dom; -}); +export default dom; diff --git a/addons/web/static/src/legacy/js/core/dom_ready.js b/addons/web/static/src/legacy/js/core/dom_ready.js new file mode 100644 index 00000000000..9368c7d3a13 --- /dev/null +++ b/addons/web/static/src/legacy/js/core/dom_ready.js @@ -0,0 +1,5 @@ +/** @odoo-module alias=web.dom_ready **/ + +export default new Promise(function (resolve, reject) { + $(resolve); +}); diff --git a/addons/web/static/src/legacy/js/core/domain.js b/addons/web/static/src/legacy/js/core/domain.js index 4192b0066a8..edc920450d1 100644 --- a/addons/web/static/src/legacy/js/core/domain.js +++ b/addons/web/static/src/legacy/js/core/domain.js @@ -1,8 +1,7 @@ -odoo.define("web.Domain", function (require) { -"use strict"; +/** @odoo-module alias=web.Domain **/ -var collections = require("web.collections"); -var pyUtils = require("web.py_utils"); +import collections from "web.collections"; +import pyUtils from "web.py_utils"; var py = window.py; // look py.js const TRUE_LEAF = [1, '=', 1]; @@ -429,5 +428,4 @@ Domain.FALSE_LEAF = FALSE_LEAF; Domain.TRUE_DOMAIN = TRUE_DOMAIN; Domain.FALSE_DOMAIN = FALSE_DOMAIN; -return Domain; -}); +export default Domain; diff --git a/addons/web/static/src/legacy/js/core/local_storage.js b/addons/web/static/src/legacy/js/core/local_storage.js index f567ecb5841..544c8b7f75b 100644 --- a/addons/web/static/src/legacy/js/core/local_storage.js +++ b/addons/web/static/src/legacy/js/core/local_storage.js @@ -1,8 +1,7 @@ -odoo.define('web.local_storage', function (require) { -'use strict'; +/** @odoo-module alias=web.local_storage **/ -var RamStorage = require('web.RamStorage'); -var mixins = require('web.mixins'); +import RamStorage from "web.RamStorage"; +import mixins from "web.mixins"; // use a fake localStorage in RAM if the native localStorage is unavailable // (e.g. private browsing in Safari) @@ -49,6 +48,4 @@ try { storage = new RamStorage(); } -return storage; - -}); +export default storage; diff --git a/addons/web/static/src/legacy/js/core/misc.js b/addons/web/static/src/legacy/js/core/misc.js index a41ab21ed68..4fc11729ac3 100644 --- a/addons/web/static/src/legacy/js/core/misc.js +++ b/addons/web/static/src/legacy/js/core/misc.js @@ -1,9 +1,8 @@ -odoo.define('web.framework', function (require) { -"use strict"; +/** @odoo-module alias=web.framework **/ -var core = require('web.core'); -var ajax = require('web.ajax'); -var Widget = require('web.Widget'); +import core from "web.core"; +import ajax from "web.ajax"; +import Widget from "web.Widget"; var _t = core._t; @@ -141,10 +140,8 @@ if (!document.contains) { }; } -return { +export default { blockUI: blockUI, unblockUI: unblockUI, redirect: redirect, }; - -}); diff --git a/addons/web/static/src/legacy/js/core/mixins.js b/addons/web/static/src/legacy/js/core/mixins.js index 06f39e0fcfe..14f861a2baa 100644 --- a/addons/web/static/src/legacy/js/core/mixins.js +++ b/addons/web/static/src/legacy/js/core/mixins.js @@ -1,8 +1,7 @@ -odoo.define('web.mixins', function (require) { -"use strict"; +/** @odoo-module alias=web.mixins **/ -var Class = require('web.Class'); -var utils = require('web.utils'); +import Class from "web.Class"; +import utils from "web.utils"; /** * Mixin to structure objects' life-cycles folowing a parent-children @@ -409,10 +408,8 @@ var PropertiesMixin = _.extend({}, EventDispatcherMixin, { } }); -return { +export default { ParentedMixin: ParentedMixin, EventDispatcherMixin: EventDispatcherMixin, PropertiesMixin: PropertiesMixin, }; - -}); diff --git a/addons/web/static/src/legacy/js/core/mvc.js b/addons/web/static/src/legacy/js/core/mvc.js index e85e238206f..b1be3646016 100644 --- a/addons/web/static/src/legacy/js/core/mvc.js +++ b/addons/web/static/src/legacy/js/core/mvc.js @@ -1,5 +1,4 @@ -odoo.define('web.mvc', function (require) { -"use strict"; +/** @odoo-module alias=web.mvc **/ /** * This file contains a 'formalization' of a MVC pattern, applied to Odoo @@ -29,11 +28,11 @@ odoo.define('web.mvc', function (require) { * simple as possible. */ -var Class = require('web.Class'); -var mixins = require('web.mixins'); -var ServicesMixin = require('web.ServicesMixin'); -var Widget = require('web.Widget'); -const { loadBundle } = require('@web/core/assets'); +import Class from "web.Class"; +import mixins from "web.mixins"; +import ServicesMixin from "web.ServicesMixin"; +import Widget from "web.Widget"; +import { loadBundle } from "@web/core/assets"; /** @@ -240,11 +239,9 @@ var Factory = Class.extend({ }); -return { +export default { Factory: Factory, Model: Model, Renderer: Renderer, Controller: Controller, }; - -}); diff --git a/addons/web/static/src/legacy/js/core/owl_dialog.js b/addons/web/static/src/legacy/js/core/owl_dialog.js index eb75605f1ba..b56ef003c93 100644 --- a/addons/web/static/src/legacy/js/core/owl_dialog.js +++ b/addons/web/static/src/legacy/js/core/owl_dialog.js @@ -1,14 +1,13 @@ -odoo.define('web.OwlDialog', function (require) { - "use strict"; - +/** @odoo-module alias=web.OwlDialog **/ + const { useRef, onMounted, onWillUnmount } = owl; const SIZE_CLASSES = { 'extra-large': 'modal-xl', 'large': 'modal-lg', 'small': 'modal-sm', }; - const { renderToString } = require('@web/core/utils/render'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); + import { renderToString } from "@web/core/utils/render"; + import { LegacyComponent } from "@web/legacy/legacy_component"; /** * Dialog (owl version) @@ -286,5 +285,4 @@ odoo.define('web.OwlDialog', function (require) { }; Dialog.template = 'web.OwlDialog'; - return Dialog; -}); + export default Dialog; diff --git a/addons/web/static/src/legacy/js/core/popover.js b/addons/web/static/src/legacy/js/core/popover.js index 1e9d440df4c..92ea2039c44 100644 --- a/addons/web/static/src/legacy/js/core/popover.js +++ b/addons/web/static/src/legacy/js/core/popover.js @@ -1,7 +1,6 @@ -odoo.define('web.Popover', function (require) { - 'use strict'; - - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module alias=web.Popover **/ + + import { LegacyComponent } from "@web/legacy/legacy_component"; const { status, onWillUnmount, useEffect, useRef, useState } = owl; /** @@ -356,5 +355,4 @@ odoo.define('web.Popover', function (require) { }, }; - return Popover; -}); + export default Popover; diff --git a/addons/web/static/src/legacy/js/core/py_utils.js b/addons/web/static/src/legacy/js/core/py_utils.js index 1cf1150ab76..1f4b065717a 100644 --- a/addons/web/static/src/legacy/js/core/py_utils.js +++ b/addons/web/static/src/legacy/js/core/py_utils.js @@ -1,7 +1,6 @@ -odoo.define('web.py_utils', function (require) { -"use strict"; +/** @odoo-module alias=web.py_utils **/ -var core = require('web.core'); +import core from "web.core"; var _t = core._t; var py = window.py; // to silence linters @@ -547,7 +546,7 @@ function _normalizeDomainAST(domain) { return domain; } -return { +export default { context: pycontext, ensure_evaluated: ensure_evaluated, eval: pyeval, @@ -559,4 +558,3 @@ return { _formatAST: _formatAST, _normalizeDomainAST: _normalizeDomainAST, }; -}); diff --git a/addons/web/static/src/legacy/js/core/qweb.js b/addons/web/static/src/legacy/js/core/qweb.js index 0261abc528b..79c5eae3575 100644 --- a/addons/web/static/src/legacy/js/core/qweb.js +++ b/addons/web/static/src/legacy/js/core/qweb.js @@ -1,7 +1,6 @@ -odoo.define('web.QWeb', function (require) { -"use strict"; +/** @odoo-module alias=web.QWeb **/ -var translation = require('web.translation'); +import translation from "web.translation"; var _t = translation._t; @@ -57,6 +56,4 @@ function preprocess_node() { } } -return QWeb; - -}); +export default QWeb; diff --git a/addons/web/static/src/legacy/js/core/ram_storage.js b/addons/web/static/src/legacy/js/core/ram_storage.js index abad86c4538..eeed9e29734 100644 --- a/addons/web/static/src/legacy/js/core/ram_storage.js +++ b/addons/web/static/src/legacy/js/core/ram_storage.js @@ -1,5 +1,4 @@ -odoo.define('web.RamStorage', function (require) { -'use strict'; +/** @odoo-module alias=web.RamStorage **/ /** * This module defines an alternative of the Storage objects (localStorage, @@ -7,8 +6,8 @@ odoo.define('web.RamStorage', function (require) { * are unavailable (e.g. in private browsing on Safari). */ -var Class = require('web.Class'); -var mixins = require('web.mixins'); +import Class from "web.Class"; +import mixins from "web.mixins"; var RamStorage = Class.extend(mixins.EventDispatcherMixin, { @@ -77,6 +76,4 @@ var RamStorage = Class.extend(mixins.EventDispatcherMixin, { }, }); -return RamStorage; - -}); +export default RamStorage; diff --git a/addons/web/static/src/legacy/js/core/registry.js b/addons/web/static/src/legacy/js/core/registry.js index 1ab16236e59..1ef1d454782 100644 --- a/addons/web/static/src/legacy/js/core/registry.js +++ b/addons/web/static/src/legacy/js/core/registry.js @@ -1,7 +1,6 @@ -odoo.define("web.Registry", function (require) { - "use strict"; - - const { sortBy } = require("web.utils"); +/** @odoo-module alias=web.Registry **/ + + import { sortBy } from "web.utils"; /** * The registry is really pretty much only a mapping from some keys to some @@ -150,5 +149,4 @@ odoo.define("web.Registry", function (require) { } } - return Registry; -}); + export default Registry; diff --git a/addons/web/static/src/legacy/js/core/rpc.js b/addons/web/static/src/legacy/js/core/rpc.js index e0d33355001..d9ceaf225a9 100644 --- a/addons/web/static/src/legacy/js/core/rpc.js +++ b/addons/web/static/src/legacy/js/core/rpc.js @@ -1,7 +1,6 @@ -odoo.define('web.rpc', function (require) { -"use strict"; +/** @odoo-module alias=web.rpc **/ -var ajax = require('web.ajax'); +import ajax from "web.ajax"; const rpc = { /** @@ -123,6 +122,4 @@ const rpc = { }, }; -return rpc; - -}); +export default rpc; diff --git a/addons/web/static/src/legacy/js/core/service_mixins.js b/addons/web/static/src/legacy/js/core/service_mixins.js index 5c30d583545..f9e109ff08b 100644 --- a/addons/web/static/src/legacy/js/core/service_mixins.js +++ b/addons/web/static/src/legacy/js/core/service_mixins.js @@ -1,106 +1,6 @@ -odoo.define('web.ServiceProviderMixin', function (require) { -"use strict"; +/** @odoo-module alias=web.ServicesMixin **/ -var core = require('web.core'); - -// ServiceProviderMixin is deprecated. It is only used by the ProjectTimesheet -// app. As soon as it no longer uses it, we can remove it. -var ServiceProviderMixin = { - services: {}, // dict containing deployed service instances - UndeployedServices: {}, // dict containing classes of undeployed services - /** - * @override - */ - init: function (parent) { - var self = this; - // to properly instantiate services with this as parent, this mixin - // assumes that it is used along the EventDispatcherMixin, and that - // EventDispatchedMixin's init is called first - // as EventDispatcherMixin's init is already called, this handler has - // to be bound manually - this.on('call_service', this, this._call_service.bind(this)); - - // add already registered services from the service registry - _.each(core.serviceRegistry.map, function (Service, serviceName) { - if (serviceName in self.UndeployedServices) { - throw new Error('Service "' + serviceName + '" is already loaded.'); - } - self.UndeployedServices[serviceName] = Service; - }); - this._deployServices(); - - // listen on newly added services - core.serviceRegistry.onAdd(function (serviceName, Service) { - if (serviceName in self.services || serviceName in self.UndeployedServices) { - throw new Error('Service "' + serviceName + '" is already loaded.'); - } - self.UndeployedServices[serviceName] = Service; - self._deployServices(); - }); - }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - /** - * @private - */ - _deployServices: function () { - var self = this; - var done = false; - while (!done) { - var serviceName = _.findKey(this.UndeployedServices, function (Service) { - // no missing dependency - return !_.some(Service.prototype.dependencies, function (depName) { - return !self.services[depName]; - }); - }); - if (serviceName) { - var service = new this.UndeployedServices[serviceName](this); - this.services[serviceName] = service; - delete this.UndeployedServices[serviceName]; - service.start(); - } else { - done = true; - } - } - }, - - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * Call the 'service', using data from the 'event' that - * has triggered the service call. - * - * For the ajax service, the arguments are extended with - * the target so that it can call back the caller. - * - * @private - * @param {OdooEvent} event - */ - _call_service: function (event) { - var args = event.data.args || []; - if (event.data.service === 'ajax' && event.data.method === 'rpc') { - // ajax service uses an extra 'target' argument for rpc - args = args.concat(event.target); - } - var service = this.services[event.data.service]; - var result = service[event.data.method].apply(service, args); - event.data.callback(result); - }, -}; - -return ServiceProviderMixin; - -}); - -odoo.define('web.ServicesMixin', function (require) { -"use strict"; - -var rpc = require('web.rpc'); +import rpc from "web.rpc"; /** * @mixin @@ -242,6 +142,4 @@ var ServicesMixin = { }, }; -return ServicesMixin; - -}); +export default ServicesMixin; diff --git a/addons/web/static/src/legacy/js/core/session.js b/addons/web/static/src/legacy/js/core/session.js index 4b78538fbb6..abf9e697302 100644 --- a/addons/web/static/src/legacy/js/core/session.js +++ b/addons/web/static/src/legacy/js/core/session.js @@ -1,12 +1,11 @@ -odoo.define('web.Session', function (require) { -"use strict"; +/** @odoo-module alias=web.Session **/ -var ajax = require('web.ajax'); -var core = require('web.core'); -var mixins = require('web.mixins'); -const {setCookie} = require('web.utils.cookies'); -const { session } = require('@web/session'); -const { loadJS } = require('@web/core/assets'); +import ajax from "web.ajax"; +import core from "web.core"; +import mixins from "web.mixins"; +import {setCookie} from "web.utils.cookies"; +import { session } from "@web/session"; +import { loadJS } from "@web/core/assets"; var _t = core._t; @@ -349,6 +348,4 @@ var Session = core.Class.extend(mixins.EventDispatcherMixin, { }, }); -return Session; - -}); +export default Session; diff --git a/addons/web/static/src/legacy/js/core/session_storage.js b/addons/web/static/src/legacy/js/core/session_storage.js index 0d5198fe2af..24b04cc8201 100644 --- a/addons/web/static/src/legacy/js/core/session_storage.js +++ b/addons/web/static/src/legacy/js/core/session_storage.js @@ -1,8 +1,7 @@ -odoo.define('web.sessionStorage', function (require) { -'use strict'; +/** @odoo-module alias=web.sessionStorage **/ -var RamStorage = require('web.RamStorage'); -var mixins = require('web.mixins'); +import RamStorage from "web.RamStorage"; +import mixins from "web.mixins"; // use a fake sessionStorage in RAM if the native sessionStorage is unavailable // (e.g. private browsing in Safari) @@ -51,6 +50,4 @@ try { storage = new RamStorage(); } -return storage; - -}); +export default storage; diff --git a/addons/web/static/src/legacy/js/core/smooth_scroll_on_drag.js b/addons/web/static/src/legacy/js/core/smooth_scroll_on_drag.js index 750e54daeec..86f6131a370 100644 --- a/addons/web/static/src/legacy/js/core/smooth_scroll_on_drag.js +++ b/addons/web/static/src/legacy/js/core/smooth_scroll_on_drag.js @@ -1,8 +1,7 @@ -odoo.define('web.smooth_scroll_on_drag', function (require) { -"use strict"; +/** @odoo-module alias=web.smooth_scroll_on_drag **/ -const Class = require('web.Class'); -const mixins = require('web.mixins'); +import Class from "web.Class"; +import mixins from "web.mixins"; /** * Provides a helper for SmoothScrollOnDrag options.offsetElements @@ -427,5 +426,4 @@ const SmoothScrollOnDrag = Class.extend(mixins.ParentedMixin, { }, }); -return SmoothScrollOnDrag; -}); +export default SmoothScrollOnDrag; diff --git a/addons/web/static/src/legacy/js/core/time.js b/addons/web/static/src/legacy/js/core/time.js index c5d81f6cdb0..a5841d5b629 100644 --- a/addons/web/static/src/legacy/js/core/time.js +++ b/addons/web/static/src/legacy/js/core/time.js @@ -1,8 +1,7 @@ -odoo.define('web.time', function (require) { -"use strict"; +/** @odoo-module alias=web.time **/ -var translation = require('web.translation'); -var utils = require('web.utils'); +import translation from "web.translation"; +import utils from "web.utils"; var lpad = utils.lpad; var rpad = utils.rpad; @@ -329,7 +328,7 @@ function getLangTimeFormatWoZero() { return timeFormatWoZeroCache[timeFormat]; } -return { +export default { date_to_utc: date_to_utc, str_to_datetime: str_to_datetime, str_to_date: str_to_date, @@ -347,6 +346,3 @@ return { getLangTimeFormatWoZero: getLangTimeFormatWoZero, getLangDatetimeFormat: getLangDatetimeFormat, }; - -}); - diff --git a/addons/web/static/src/legacy/js/core/translation.js b/addons/web/static/src/legacy/js/core/translation.js index 5adb9a5b9a7..9607bd81422 100644 --- a/addons/web/static/src/legacy/js/core/translation.js +++ b/addons/web/static/src/legacy/js/core/translation.js @@ -1,9 +1,8 @@ -odoo.define('web.translation', function (require) { -"use strict"; +/** @odoo-module alias=web.translation **/ -var Class = require('web.Class'); -const { _lt } = require("@web/core/l10n/translation"); +import Class from "web.Class"; +import { _lt } from "@web/core/l10n/translation"; var TranslationDataBase = Class.extend(/** @lends instance.TranslationDataBase# */{ init: function() { @@ -114,10 +113,8 @@ var _t = new TranslationDataBase().build_translation_function(); } -return { +export default { _t: _t, _lt: _lt, TranslationDataBase: TranslationDataBase, }; - -}); diff --git a/addons/web/static/src/legacy/js/core/utils.js b/addons/web/static/src/legacy/js/core/utils.js index 1cd7dd91bae..08fea185592 100644 --- a/addons/web/static/src/legacy/js/core/utils.js +++ b/addons/web/static/src/legacy/js/core/utils.js @@ -1,5 +1,4 @@ -odoo.define('web.utils', function (require) { -"use strict"; +/** @odoo-module alias=web.utils **/ /** * Utils @@ -7,9 +6,9 @@ odoo.define('web.utils', function (require) { * Various generic utility functions */ -var translation = require('web.translation'); +import translation from "web.translation"; -const { Component } = require("@odoo/owl"); +import { Component } from "@odoo/owl"; var _t = translation._t; var id = -1; @@ -1130,6 +1129,4 @@ const utils = { }, }; -return utils; - -}); +export default utils; diff --git a/addons/web/static/src/legacy/js/core/widget.js b/addons/web/static/src/legacy/js/core/widget.js index 9fd4bce7ad0..ae10ff2e19e 100644 --- a/addons/web/static/src/legacy/js/core/widget.js +++ b/addons/web/static/src/legacy/js/core/widget.js @@ -1,10 +1,9 @@ -odoo.define('web.Widget', function (require) { -"use strict"; +/** @odoo-module alias=web.Widget **/ -var core = require('web.core'); -var mixins = require('web.mixins'); -var ServicesMixin = require('web.ServicesMixin'); -const { loadBundle } = require("@web/core/assets"); +import core from "web.core"; +import mixins from "web.mixins"; +import ServicesMixin from "web.ServicesMixin"; +import { loadBundle } from "@web/core/assets"; /** @@ -430,6 +429,4 @@ var Widget = core.Class.extend(mixins.PropertiesMixin, ServicesMixin, { }, }); -return Widget; - -}); +export default Widget; diff --git a/addons/web/static/src/legacy/js/fields/abstract_field.js b/addons/web/static/src/legacy/js/fields/abstract_field.js index e3bfb03e009..5e5f5a94202 100644 --- a/addons/web/static/src/legacy/js/fields/abstract_field.js +++ b/addons/web/static/src/legacy/js/fields/abstract_field.js @@ -1,5 +1,4 @@ -odoo.define('web.AbstractField', function (require) { -"use strict"; +/** @odoo-module alias=web.AbstractField **/ /** * This is the basic field widget used by all the views to render a field in a view. @@ -30,8 +29,8 @@ odoo.define('web.AbstractField', function (require) { * @module web.AbstractField */ -var field_utils = require('web.field_utils'); -var Widget = require('web.Widget'); +import field_utils from "web.field_utils"; +import Widget from "web.Widget"; var AbstractField = Widget.extend({ events: { @@ -686,6 +685,4 @@ var AbstractField = Widget.extend({ }, }); -return AbstractField; - -}); +export default AbstractField; diff --git a/addons/web/static/src/legacy/js/fields/basic_fields.js b/addons/web/static/src/legacy/js/fields/basic_fields.js index a5c9cae284a..19047d52a1c 100644 --- a/addons/web/static/src/legacy/js/fields/basic_fields.js +++ b/addons/web/static/src/legacy/js/fields/basic_fields.js @@ -1,5 +1,4 @@ -odoo.define('web.basic_fields', function (require) { -"use strict"; +/** @odoo-module alias=web.basic_fields **/ /** * This module contains most of the basic (meaning: non relational) field @@ -7,15 +6,15 @@ odoo.define('web.basic_fields', function (require) { * BasicView, so, they can work with the records obtained from a BasicModel. */ -var AbstractField = require('web.AbstractField'); -var core = require('web.core'); -var datepicker = require('web.datepicker'); -var dom = require('web.dom'); -var framework = require('web.framework'); -var py_utils = require('web.py_utils'); -var session = require('web.session'); -var field_utils = require('web.field_utils'); -var utils = require('web.utils'); +import AbstractField from "web.AbstractField"; +import core from "web.core"; +import datepicker from "web.datepicker"; +import dom from "web.dom"; +import framework from "web.framework"; +import py_utils from "web.py_utils"; +import session from "web.session"; +import field_utils from "web.field_utils"; +import utils from "web.utils"; var _t = core._t; var _lt = core._lt; @@ -1760,7 +1759,7 @@ var FieldToggleBoolean = AbstractField.extend({ }, }); -return { +export default { TranslatableFieldMixin: TranslatableFieldMixin, DebouncedField: DebouncedField, FieldBinaryFile: FieldBinaryFile, @@ -1782,5 +1781,3 @@ return { NumericField: NumericField, UrlWidget: UrlWidget, }; - -}); diff --git a/addons/web/static/src/legacy/js/fields/field_registration.js b/addons/web/static/src/legacy/js/fields/field_registration.js new file mode 100644 index 00000000000..f9d5c421954 --- /dev/null +++ b/addons/web/static/src/legacy/js/fields/field_registration.js @@ -0,0 +1,38 @@ +/** @odoo-module **/ + +import AbstractField from "web.AbstractField"; +import basic_fields from "web.basic_fields"; +import relational_fields from "web.relational_fields"; +import registry from "web.field_registry"; + +// Basic fields +registry + .add('abstract', AbstractField) + .add('input', basic_fields.InputField) + .add('integer', basic_fields.FieldInteger) + .add('boolean', basic_fields.FieldBoolean) + .add('date', basic_fields.FieldDate) + .add('datetime', basic_fields.FieldDateTime) + .add('float', basic_fields.FieldFloat) + .add('char', basic_fields.FieldChar) + .add('text', basic_fields.FieldText) + .add('url', basic_fields.UrlWidget) + .add('binary', basic_fields.FieldBinaryFile) + .add('monetary', basic_fields.FieldMonetary) + .add('percentage', basic_fields.FieldPercentage) + .add('float_time', basic_fields.FieldFloatTime) + .add('float_factor', basic_fields.FieldFloatFactor) + .add('float_toggle', basic_fields.FieldFloatToggle) + .add('many2one_reference', basic_fields.FieldInteger) + +// Relational fields +registry + .add('many2one', relational_fields.FieldMany2One) + .add('many2one_avatar', relational_fields.Many2OneAvatar) + .add('many2many_tags', relational_fields.FieldMany2ManyTags) + .add('many2many_tags_avatar', relational_fields.FieldMany2ManyTagsAvatar) + .add('kanban.many2many_tags_avatar', relational_fields.KanbanMany2ManyTagsAvatar) + .add('list.many2many_tags_avatar', relational_fields.ListMany2ManyTagsAvatar) + .add('form.many2many_tags', relational_fields.FormFieldMany2ManyTags) + .add('radio', relational_fields.FieldRadio) + .add('selection', relational_fields.FieldSelection); diff --git a/addons/web/static/src/legacy/js/fields/field_registry.js b/addons/web/static/src/legacy/js/fields/field_registry.js index e826b6452e9..4275fc6da61 100644 --- a/addons/web/static/src/legacy/js/fields/field_registry.js +++ b/addons/web/static/src/legacy/js/fields/field_registry.js @@ -1,53 +1,10 @@ -odoo.define('web.field_registry', function (require) { - "use strict"; - - const Registry = require('web.Registry'); +/** @odoo-module alias=web.field_registry **/ + + import Registry from "web.Registry"; const { Component } = owl; - return new Registry( + export default new Registry( null, (value) => !(value.prototype instanceof Component) ); -}); - -odoo.define('web._field_registry', function (require) { -"use strict"; - -var AbstractField = require('web.AbstractField'); -var basic_fields = require('web.basic_fields'); -var relational_fields = require('web.relational_fields'); -var registry = require('web.field_registry'); - -// Basic fields -registry - .add('abstract', AbstractField) - .add('input', basic_fields.InputField) - .add('integer', basic_fields.FieldInteger) - .add('boolean', basic_fields.FieldBoolean) - .add('date', basic_fields.FieldDate) - .add('datetime', basic_fields.FieldDateTime) - .add('float', basic_fields.FieldFloat) - .add('char', basic_fields.FieldChar) - .add('text', basic_fields.FieldText) - .add('url', basic_fields.UrlWidget) - .add('binary', basic_fields.FieldBinaryFile) - .add('monetary', basic_fields.FieldMonetary) - .add('percentage', basic_fields.FieldPercentage) - .add('float_time', basic_fields.FieldFloatTime) - .add('float_factor', basic_fields.FieldFloatFactor) - .add('float_toggle', basic_fields.FieldFloatToggle) - .add('many2one_reference', basic_fields.FieldInteger) - -// Relational fields -registry - .add('many2one', relational_fields.FieldMany2One) - .add('many2one_avatar', relational_fields.Many2OneAvatar) - .add('many2many_tags', relational_fields.FieldMany2ManyTags) - .add('many2many_tags_avatar', relational_fields.FieldMany2ManyTagsAvatar) - .add('kanban.many2many_tags_avatar', relational_fields.KanbanMany2ManyTagsAvatar) - .add('list.many2many_tags_avatar', relational_fields.ListMany2ManyTagsAvatar) - .add('form.many2many_tags', relational_fields.FormFieldMany2ManyTags) - .add('radio', relational_fields.FieldRadio) - .add('selection', relational_fields.FieldSelection); -}); \ No newline at end of file diff --git a/addons/web/static/src/legacy/js/fields/field_utils.js b/addons/web/static/src/legacy/js/fields/field_utils.js index 44dd61baacf..c4ae46602fb 100644 --- a/addons/web/static/src/legacy/js/fields/field_utils.js +++ b/addons/web/static/src/legacy/js/fields/field_utils.js @@ -1,5 +1,4 @@ -odoo.define('web.field_utils', function (require) { -"use strict"; +/** @odoo-module alias=web.field_utils **/ /** * Field Utils @@ -15,11 +14,11 @@ odoo.define('web.field_utils', function (require) { * conversions. */ -var core = require('web.core'); -var dom = require('web.dom'); -var session = require('web.session'); -var time = require('web.time'); -var utils = require('web.utils'); +import core from "web.core"; +import dom from "web.dom"; +import session from "web.session"; +import time from "web.time"; +import utils from "web.utils"; var _t = core._t; @@ -745,7 +744,7 @@ function parseMany2one(value) { return value; } -return { +export default { format: { binary: formatBinary, boolean: formatBoolean, @@ -791,5 +790,3 @@ return { json: _.identity, // todo }, }; - -}); diff --git a/addons/web/static/src/legacy/js/fields/relational_fields.js b/addons/web/static/src/legacy/js/fields/relational_fields.js index 7e69c4fde13..3563b4d6b2c 100644 --- a/addons/web/static/src/legacy/js/fields/relational_fields.js +++ b/addons/web/static/src/legacy/js/fields/relational_fields.js @@ -1,5 +1,4 @@ -odoo.define('web.relational_fields', function (require) { -"use strict"; +/** @odoo-module alias=web.relational_fields **/ /** * Relational Fields @@ -13,16 +12,16 @@ odoo.define('web.relational_fields', function (require) { * the corresponding record(s), or alter some of their fields. */ -var AbstractField = require('web.AbstractField'); -var concurrency = require('web.concurrency'); -var core = require('web.core'); -var Dialog = require('web.Dialog'); -var dom = require('web.dom'); -const { FormViewDialog } = require("@web/views/view_dialogs/form_view_dialog"); -const { SelectCreateDialog } = require("@web/views/view_dialogs/select_create_dialog"); -const Domain = require('web.Domain'); -const { sprintf } = require("web.utils"); -const { escape } = require("@web/core/utils/strings"); +import AbstractField from "web.AbstractField"; +import concurrency from "web.concurrency"; +import core from "web.core"; +import Dialog from "web.Dialog"; +import dom from "web.dom"; +import { FormViewDialog } from "@web/views/view_dialogs/form_view_dialog"; +import { SelectCreateDialog } from "@web/views/view_dialogs/select_create_dialog"; +import Domain from "web.Domain"; +import { sprintf } from "web.utils"; +import { escape } from "@web/core/utils/strings"; var _t = core._t; var _lt = core._lt; @@ -1703,7 +1702,7 @@ var FieldRadio = FieldSelection.extend({ }, }); -return { +export default { FieldMany2One: FieldMany2One, Many2OneAvatar: Many2OneAvatar, FieldMany2ManyTags: FieldMany2ManyTags, @@ -1714,5 +1713,3 @@ return { FieldRadio: FieldRadio, FieldSelection: FieldSelection, }; - -}); diff --git a/addons/web/static/src/legacy/js/model.js b/addons/web/static/src/legacy/js/model.js index 7f5a2ce3e61..a46d0fc29f0 100644 --- a/addons/web/static/src/legacy/js/model.js +++ b/addons/web/static/src/legacy/js/model.js @@ -1,9 +1,8 @@ -odoo.define("web.Model", function (require) { - "use strict"; - - const { groupBy } = require("web.utils"); - const Registry = require("web.Registry"); - const { useBus } = require("@web/core/utils/hooks"); +/** @odoo-module alias=web.Model **/ + + import { groupBy } from "web.utils"; + import Registry from "web.Registry"; + import { useBus } from "@web/core/utils/hooks"; const { EventBus, onWillRender, useComponent } = owl; const isNotNull = (val) => val !== null && val !== undefined; @@ -473,8 +472,7 @@ odoo.define("web.Model", function (require) { return model; } - return { + export default { Model, useModel, }; -}); diff --git a/addons/web/static/src/legacy/js/owl_compatibility.js b/addons/web/static/src/legacy/js/owl_compatibility.js index 298ac31776d..96a1754a125 100644 --- a/addons/web/static/src/legacy/js/owl_compatibility.js +++ b/addons/web/static/src/legacy/js/owl_compatibility.js @@ -1,8 +1,7 @@ -odoo.define('web.OwlCompatibility', function (require) { - "use strict"; - - const { LegacyComponent } = require("@web/legacy/legacy_component"); - const { templates } = require("@web/core/assets"); +/** @odoo-module alias=web.OwlCompatibility **/ + + import { LegacyComponent } from "@web/legacy/legacy_component"; + import { templates } from "@web/core/assets"; /** * This file defines the necessary tools for the transition phase where Odoo @@ -753,10 +752,9 @@ odoo.define('web.OwlCompatibility', function (require) { } } - return { + export default { ComponentAdapter, ComponentWrapper, WidgetAdapterMixin, standaloneAdapter, }; -}); diff --git a/addons/web/static/src/legacy/js/public/lazyloader.js b/addons/web/static/src/legacy/js/public/lazyloader.js index 37b5cab17ad..e4c98b2ec38 100644 --- a/addons/web/static/src/legacy/js/public/lazyloader.js +++ b/addons/web/static/src/legacy/js/public/lazyloader.js @@ -1,5 +1,4 @@ -odoo.define('web.public.lazyloader', function (require) { -'use strict'; +/** @odoo-module alias=web.public.lazyloader **/ var blockEvents = ['submit', 'click']; var blockFunction = function (ev) { @@ -108,8 +107,7 @@ function _loadScripts(scripts, index) { script.removeAttribute('data-src'); } -return { +export default { loadScripts: _loadScripts, allScriptsLoaded: _allScriptsLoaded, }; -}); diff --git a/addons/web/static/src/legacy/js/public/public_env.js b/addons/web/static/src/legacy/js/public/public_env.js index 581cccd430b..6bb3c76da06 100644 --- a/addons/web/static/src/legacy/js/public/public_env.js +++ b/addons/web/static/src/legacy/js/public/public_env.js @@ -1,11 +1,9 @@ -odoo.define("web.public_env", function (require) { - "use strict"; - +/** @odoo-module alias=web.public_env **/ + /** * This file defines the env to use in the public side. */ - const commonEnv = require("web.commonEnv"); + import commonEnv from "web.commonEnv"; - return commonEnv; -}); + export default commonEnv; diff --git a/addons/web/static/src/legacy/js/services/ajax_service.js b/addons/web/static/src/legacy/js/services/ajax_service.js index cb83dd9d553..dfa8a04e761 100644 --- a/addons/web/static/src/legacy/js/services/ajax_service.js +++ b/addons/web/static/src/legacy/js/services/ajax_service.js @@ -1,9 +1,8 @@ -odoo.define('web.AjaxService', function (require) { -"use strict"; +/** @odoo-module alias=web.AjaxService **/ -var AbstractService = require('web.AbstractService'); -var core = require('web.core'); -var session = require('web.session'); +import AbstractService from "web.AbstractService"; +import core from "web.core"; +import session from "web.session"; var AjaxService = AbstractService.extend({ rpc: function (route, args, options, target) { @@ -27,6 +26,4 @@ var AjaxService = AbstractService.extend({ core.serviceRegistry.add('ajax', AjaxService); -return AjaxService; - -}); +export default AjaxService; diff --git a/addons/web/static/src/legacy/js/services/config.js b/addons/web/static/src/legacy/js/services/config.js index 9d49280db6b..d07ba6c9d2e 100644 --- a/addons/web/static/src/legacy/js/services/config.js +++ b/addons/web/static/src/legacy/js/services/config.js @@ -1,9 +1,8 @@ -odoo.define('web.config', function (require) { -"use strict"; +/** @odoo-module alias=web.config **/ -const Bus = require('web.Bus'); -const { hasTouch, isAndroid, isIOS, isMobileOS } = require('@web/core/browser/feature_detection'); -const { getMediaQueryLists } = require('@web/core/ui/ui_service'); +import Bus from "web.Bus"; +import { hasTouch, isAndroid, isIOS, isMobileOS } from "@web/core/browser/feature_detection"; +import { getMediaQueryLists } from "@web/core/ui/ui_service"; const bus = new Bus(); @@ -118,6 +117,4 @@ function _updateSizeProps() { _.invoke(medias, 'addListener', _updateSizeProps); _updateSizeProps(); -return config; - -}); +export default config; diff --git a/addons/web/static/src/legacy/js/services/core.js b/addons/web/static/src/legacy/js/services/core.js index 1d4619f6610..9f566654388 100644 --- a/addons/web/static/src/legacy/js/services/core.js +++ b/addons/web/static/src/legacy/js/services/core.js @@ -1,12 +1,11 @@ -odoo.define('web.core', function (require) { -"use strict"; +/** @odoo-module alias=web.core **/ -var Bus = require('web.Bus'); -var config = require('web.config'); -var Class = require('web.Class'); -var QWeb = require('web.QWeb'); -var Registry = require('web.Registry'); -var translation = require('web.translation'); +import Bus from "web.Bus"; +import config from "web.config"; +import Class from "web.Class"; +import QWeb from "web.QWeb"; +import Registry from "web.Registry"; +import translation from "web.translation"; /** * Whether the client is currently in "debug" mode @@ -26,7 +25,7 @@ _.each('resize,scroll'.split(','), function (evtype) { }); }); -return { +export default { qweb: new QWeb(config.isDebug()), // core classes and functions @@ -45,5 +44,3 @@ return { */ csrf_token: odoo.csrf_token, }; - -}); diff --git a/addons/web/static/src/legacy/js/services/data_manager.js b/addons/web/static/src/legacy/js/services/data_manager.js index bf7c2b82a56..8067d936e01 100644 --- a/addons/web/static/src/legacy/js/services/data_manager.js +++ b/addons/web/static/src/legacy/js/services/data_manager.js @@ -1,13 +1,12 @@ -odoo.define('web.DataManager', function (require) { -"use strict"; +/** @odoo-module alias=web.data_manager **/ -var config = require('web.config'); -var core = require('web.core'); -var rpc = require('web.rpc'); -var session = require('web.session'); -const { generateLegacyLoadViewsResult } = require("@web/legacy/legacy_load_views"); +import config from "web.config"; +import core from "web.core"; +import rpc from "web.rpc"; +import session from "web.session"; +import { generateLegacyLoadViewsResult } from "@web/legacy/legacy_load_views"; -return core.Class.extend({ +const DataManager = core.Class.extend({ init: function () { this._init_cache(); core.bus.on('clear_cache', this, this.invalidate.bind(this)); @@ -222,15 +221,6 @@ return core.Class.extend({ }, }); -}); - -odoo.define('web.data_manager', function (require) { -"use strict"; - -var DataManager = require('web.DataManager'); - var data_manager = new DataManager(); -return data_manager; - -}); +export default data_manager; diff --git a/addons/web/static/src/legacy/js/services/local_storage_service.js b/addons/web/static/src/legacy/js/services/local_storage_service.js index 694dc6dacd0..0c0d077ec1f 100644 --- a/addons/web/static/src/legacy/js/services/local_storage_service.js +++ b/addons/web/static/src/legacy/js/services/local_storage_service.js @@ -1,13 +1,12 @@ -odoo.define('web.LocalStorageService', function (require) { -'use strict'; +/** @odoo-module alias=web.LocalStorageService **/ /** * This module defines a service to access the localStorage object. */ -var AbstractStorageService = require('web.AbstractStorageService'); -var core = require('web.core'); -var localStorage = require('web.local_storage'); +import AbstractStorageService from "web.AbstractStorageService"; +import core from "web.core"; +import localStorage from "web.local_storage"; var LocalStorageService = AbstractStorageService.extend({ storage: localStorage, @@ -15,6 +14,4 @@ var LocalStorageService = AbstractStorageService.extend({ core.serviceRegistry.add('local_storage', LocalStorageService); -return LocalStorageService; - -}); +export default LocalStorageService; diff --git a/addons/web/static/src/legacy/js/services/session.js b/addons/web/static/src/legacy/js/services/session.js index 2ce9feecd44..1f84524b240 100644 --- a/addons/web/static/src/legacy/js/services/session.js +++ b/addons/web/static/src/legacy/js/services/session.js @@ -1,11 +1,8 @@ -odoo.define('web.session', function (require) { -"use strict"; +/** @odoo-module alias=web.session **/ -var Session = require('web.Session'); +import Session from "web.Session"; var session = new Session(undefined, undefined, {use_cors: false}); session.is_bound = session.session_bind(); -return session; - -}); +export default session; diff --git a/addons/web/static/src/legacy/js/services/session_storage_service.js b/addons/web/static/src/legacy/js/services/session_storage_service.js index 41c47af3923..7a061272b87 100644 --- a/addons/web/static/src/legacy/js/services/session_storage_service.js +++ b/addons/web/static/src/legacy/js/services/session_storage_service.js @@ -1,13 +1,12 @@ -odoo.define('web.SessionStorageService', function (require) { -'use strict'; +/** @odoo-module alias=web.SessionStorageService **/ /** * This module defines a service to access the sessionStorage object. */ -var AbstractStorageService = require('web.AbstractStorageService'); -var core = require('web.core'); -var sessionStorage = require('web.sessionStorage'); +import AbstractStorageService from "web.AbstractStorageService"; +import core from "web.core"; +import sessionStorage from "web.sessionStorage"; var SessionStorageService = AbstractStorageService.extend({ storage: sessionStorage, @@ -15,6 +14,4 @@ var SessionStorageService = AbstractStorageService.extend({ core.serviceRegistry.add('session_storage', SessionStorageService); -return SessionStorageService; - -}); +export default SessionStorageService; diff --git a/addons/web/static/src/legacy/js/tools/tools.js b/addons/web/static/src/legacy/js/tools/tools.js index 3df456de877..94e4e35dab7 100644 --- a/addons/web/static/src/legacy/js/tools/tools.js +++ b/addons/web/static/src/legacy/js/tools/tools.js @@ -1,5 +1,4 @@ -odoo.define('web.tools', function (require) { -"use strict"; +/** @odoo-module alias=web.tools **/ /** * Wrapper for deprecated functions that display a warning message. @@ -15,8 +14,6 @@ function deprecated(fn, message) { }; } -return { +export default { deprecated: deprecated, }; - -}); diff --git a/addons/web/static/src/legacy/js/views/basic/basic_model.js b/addons/web/static/src/legacy/js/views/basic/basic_model.js index 53ced035546..b3e90f62bce 100644 --- a/addons/web/static/src/legacy/js/views/basic/basic_model.js +++ b/addons/web/static/src/legacy/js/views/basic/basic_model.js @@ -1,5 +1,4 @@ -odoo.define('web.BasicModel', function (require) { -"use strict"; +/** @odoo-module alias=web.BasicModel **/ /** * Basic Model @@ -83,14 +82,14 @@ odoo.define('web.BasicModel', function (require) { * element, so it can be edited later. */ -var AbstractModel = require('web.AbstractModel'); -var concurrency = require('web.concurrency'); -var Context = require('web.Context'); -var core = require('web.core'); -var Domain = require('web.Domain'); -var session = require('web.session'); -var utils = require('web.utils'); -var viewUtils = require('web.viewUtils'); +import AbstractModel from "web.AbstractModel"; +import concurrency from "web.concurrency"; +import Context from "web.Context"; +import core from "web.core"; +import Domain from "web.Domain"; +import session from "web.session"; +import utils from "web.utils"; +import viewUtils from "web.viewUtils"; var _t = core._t; @@ -5428,5 +5427,4 @@ var BasicModel = AbstractModel.extend({ }, }); -return BasicModel; -}); +export default BasicModel; diff --git a/addons/web/static/src/legacy/js/widgets/colorpicker.js b/addons/web/static/src/legacy/js/widgets/colorpicker.js index 2200e55aac4..ca7e675692b 100644 --- a/addons/web/static/src/legacy/js/widgets/colorpicker.js +++ b/addons/web/static/src/legacy/js/widgets/colorpicker.js @@ -1,10 +1,9 @@ -odoo.define('web.Colorpicker', function (require) { -'use strict'; +/** @odoo-module alias=web.Colorpicker **/ -var core = require('web.core'); -var utils = require('web.utils'); -var Dialog = require('web.Dialog'); -var Widget = require('web.Widget'); +import core from "web.core"; +import utils from "web.utils"; +import Dialog from "web.Dialog"; +import Widget from "web.Widget"; var _t = core._t; @@ -736,8 +735,7 @@ const ColorpickerDialog = Dialog.extend({ }, }); -return { +export default { ColorpickerDialog: ColorpickerDialog, ColorpickerWidget: ColorpickerWidget, }; -}); diff --git a/addons/web/static/src/legacy/js/widgets/date_picker.js b/addons/web/static/src/legacy/js/widgets/date_picker.js index e2cee2f3fcd..b73dee9a6ba 100644 --- a/addons/web/static/src/legacy/js/widgets/date_picker.js +++ b/addons/web/static/src/legacy/js/widgets/date_picker.js @@ -1,10 +1,9 @@ -odoo.define('web.datepicker', function (require) { -"use strict"; +/** @odoo-module alias=web.datepicker **/ -var core = require('web.core'); -var field_utils = require('web.field_utils'); -var time = require('web.time'); -var Widget = require('web.Widget'); +import core from "web.core"; +import field_utils from "web.field_utils"; +import time from "web.time"; +import Widget from "web.Widget"; var _t = core._t; @@ -350,9 +349,7 @@ var DateTimeWidget = DateWidget.extend({ }, }); -return { +export default { DateWidget: DateWidget, DateTimeWidget: DateTimeWidget, }; - -}); diff --git a/addons/web/static/src/legacy/js/widgets/domain_selector.js b/addons/web/static/src/legacy/js/widgets/domain_selector.js index 6c4abf4ff36..ac9e33fc58b 100644 --- a/addons/web/static/src/legacy/js/widgets/domain_selector.js +++ b/addons/web/static/src/legacy/js/widgets/domain_selector.js @@ -1,13 +1,12 @@ -odoo.define("web.DomainSelector", function (require) { -"use strict"; +/** @odoo-module alias=web.DomainSelector **/ -var core = require("web.core"); -var datepicker = require("web.datepicker"); -var dom = require('web.dom'); -var Domain = require("web.Domain"); -var field_utils = require("web.field_utils"); -var ModelFieldSelector = require("web.ModelFieldSelector"); -var Widget = require("web.Widget"); +import core from "web.core"; +import datepicker from "web.datepicker"; +import dom from "web.dom"; +import Domain from "web.Domain"; +import field_utils from "web.field_utils"; +import ModelFieldSelector from "web.ModelFieldSelector"; +import Widget from "web.Widget"; var _t = core._t; var _lt = core._lt; @@ -1013,5 +1012,4 @@ function instantiateNode(parent, model, domain, options) { return null; } -return DomainSelector; -}); +export default DomainSelector; diff --git a/addons/web/static/src/legacy/js/widgets/domain_selector_dialog.js b/addons/web/static/src/legacy/js/widgets/domain_selector_dialog.js index eb7a2bc396b..a6d453351c1 100644 --- a/addons/web/static/src/legacy/js/widgets/domain_selector_dialog.js +++ b/addons/web/static/src/legacy/js/widgets/domain_selector_dialog.js @@ -1,17 +1,16 @@ -odoo.define("web.DomainSelectorDialog", function (require) { -"use strict"; +/** @odoo-module alias=web.DomainSelectorDialog **/ -var core = require("web.core"); -var Dialog = require("web.Dialog"); -var Domain = require("web.Domain"); -var DomainSelector = require("web.DomainSelector"); +import core from "web.core"; +import Dialog from "web.Dialog"; +import Domain from "web.Domain"; +import DomainSelector from "web.DomainSelector"; var _t = core._t; /** * @class DomainSelectorDialog */ -return Dialog.extend({ +export default Dialog.extend({ custom_events: _.extend({}, Dialog.prototype.custom_events, { domain_changed: "_onDomainChange", }), @@ -66,4 +65,3 @@ return Dialog.extend({ this.newDomain = ev.data.domain; }, }); -}); diff --git a/addons/web/static/src/legacy/js/widgets/model_field_selector.js b/addons/web/static/src/legacy/js/widgets/model_field_selector.js index 11cc2101383..5719a8d167c 100644 --- a/addons/web/static/src/legacy/js/widgets/model_field_selector.js +++ b/addons/web/static/src/legacy/js/widgets/model_field_selector.js @@ -1,9 +1,8 @@ -odoo.define("web.ModelFieldSelector", function (require) { -"use strict"; +/** @odoo-module alias=web.ModelFieldSelector **/ -var core = require("web.core"); -var Widget = require("web.Widget"); -var ModelFieldSelectorPopover = require("web.ModelFieldSelectorPopover"); +import core from "web.core"; +import Widget from "web.Widget"; +import ModelFieldSelectorPopover from "web.ModelFieldSelectorPopover"; /** * The ModelFieldSelector widget can be used to display/select a particular @@ -175,5 +174,4 @@ var ModelFieldSelector = Widget.extend({ }, }); -return ModelFieldSelector; -}); +export default ModelFieldSelector; diff --git a/addons/web/static/src/legacy/js/widgets/model_field_selector_popover.js b/addons/web/static/src/legacy/js/widgets/model_field_selector_popover.js index 23b30ef9c63..3b71d1890e2 100644 --- a/addons/web/static/src/legacy/js/widgets/model_field_selector_popover.js +++ b/addons/web/static/src/legacy/js/widgets/model_field_selector_popover.js @@ -1,9 +1,8 @@ -odoo.define("web.ModelFieldSelectorPopover", function (require) { -"use strict"; +/** @odoo-module alias=web.ModelFieldSelectorPopover **/ -var core = require("web.core"); -var Widget = require("web.Widget"); -const { fuzzyLookup } = require('@web/core/utils/search'); +import core from "web.core"; +import Widget from "web.Widget"; +import { fuzzyLookup } from "@web/core/utils/search"; var _t = core._t; @@ -702,7 +701,7 @@ var ModelFieldSelectorPopover = Widget.extend({ } }); -return ModelFieldSelectorPopover; +export default ModelFieldSelectorPopover; /** * Allows to transform a mapping field name -> field info in an array of the @@ -729,4 +728,3 @@ function sortFields(fields, model, order) { }, p[1]); }).value(); } -}); diff --git a/addons/web/static/src/legacy/js/widgets/name_and_signature.js b/addons/web/static/src/legacy/js/widgets/name_and_signature.js index 78cd845999b..d611aae55a3 100644 --- a/addons/web/static/src/legacy/js/widgets/name_and_signature.js +++ b/addons/web/static/src/legacy/js/widgets/name_and_signature.js @@ -1,10 +1,9 @@ -odoo.define('web.name_and_signature', function (require) { -'use strict'; +/** @odoo-module alias=web.name_and_signature **/ -var core = require('web.core'); -var config = require('web.config'); -var utils = require('web.utils'); -var Widget = require('web.Widget'); +import core from "web.core"; +import config from "web.config"; +import utils from "web.utils"; +import Widget from "web.Widget"; /** @@ -681,7 +680,6 @@ var NameAndSignature = Widget.extend({ }, }); -return { +export default { NameAndSignature: NameAndSignature, }; -}); diff --git a/addons/web/static/src/legacy/legacy_setup.js b/addons/web/static/src/legacy/legacy_setup.js index 4b310f10cd6..cb7333a236f 100644 --- a/addons/web/static/src/legacy/legacy_setup.js +++ b/addons/web/static/src/legacy/legacy_setup.js @@ -13,7 +13,7 @@ import { makeLegacyActionManagerService } from "./backend_utils"; import * as AbstractService from "web.AbstractService"; import legacyEnv from "web.env"; import * as session from "web.session"; -import * as makeLegacyWebClientService from "web.pseudo_web_client"; +import makeLegacyWebClientService from "web.pseudo_web_client"; import { templates } from "@web/core/assets"; import { Component, whenReady } from "@odoo/owl"; diff --git a/addons/web/static/src/legacy/pseudo_web_client.js b/addons/web/static/src/legacy/pseudo_web_client.js new file mode 100644 index 00000000000..e7003b8f140 --- /dev/null +++ b/addons/web/static/src/legacy/pseudo_web_client.js @@ -0,0 +1,32 @@ +/** @odoo-module alias=web.pseudo_web_client **/ +import FakeWebClient from "web.web_client"; + +function makeLegacyWebClientService(legacyEnv) { + const legacyPseudoWebClient = { + dependencies: ["title", "router"], + start(env) { + function setTitlePart(part, title = null) { + env.services.title.setParts({ [part]: title }); + } + legacyEnv.bus.on("set_title_part", null, (params) => { + const { part, title } = params; + setTitlePart(part, title || null); + }); + Object.assign(FakeWebClient, { + do_push_state(state) { + if ("title" in state) { + setTitlePart("action", state.title); + delete state.title; + } + env.services.router.pushState(state); + }, + set_title(title) { + setTitlePart("action", title); + }, + }); + }, + }; + return legacyPseudoWebClient; +} + +export default makeLegacyWebClientService; diff --git a/addons/web/static/src/legacy/root_widget.js b/addons/web/static/src/legacy/root_widget.js index 6a89449de8f..56d286b99da 100644 --- a/addons/web/static/src/legacy/root_widget.js +++ b/addons/web/static/src/legacy/root_widget.js @@ -1,13 +1,12 @@ +/** @odoo-module alias=root.widget **/ /** * This module exists so that web_tour can use it as the parent of the * TourManager so it can get access to _trigger_up. */ -odoo.define("root.widget", function (require) { - // need to wait for owl.Component.env to be set by web.legacySetup - require("web.legacySetup"); - const { ComponentAdapter } = require("web.OwlCompatibility"); - // for its method _trigger_up. We can't use a standalone adapter because it - // attempt to call env.isDebug which is not defined in the tests when this - // module is loaded. - return new ComponentAdapter({ Component: owl.Component }, owl.Component.env); -}); +// need to wait for owl.Component.env to be set by web.legacySetup +import "web.legacySetup"; +import { ComponentAdapter } from "web.OwlCompatibility"; +// for its method _trigger_up. We can't use a standalone adapter because it +// attempt to call env.isDebug which is not defined in the tests when this +// module is loaded. +export default new ComponentAdapter({ Component: owl.Component }, owl.Component.env); diff --git a/addons/web/static/src/legacy/web_client.js b/addons/web/static/src/legacy/web_client.js index 99751e7863b..0c37f16b749 100644 --- a/addons/web/static/src/legacy/web_client.js +++ b/addons/web/static/src/legacy/web_client.js @@ -1,37 +1,2 @@ -odoo.define("web.web_client", function () { - return {}; -}); - -odoo.define("web.pseudo_web_client", function (require) { - const FakeWebClient = require("web.web_client"); - - function makeLegacyWebClientService(legacyEnv) { - const legacyPseudoWebClient = { - dependencies: ["title", "router"], - start(env) { - function setTitlePart(part, title = null) { - env.services.title.setParts({ [part]: title }); - } - legacyEnv.bus.on("set_title_part", null, (params) => { - const { part, title } = params; - setTitlePart(part, title || null); - }); - Object.assign(FakeWebClient, { - do_push_state(state) { - if ("title" in state) { - setTitlePart("action", state.title); - delete state.title; - } - env.services.router.pushState(state); - }, - set_title(title) { - setTitlePart("action", title); - }, - }); - }, - }; - return legacyPseudoWebClient; - } - - return makeLegacyWebClientService; -}); +/** @odoo-module alias=web.web_client **/ +export default {}; diff --git a/addons/web/static/tests/helpers/legacy.js b/addons/web/static/tests/helpers/legacy.js index 1773298471e..aed6b798af1 100644 --- a/addons/web/static/tests/helpers/legacy.js +++ b/addons/web/static/tests/helpers/legacy.js @@ -1,27 +1,3 @@ -odoo.define("web.SessionOverrideForTests", (require) => { - // Override the Session.session_reload function - // The wowl test infrastructure does set a correct odoo global value before each test - // while the session is built only once for all tests. - // So if a test does a session_reload, it will merge the odoo global of that test - // into the session, and will alter every subsequent test of the suite. - // Obviously, we don't want that, ever. - const { session: sessionInfo } = require("@web/session"); - const initialSessionInfo = Object.assign({}, sessionInfo); - const Session = require("web.Session"); - const { patch } = require("@web/core/utils/patch"); - patch(Session.prototype, "web.SessionTestPatch", { - async session_reload() { - for (const key in sessionInfo) { - delete sessionInfo[key]; - } - for (const key in initialSessionInfo) { - sessionInfo[key] = initialSessionInfo[key]; - } - return await this._super(...arguments); - }, - }); -}); - odoo.define("web.test_legacy", async (require) => { require("web.SessionOverrideForTests"); require("web.test_utils"); diff --git a/addons/web/static/tests/helpers/session.js b/addons/web/static/tests/helpers/session.js new file mode 100644 index 00000000000..984a7b77026 --- /dev/null +++ b/addons/web/static/tests/helpers/session.js @@ -0,0 +1,24 @@ +/** @odoo-module alias=web.SessionOverrideForTests **/ + +// Override the Session.session_reload function +// The wowl test infrastructure does set a correct odoo global value before each test +// while the session is built only once for all tests. +// So if a test does a session_reload, it will merge the odoo global of that test +// into the session, and will alter every subsequent test of the suite. +// Obviously, we don't want that, ever. +import { session as sessionInfo } from "@web/session"; +const initialSessionInfo = Object.assign({}, sessionInfo); +import Session from "web.Session"; +import { patch } from "@web/core/utils/patch"; + +patch(Session.prototype, "web.SessionTestPatch", { + async session_reload() { + for (const key in sessionInfo) { + delete sessionInfo[key]; + } + for (const key in initialSessionInfo) { + sessionInfo[key] = initialSessionInfo[key]; + } + return await this._super(...arguments); + }, +}); diff --git a/addons/web/static/tests/legacy/component_extension_tests.js b/addons/web/static/tests/legacy/component_extension_tests.js index 0fdf1587298..d025cb3415b 100644 --- a/addons/web/static/tests/legacy/component_extension_tests.js +++ b/addons/web/static/tests/legacy/component_extension_tests.js @@ -1,13 +1,12 @@ -odoo.define('web.component_extension_tests', function (require) { - "use strict"; - - const makeTestEnvironment = require("web.test_env"); - const testUtils = require("web.test_utils"); - const { destroy, getFixture, mount } = require("@web/../tests/helpers/utils"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module **/ + + import makeTestEnvironment from "web.test_env"; + import testUtils from "web.test_utils"; + import { destroy, getFixture, mount } from "@web/../tests/helpers/utils"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { xml } = owl; - const { useListener } = require("@web/core/utils/hooks"); + import { useListener } from "@web/core/utils/hooks"; let target; QUnit.module("web", { beforeEach() { target = getFixture(); }}, function () { @@ -237,4 +236,3 @@ odoo.define('web.component_extension_tests', function (require) { assert.verifySteps(['Root custom1', 'Leaf custom1']); }); }); -}); diff --git a/addons/web/static/tests/legacy/components/action_menus_tests.js b/addons/web/static/tests/legacy/components/action_menus_tests.js index ef92bc76249..cbbf59f5e30 100644 --- a/addons/web/static/tests/legacy/components/action_menus_tests.js +++ b/addons/web/static/tests/legacy/components/action_menus_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.action_menus_tests', function (require) { - "use strict"; - - const ActionMenus = require('web.ActionMenus'); - const Registry = require('web.Registry'); - const testUtils = require('web.test_utils'); +/** @odoo-module **/ + + import ActionMenus from "web.ActionMenus"; + import Registry from "web.Registry"; + import testUtils from "web.test_utils"; const { Component } = owl; const { createComponent } = testUtils; @@ -261,4 +260,3 @@ odoo.define('web.action_menus_tests', function (require) { await testUtils.controlPanel.toggleMenuItem(actionMenus, "What's taters, precious ?"); }); }); -}); diff --git a/addons/web/static/tests/legacy/components/custom_file_input_tests.js b/addons/web/static/tests/legacy/components/custom_file_input_tests.js index 19b6701b150..75f7a917730 100644 --- a/addons/web/static/tests/legacy/components/custom_file_input_tests.js +++ b/addons/web/static/tests/legacy/components/custom_file_input_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.custom_file_input_tests', function (require) { - "use strict"; - - const CustomFileInput = require('web.CustomFileInput'); - const testUtils = require('web.test_utils'); +/** @odoo-module **/ + + import CustomFileInput from "web.CustomFileInput"; + import testUtils from "web.test_utils"; const { createComponent } = testUtils; @@ -83,4 +82,3 @@ odoo.define('web.custom_file_input_tests', function (require) { assert.verifySteps(['/web/binary/upload_attachment']); }); }); -}); diff --git a/addons/web/static/tests/legacy/components/datepicker_tests.js b/addons/web/static/tests/legacy/components/datepicker_tests.js index aead623c7b9..3c0f0bee8d4 100644 --- a/addons/web/static/tests/legacy/components/datepicker_tests.js +++ b/addons/web/static/tests/legacy/components/datepicker_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.datepicker_tests', function (require) { - "use strict"; - - const { DatePicker, DateTimePicker } = require('web.DatePickerOwl'); - const testUtils = require('web.test_utils'); - const time = require('web.time'); +/** @odoo-module **/ + + import { DatePicker, DateTimePicker } from "web.DatePickerOwl"; + import testUtils from "web.test_utils"; + import time from "web.time"; const { createComponent } = testUtils; @@ -330,4 +329,3 @@ odoo.define('web.datepicker_tests', function (require) { testUtils.mock.unpatch(time); }); }); -}); diff --git a/addons/web/static/tests/legacy/components/dropdown_menu_mobile_tests.js b/addons/web/static/tests/legacy/components/dropdown_menu_mobile_tests.js index 584e5474b21..bffb3a257f0 100644 --- a/addons/web/static/tests/legacy/components/dropdown_menu_mobile_tests.js +++ b/addons/web/static/tests/legacy/components/dropdown_menu_mobile_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.dropdown_menu_mobile_tests', function (require) { - "use strict"; - - const DropdownMenu = require('web.DropdownMenu'); - const testUtils = require('web.test_utils'); +/** @odoo-module **/ + + import DropdownMenu from "web.DropdownMenu"; + import testUtils from "web.test_utils"; const { createComponent } = testUtils; @@ -65,4 +64,3 @@ odoo.define('web.dropdown_menu_mobile_tests', function (require) { }); }); -}); diff --git a/addons/web/static/tests/legacy/components/dropdown_menu_tests.js b/addons/web/static/tests/legacy/components/dropdown_menu_tests.js index 1991165322a..69b4b251cbd 100644 --- a/addons/web/static/tests/legacy/components/dropdown_menu_tests.js +++ b/addons/web/static/tests/legacy/components/dropdown_menu_tests.js @@ -1,11 +1,10 @@ -odoo.define('web.dropdown_menu_tests', function (require) { - "use strict"; - - const DropdownMenu = require('web.DropdownMenu'); - const testUtils = require('web.test_utils'); - const makeTestEnvironment = require("web.test_env"); - const { mount } = require("@web/../tests/helpers/utils"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module **/ + + import DropdownMenu from "web.DropdownMenu"; + import testUtils from "web.test_utils"; + import makeTestEnvironment from "web.test_env"; + import { mount } from "@web/../tests/helpers/utils"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useState, xml } = owl; const { createComponent } = testUtils; @@ -427,4 +426,3 @@ odoo.define('web.dropdown_menu_tests', function (require) { assert.hasClass(firstItemEl.querySelector("i"), "o_icon_right fa fa-caret-down"); }); }); -}); diff --git a/addons/web/static/tests/legacy/components/pager_tests.js b/addons/web/static/tests/legacy/components/pager_tests.js index 16344684fd4..84726aa1f23 100644 --- a/addons/web/static/tests/legacy/components/pager_tests.js +++ b/addons/web/static/tests/legacy/components/pager_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.pager_tests', function (require) { - "use strict"; - - const Pager = require('web.Pager'); - const testUtils = require('web.test_utils'); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module **/ + + import Pager from "web.Pager"; + import testUtils from "web.test_utils"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { createComponent } = testUtils; @@ -185,4 +184,3 @@ odoo.define('web.pager_tests', function (require) { "pager edition is re-enabled"); }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/comparison_menu_tests.js b/addons/web/static/tests/legacy/control_panel/comparison_menu_tests.js index d6754f4da02..6c4887e7c67 100644 --- a/addons/web/static/tests/legacy/control_panel/comparison_menu_tests.js +++ b/addons/web/static/tests/legacy/control_panel/comparison_menu_tests.js @@ -1,13 +1,12 @@ -odoo.define('web.comparison_menu_tests', function (require) { - "use strict"; - - const { browser } = require('@web/core/browser/browser'); - const { patchWithCleanup } = require('@web/../tests/helpers/utils'); - const cpHelpers = require('@web/../tests/search/helpers'); - const { +/** @odoo-module **/ + + import { browser } from "@web/core/browser/browser"; + import { patchWithCleanup } from "@web/../tests/helpers/utils"; + import * as cpHelpers from "@web/../tests/search/helpers"; + import { createControlPanel, mock, - } = require('web.test_utils'); + } from "web.test_utils"; const { patchDate } = mock; const searchMenuTypes = ['filter', 'comparison']; @@ -166,4 +165,3 @@ odoo.define('web.comparison_menu_tests', function (require) { assert.notOk("timeRanges" in controlPanel.getQuery()); }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/control_panel_model_extension_tests.js b/addons/web/static/tests/legacy/control_panel/control_panel_model_extension_tests.js index e4641e67b5d..3487f2e31f3 100644 --- a/addons/web/static/tests/legacy/control_panel/control_panel_model_extension_tests.js +++ b/addons/web/static/tests/legacy/control_panel/control_panel_model_extension_tests.js @@ -1,8 +1,7 @@ -odoo.define("web/static/tests/control_panel/control_panel_model_extension_tests.js", function (require) { - "use strict"; - - const ActionModel = require("web.ActionModel"); - const makeTestEnvironment = require('web.test_env'); +/** @odoo-module **/ + + import ActionModel from "web.ActionModel"; + import makeTestEnvironment from "web.test_env"; function createModel(params = {}) { const archs = (params.arch && { search: params.arch, }) || {}; @@ -455,4 +454,3 @@ odoo.define("web/static/tests/control_panel/control_panel_model_extension_tests. }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/control_panel_tests.js b/addons/web/static/tests/legacy/control_panel/control_panel_tests.js index 5b23b597743..c916a52728e 100644 --- a/addons/web/static/tests/legacy/control_panel/control_panel_tests.js +++ b/addons/web/static/tests/legacy/control_panel/control_panel_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.control_panel_tests', function (require) { - "use strict"; +/** @odoo-module **/ + + import testUtils from "web.test_utils"; - const testUtils = require('web.test_utils'); - - const cpHelpers = require('@web/../tests/search/helpers'); + import * as cpHelpers from "@web/../tests/search/helpers"; const { createControlPanel } = testUtils; QUnit.module('ControlPanel', { @@ -304,4 +303,3 @@ odoo.define('web.control_panel_tests', function (require) { }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/custom_filter_item_tests.js b/addons/web/static/tests/legacy/control_panel/custom_filter_item_tests.js index e51a968b6dc..2372d2d1eb8 100644 --- a/addons/web/static/tests/legacy/control_panel/custom_filter_item_tests.js +++ b/addons/web/static/tests/legacy/control_panel/custom_filter_item_tests.js @@ -1,14 +1,13 @@ -odoo.define('web.filter_menu_generator_tests', function (require) { - "use strict"; +/** @odoo-module **/ + + import Domain from "web.Domain"; + import CustomFilterItem from "web.CustomFilterItem"; + import ActionModel from "web.ActionModel"; + import pyUtils from "web.py_utils"; + import testUtils from "web.test_utils"; - const Domain = require('web.Domain'); - const CustomFilterItem = require('web.CustomFilterItem'); - const ActionModel = require('web.ActionModel'); - const pyUtils = require('web.py_utils'); - const testUtils = require('web.test_utils'); - - const { getFixture } = require('@web/../tests/helpers/utils'); - const cpHelpers = require('@web/../tests/search/helpers'); + import { getFixture } from "@web/../tests/helpers/utils"; + import * as cpHelpers from "@web/../tests/search/helpers"; const { createComponent } = testUtils; const toggleAddCustomFilterStandalone = async (el) => { @@ -621,4 +620,3 @@ odoo.define('web.filter_menu_generator_tests', function (require) { await cpHelpers.applyFilter(target); }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/filter_menu_tests.js b/addons/web/static/tests/legacy/control_panel/filter_menu_tests.js index 56c86eb8403..1b674d7ad6f 100644 --- a/addons/web/static/tests/legacy/control_panel/filter_menu_tests.js +++ b/addons/web/static/tests/legacy/control_panel/filter_menu_tests.js @@ -1,11 +1,10 @@ -odoo.define('web.filter_menu_tests', function (require) { - "use strict"; +/** @odoo-module **/ + + import { browser } from "@web/core/browser/browser"; + import { patchWithCleanup } from "@web/../tests/helpers/utils"; + import testUtils from "web.test_utils"; - const { browser } = require('@web/core/browser/browser'); - const { patchWithCleanup } = require('@web/../tests/helpers/utils'); - const testUtils = require('web.test_utils'); - - const cpHelpers = require('@web/../tests/search/helpers'); + import * as cpHelpers from "@web/../tests/search/helpers"; const { createControlPanel, mock } = testUtils; const { patchDate } = mock; @@ -484,4 +483,3 @@ odoo.define('web.filter_menu_tests', function (require) { }); }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/groupby_menu_tests.js b/addons/web/static/tests/legacy/control_panel/groupby_menu_tests.js index eed7b1423a7..bd407fea3db 100644 --- a/addons/web/static/tests/legacy/control_panel/groupby_menu_tests.js +++ b/addons/web/static/tests/legacy/control_panel/groupby_menu_tests.js @@ -1,11 +1,10 @@ -odoo.define('web.groupby_menu_tests', function (require) { - "use strict"; +/** @odoo-module **/ + + import { browser } from "@web/core/browser/browser"; + import { patchWithCleanup } from "@web/../tests/helpers/utils"; + import testUtils from "web.test_utils"; - const { browser } = require('@web/core/browser/browser'); - const { patchWithCleanup } = require('@web/../tests/helpers/utils'); - const testUtils = require('web.test_utils'); - - const cpHelpers = require('@web/../tests/search/helpers'); + import * as cpHelpers from "@web/../tests/search/helpers"; const { createControlPanel } = testUtils; const searchMenuTypes = ['groupBy']; @@ -469,4 +468,3 @@ odoo.define('web.groupby_menu_tests', function (require) { assert.deepEqual(cpHelpers.getFacetTexts(controlPanel), []); }); }); -}); diff --git a/addons/web/static/tests/legacy/control_panel/search_utils_tests.js b/addons/web/static/tests/legacy/control_panel/search_utils_tests.js index 5277f53c5c4..8f82a0553e6 100644 --- a/addons/web/static/tests/legacy/control_panel/search_utils_tests.js +++ b/addons/web/static/tests/legacy/control_panel/search_utils_tests.js @@ -1,14 +1,13 @@ -odoo.define('web.search_utils_tests', function (require) { - "use strict"; - - const { constructDateDomain } = require('web.searchUtils'); - const testUtils = require('web.test_utils'); - const { registry } = require("@web/core/registry"); - const { translatedTerms } = require("@web/core/l10n/translation"); - const { patchWithCleanup } = require("@web/../tests/helpers/utils"); - const { makeTestEnv } = require("@web/../tests/helpers/mock_env"); - const { makeFakeLocalizationService } = require("@web/../tests/helpers/mock_services"); - const { _t } = require('web.core'); +/** @odoo-module **/ + + import { constructDateDomain } from "web.searchUtils"; + import testUtils from "web.test_utils"; + import { registry } from "@web/core/registry"; + import { translatedTerms } from "@web/core/l10n/translation"; + import { patchWithCleanup } from "@web/../tests/helpers/utils"; + import { makeTestEnv } from "@web/../tests/helpers/mock_env"; + import { makeFakeLocalizationService } from "@web/../tests/helpers/mock_services"; + import { _t } from "web.core"; const patchDate = testUtils.mock.patchDate; @@ -366,4 +365,3 @@ odoo.define('web.search_utils_tests', function (require) { unpatchDate(); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/class_tests.js b/addons/web/static/tests/legacy/core/class_tests.js index 438b137e6a1..9a2ad898963 100644 --- a/addons/web/static/tests/legacy/core/class_tests.js +++ b/addons/web/static/tests/legacy/core/class_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.class_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var Class = require('web.Class'); +import Class from "web.Class"; QUnit.module('core', {}, function () { @@ -164,5 +163,3 @@ QUnit.module('core', {}, function () { }); - -}); diff --git a/addons/web/static/tests/legacy/core/concurrency_tests.js b/addons/web/static/tests/legacy/core/concurrency_tests.js index e88ae4b6eba..7b1b24bad4f 100644 --- a/addons/web/static/tests/legacy/core/concurrency_tests.js +++ b/addons/web/static/tests/legacy/core/concurrency_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.concurrency_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var concurrency = require('web.concurrency'); -var testUtils = require('web.test_utils'); +import concurrency from "web.concurrency"; +import testUtils from "web.test_utils"; var makeTestPromise = testUtils.makeTestPromise; var makeTestPromiseWithAssert = testUtils.makeTestPromiseWithAssert; @@ -588,5 +587,3 @@ QUnit.module('core', {}, function () { }); }); - -}); diff --git a/addons/web/static/tests/legacy/core/dialog_tests.js b/addons/web/static/tests/legacy/core/dialog_tests.js index d52b0494781..0696719b02b 100644 --- a/addons/web/static/tests/legacy/core/dialog_tests.js +++ b/addons/web/static/tests/legacy/core/dialog_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.dialog_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var Dialog = require('web.Dialog'); -var testUtils = require('web.test_utils'); -var Widget = require('web.Widget'); +import Dialog from "web.Dialog"; +import testUtils from "web.test_utils"; +import Widget from "web.Widget"; var ESCAPE_KEY = $.Event("keyup", { which: 27 }); @@ -322,5 +321,3 @@ QUnit.module('core', {}, function () { assert.containsNone(document.body, ".modal[role='dialog']"); }); }); - -}); diff --git a/addons/web/static/tests/legacy/core/dom_tests.js b/addons/web/static/tests/legacy/core/dom_tests.js index c57ced52099..9d5d3048505 100644 --- a/addons/web/static/tests/legacy/core/dom_tests.js +++ b/addons/web/static/tests/legacy/core/dom_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.dom_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var dom = require('web.dom'); -var testUtils = require('web.test_utils'); +import dom from "web.dom"; +import testUtils from "web.test_utils"; /** * Create an autoresize text area with 'border-box' as box sizing rule. @@ -130,4 +129,3 @@ QUnit.module('dom', {}, function () { }); }); -}); diff --git a/addons/web/static/tests/legacy/core/domain_tests.js b/addons/web/static/tests/legacy/core/domain_tests.js index 827b880eccf..8f6ec255b5d 100644 --- a/addons/web/static/tests/legacy/core/domain_tests.js +++ b/addons/web/static/tests/legacy/core/domain_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.domain_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var Domain = require('web.Domain'); +import Domain from "web.Domain"; QUnit.module('core', {}, function () { @@ -196,4 +195,3 @@ QUnit.module('core', {}, function () { assert.notOk(new Domain([['a', '=ilike', '%value']]).compute({ a: false })); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/mixins_tests.js b/addons/web/static/tests/legacy/core/mixins_tests.js index dbc639120f7..9061dc13b99 100644 --- a/addons/web/static/tests/legacy/core/mixins_tests.js +++ b/addons/web/static/tests/legacy/core/mixins_tests.js @@ -1,16 +1,15 @@ -odoo.define('web.mixins_tests', function (require) { -"use strict"; +/** @odoo-module **/ -const AbstractAction = require("web.AbstractAction"); -const core = require("web.core"); -var testUtils = require('web.test_utils'); -var Widget = require('web.Widget'); +import AbstractAction from "web.AbstractAction"; +import core from "web.core"; +import testUtils from "web.test_utils"; +import Widget from "web.Widget"; -const { dialogService } = require('@web/core/dialog/dialog_service'); -const { errorService } = require("@web/core/errors/error_service"); -const { registry } = require('@web/core/registry'); -const { getFixture, nextTick, patchWithCleanup } = require('@web/../tests/helpers/utils'); -const { createWebClient, doAction } = require('@web/../tests/webclient/helpers'); +import { dialogService } from "@web/core/dialog/dialog_service"; +import { errorService } from "@web/core/errors/error_service"; +import { registry } from "@web/core/registry"; +import { getFixture, nextTick, patchWithCleanup } from "@web/../tests/helpers/utils"; +import { createWebClient, doAction } from "@web/../tests/webclient/helpers"; QUnit.module('core', {}, function () { @@ -73,6 +72,3 @@ QUnit.module('core', {}, function () { assert.containsOnce(target, ".o_dialog"); }); }); - -}); - diff --git a/addons/web/static/tests/legacy/core/owl_dialog_tests.js b/addons/web/static/tests/legacy/core/owl_dialog_tests.js index 83a51f01360..13ee3a37beb 100644 --- a/addons/web/static/tests/legacy/core/owl_dialog_tests.js +++ b/addons/web/static/tests/legacy/core/owl_dialog_tests.js @@ -1,21 +1,20 @@ -odoo.define('web.owl_dialog_tests', function (require) { - "use strict"; +/** @odoo-module **/ + + import LegacyDialog from "web.Dialog"; + import makeTestEnvironment from "web.test_env"; + import Dialog from "web.OwlDialog"; + import testUtils from "web.test_utils"; - const LegacyDialog = require('web.Dialog'); - const makeTestEnvironment = require('web.test_env'); - const Dialog = require('web.OwlDialog'); - const testUtils = require('web.test_utils'); - - const { makeLegacyDialogMappingTestEnv } = require('@web/../tests/helpers/legacy_env_utils'); - const { Dialog: WowlDialog } = require("@web/core/dialog/dialog"); - const { WithEnv } = require("@web/core/utils/components"); - const { + import { makeLegacyDialogMappingTestEnv } from "@web/../tests/helpers/legacy_env_utils"; + import { Dialog as WowlDialog } from "@web/core/dialog/dialog"; + import { WithEnv } from "@web/core/utils/components"; + import { getFixture, nextTick, mount, destroy, - } = require("@web/../tests/helpers/utils"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); + } from "@web/../tests/helpers/utils"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { Component, useState, xml } = owl; const EscapeKey = { key: 'Escape', keyCode: 27, which: 27 }; @@ -413,4 +412,3 @@ odoo.define('web.owl_dialog_tests', function (require) { destroy(parent2); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/patch_tests.js b/addons/web/static/tests/legacy/core/patch_tests.js index ee6c579cbc5..13b6405e319 100644 --- a/addons/web/static/tests/legacy/core/patch_tests.js +++ b/addons/web/static/tests/legacy/core/patch_tests.js @@ -1,7 +1,6 @@ -odoo.define("web.patch_tests", function (require) { -"use strict"; +/** @odoo-module **/ -const { AlreadyDefinedPatchError, patch, unpatch, UnknownPatchError } = require('web.utils'); +import { AlreadyDefinedPatchError, patch, unpatch, UnknownPatchError } from "web.utils"; function makeBaseClass(assert, assertInSetup) { class BaseClass { @@ -1213,4 +1212,3 @@ QUnit.module('core', {}, function () { }); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/popover_tests.js b/addons/web/static/tests/legacy/core/popover_tests.js index 8cc68369908..26e58d90728 100644 --- a/addons/web/static/tests/legacy/core/popover_tests.js +++ b/addons/web/static/tests/legacy/core/popover_tests.js @@ -1,11 +1,10 @@ -odoo.define('web.popover_tests', function (require) { - 'use strict'; - - const makeTestEnvironment = require('web.test_env'); - const Popover = require('web.Popover'); - const testUtils = require('web.test_utils'); - const { click, mount } = require("@web/../tests/helpers/utils"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); +/** @odoo-module **/ + + import makeTestEnvironment from "web.test_env"; + import Popover from "web.Popover"; + import testUtils from "web.test_utils"; + import { click, mount } from "@web/../tests/helpers/utils"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { useState, xml } = owl; @@ -268,4 +267,3 @@ odoo.define('web.popover_tests', function (require) { assert.containsNone(body, '#close'); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/py_utils_tests.js b/addons/web/static/tests/legacy/core/py_utils_tests.js index 6ef40ca4462..4fe4a729ca3 100644 --- a/addons/web/static/tests/legacy/core/py_utils_tests.js +++ b/addons/web/static/tests/legacy/core/py_utils_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.py_utils_tests', function(require) { -"use strict"; +/** @odoo-module **/ -var Context = require('web.Context'); -var pyUtils = require('web.py_utils'); -var time = require('web.time'); +import Context from "web.Context"; +import pyUtils from "web.py_utils"; +import time from "web.time"; const r = String.raw; @@ -1403,4 +1402,3 @@ QUnit.module('core', function () { ); }); }); -}); diff --git a/addons/web/static/tests/legacy/core/registry_tests.js b/addons/web/static/tests/legacy/core/registry_tests.js index eb3389a4383..51fe074bc9f 100644 --- a/addons/web/static/tests/legacy/core/registry_tests.js +++ b/addons/web/static/tests/legacy/core/registry_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.registry_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var Registry = require('web.Registry'); +import Registry from "web.Registry"; QUnit.module('core', {}, function () { @@ -86,5 +85,3 @@ QUnit.module('core', {}, function () { assert.verifySteps(["age"]); }); }); - -}); diff --git a/addons/web/static/tests/legacy/core/rpc_tests.js b/addons/web/static/tests/legacy/core/rpc_tests.js index 06763e38f0d..25f71a1677a 100644 --- a/addons/web/static/tests/legacy/core/rpc_tests.js +++ b/addons/web/static/tests/legacy/core/rpc_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.rpc_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var rpc = require('web.rpc'); +import rpc from "web.rpc"; QUnit.module('core', {}, function () { @@ -312,5 +311,3 @@ QUnit.module('core', {}, function () { assert.deepEqual(query.params.sort, undefined, "should not enforce a default value for order"); }); }); - -}); diff --git a/addons/web/static/tests/legacy/core/time_tests.js b/addons/web/static/tests/legacy/core/time_tests.js index 54b8ccae825..c04afb3c430 100644 --- a/addons/web/static/tests/legacy/core/time_tests.js +++ b/addons/web/static/tests/legacy/core/time_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.time_tests', function (require) { -"use strict"; +/** @odoo-module **/ -const core = require('web.core'); -var time = require('web.time'); +import core from "web.core"; +import time from "web.time"; QUnit.module('core', {}, function () { @@ -161,5 +160,3 @@ QUnit.module('core', {}, function () { }); }); - -}); \ No newline at end of file diff --git a/addons/web/static/tests/legacy/core/util_tests.js b/addons/web/static/tests/legacy/core/util_tests.js index c69be2ea31e..3b5f6a0fad9 100644 --- a/addons/web/static/tests/legacy/core/util_tests.js +++ b/addons/web/static/tests/legacy/core/util_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.util_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var utils = require('web.utils'); +import utils from "web.utils"; QUnit.module('core', {}, function () { @@ -303,5 +302,3 @@ QUnit.module('core', {}, function () { assert.deepEqual(sortBy(objstrss, prop, 'desc'), [{ x: 'z' }, { x: 'b' }, { x: 'a' }]); }); }); - -}); diff --git a/addons/web/static/tests/legacy/core/widget_tests.js b/addons/web/static/tests/legacy/core/widget_tests.js index ed8fac6c789..ff72083602b 100644 --- a/addons/web/static/tests/legacy/core/widget_tests.js +++ b/addons/web/static/tests/legacy/core/widget_tests.js @@ -1,12 +1,11 @@ -odoo.define('web.widget_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var AjaxService = require('web.AjaxService'); -var core = require('web.core'); -var Dialog = require('web.Dialog'); -var QWeb = require('web.QWeb'); -var Widget = require('web.Widget'); -var testUtils = require('web.test_utils'); +import AjaxService from "web.AjaxService"; +import core from "web.core"; +import Dialog from "web.Dialog"; +import QWeb from "web.QWeb"; +import Widget from "web.Widget"; +import testUtils from "web.test_utils"; QUnit.module('core', {}, function () { @@ -526,5 +525,3 @@ QUnit.module('core', {}, function () { dialog.close(); }); }); - -}); diff --git a/addons/web/static/tests/legacy/frontend/keyboard_navigation_mixin_tests.js b/addons/web/static/tests/legacy/frontend/keyboard_navigation_mixin_tests.js index b0c638dd802..c3b5469b66b 100644 --- a/addons/web/static/tests/legacy/frontend/keyboard_navigation_mixin_tests.js +++ b/addons/web/static/tests/legacy/frontend/keyboard_navigation_mixin_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.keyboard_navigation_mixin_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var KeyboardNavigationMixin = require('web.KeyboardNavigationMixin'); -var testUtils = require('web.test_utils'); -var Widget = require('web.Widget'); +import KeyboardNavigationMixin from "web.KeyboardNavigationMixin"; +import testUtils from "web.test_utils"; +import Widget from "web.Widget"; QUnit.module('KeyboardNavigationMixin', function () { QUnit.test('aria-keyshortcuts is added on elements with accesskey', async function (assert) { @@ -85,4 +84,3 @@ QUnit.module('KeyboardNavigationMixin', function () { parent.destroy(); }); }); -}); diff --git a/addons/web/static/tests/legacy/helpers/mock_server.js b/addons/web/static/tests/legacy/helpers/mock_server.js index 5578c7d6a8d..0051c9f7655 100644 --- a/addons/web/static/tests/legacy/helpers/mock_server.js +++ b/addons/web/static/tests/legacy/helpers/mock_server.js @@ -1,9 +1,8 @@ -odoo.define('web.MockServer', function (require) { -"use strict"; +/** @odoo-module alias=web.MockServer **/ -var Class = require('web.Class'); -var Domain = require('web.Domain'); -var pyUtils = require('web.py_utils'); +import Class from "web.Class"; +import Domain from "web.Domain"; +import pyUtils from "web.py_utils"; var MockServer = Class.extend({ /** @@ -2271,6 +2270,4 @@ var MockServer = Class.extend({ }, }); -return MockServer; - -}); +export default MockServer; diff --git a/addons/web/static/tests/legacy/helpers/test_env.js b/addons/web/static/tests/legacy/helpers/test_env.js index cededce739e..64634b3d1a1 100644 --- a/addons/web/static/tests/legacy/helpers/test_env.js +++ b/addons/web/static/tests/legacy/helpers/test_env.js @@ -1,11 +1,10 @@ -odoo.define('web.test_env', async function (require) { - "use strict"; - - const Bus = require('web.Bus'); - const session = require('web.session'); - const { makeTestEnvServices } = require('@web/../tests/legacy/helpers/test_services'); - const { templates, setLoadXmlDefaultApp } = require("@web/core/assets"); - const { renderToString } = require('@web/core/utils/render'); +/** @odoo-module alias=web.test_env **/ + + import Bus from "web.Bus"; + import session from "web.session"; + import { makeTestEnvServices } from "@web/../tests/legacy/helpers/test_services"; + import { templates, setLoadXmlDefaultApp } from "@web/core/assets"; + import { renderToString } from "@web/core/utils/render"; const { App, Component } = owl; let app; @@ -84,5 +83,4 @@ odoo.define('web.test_env', async function (require) { Component.env = makeTestEnvironment(); }); - return makeTestEnvironment; -}); + export default makeTestEnvironment; diff --git a/addons/web/static/tests/legacy/helpers/test_utils_control_panel.js b/addons/web/static/tests/legacy/helpers/test_utils_control_panel.js index f0b4391b478..8c13fbb809a 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_control_panel.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_control_panel.js @@ -1,8 +1,7 @@ -odoo.define('web.test_utils_control_panel', function (require) { - "use strict"; - - const { click, findItem, getNode, triggerEvent } = require('web.test_utils_dom'); - const { editInput, editSelect, editAndTrigger } = require('web.test_utils_fields'); +/** @odoo-module alias=web.test_utils_control_panel **/ + + import { click, findItem, getNode, triggerEvent } from "web.test_utils_dom"; + import { editInput, editSelect, editAndTrigger } from "web.test_utils_fields"; //------------------------------------------------------------------------- // Exported functions @@ -313,7 +312,7 @@ odoo.define('web.test_utils_control_panel', function (require) { await click(getNode(el).querySelector(`button.o_switch_view.o_${viewType}`)); } - return { + export default { // Generic interactions toggleMenu, toggleMenuItem, @@ -357,4 +356,3 @@ odoo.define('web.test_utils_control_panel', function (require) { // View switcher switchView, }; -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_create.js b/addons/web/static/tests/legacy/helpers/test_utils_create.js index e93e2161c4a..43f8495d118 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_create.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_create.js @@ -1,6 +1,5 @@ -odoo.define('web.test_utils_create', function (require) { - "use strict"; - +/** @odoo-module alias=web.test_utils_create **/ + /** * Create Test Utils * @@ -10,19 +9,19 @@ odoo.define('web.test_utils_create', function (require) { * testUtils file. */ - const ActionMenus = require('web.ActionMenus'); - const concurrency = require('web.concurrency'); - const ControlPanel = require('web.ControlPanel'); - const { useListener } = require("@web/core/utils/hooks"); - const dom = require('web.dom'); - const makeTestEnvironment = require('web.test_env'); - const ActionModel = require('web.ActionModel'); - const Registry = require('web.Registry'); - const testUtilsMock = require('web.test_utils_mock'); - const Widget = require('web.Widget'); - const { destroy, getFixture, mount, useChild } = require('@web/../tests/helpers/utils'); - const { registerCleanup } = require("@web/../tests/helpers/cleanup"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); + import ActionMenus from "web.ActionMenus"; + import concurrency from "web.concurrency"; + import ControlPanel from "web.ControlPanel"; + import { useListener } from "@web/core/utils/hooks"; + import dom from "web.dom"; + import makeTestEnvironment from "web.test_env"; + import ActionModel from "web.ActionModel"; + import Registry from "web.Registry"; + import testUtilsMock from "web.test_utils_mock"; + import Widget from "web.Widget"; + import { destroy, getFixture, mount, useChild } from "@web/../tests/helpers/utils"; + import { registerCleanup } from "@web/../tests/helpers/cleanup"; + import { LegacyComponent } from "@web/legacy/legacy_component"; const { Component, onMounted, onWillStart, useState, xml } = owl; @@ -391,7 +390,7 @@ odoo.define('web.test_utils_create', function (require) { return debug ? document.body : document.getElementById('qunit-fixture'); } - return { + export default { createCalendarView, createComponent, createControlPanel, @@ -400,4 +399,3 @@ odoo.define('web.test_utils_create', function (require) { createView, prepareTarget, }; -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_dom.js b/addons/web/static/tests/legacy/helpers/test_utils_dom.js index cb4f09d9381..27cd3485e94 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_dom.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_dom.js @@ -1,8 +1,7 @@ -odoo.define('web.test_utils_dom', function (require) { - "use strict"; - - const concurrency = require('web.concurrency'); - const Widget = require('web.Widget'); +/** @odoo-module alias=web.test_utils_dom **/ + + import concurrency from "web.concurrency"; + import Widget from "web.Widget"; const { Component } = owl; @@ -588,7 +587,7 @@ odoo.define('web.test_utils_dom', function (require) { return element; } - return { + export default { click, clickFirst, clickLast, @@ -604,4 +603,3 @@ odoo.define('web.test_utils_dom', function (require) { triggerPositionalMouseEvent, triggerPositionalTapEvents, }; -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_fields.js b/addons/web/static/tests/legacy/helpers/test_utils_fields.js index 3e35235cfcc..7b84a131f95 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_fields.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_fields.js @@ -1,6 +1,5 @@ -odoo.define('web.test_utils_fields', function (require) { - "use strict"; - +/** @odoo-module alias=web.test_utils_fields **/ + /** * Field Test Utils * @@ -10,7 +9,7 @@ odoo.define('web.test_utils_fields', function (require) { * testUtils file. */ - const testUtilsDom = require('web.test_utils_dom'); + import testUtilsDom from "web.test_utils_dom"; const ARROW_KEYS_MAPPING = { down: 'ArrowDown', @@ -234,7 +233,7 @@ odoo.define('web.test_utils_fields', function (require) { return triggerKey('up', $el, keyCode); } - return { + export default { clickM2OCreateAndEdit, clickM2OHighlightedItem, clickM2OItem, @@ -247,4 +246,3 @@ odoo.define('web.test_utils_fields', function (require) { triggerKeydown, triggerKeyup, }; -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_file.js b/addons/web/static/tests/legacy/helpers/test_utils_file.js index ecdd85e52d6..94e19ee55c7 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_file.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_file.js @@ -1,5 +1,4 @@ -odoo.define('web.test_utils_file', function () { -"use strict"; +/** @odoo-module alias=web.test_utils_file **/ /** * FILE Test Utils @@ -147,12 +146,10 @@ function inputFiles(el, files) { // Exposed API //------------------------------------------------------------------------------ -return { +export default { createFile: createFile, dragoverFile: dragoverFile, dropFile: dropFile, dropFiles, inputFiles, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_form.js b/addons/web/static/tests/legacy/helpers/test_utils_form.js index b4bff154ce7..8b6f61c59e0 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_form.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_form.js @@ -1,5 +1,4 @@ -odoo.define('web.test_utils_form', function (require) { -"use strict"; +/** @odoo-module alias=web.test_utils_form **/ /** * Form Test Utils @@ -10,7 +9,7 @@ odoo.define('web.test_utils_form', function (require) { * testUtils file. */ -var testUtilsDom = require('web.test_utils_dom'); +import testUtilsDom from "web.test_utils_dom"; /** * Clicks on the Edit button in a form view, to set it to edit mode. Note that @@ -63,12 +62,10 @@ function reload(form, params) { return form.reload(params); } -return { +export default { clickEdit: clickEdit, clickSave: clickSave, clickCreate: clickCreate, clickDiscard: clickDiscard, reload: reload, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_graph.js b/addons/web/static/tests/legacy/helpers/test_utils_graph.js index f6b50a1b571..8549ffb6a16 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_graph.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_graph.js @@ -1,5 +1,4 @@ -odoo.define('web.test_utils_graph', function () { -"use strict"; +/** @odoo-module alias=web.test_utils_graph **/ /** * Graph Test Utils @@ -21,8 +20,6 @@ function reload(graph, params) { return graph.reload(params); } -return { +export default { reload: reload, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_kanban.js b/addons/web/static/tests/legacy/helpers/test_utils_kanban.js index 76af632b417..3ac5c2db0e5 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_kanban.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_kanban.js @@ -1,5 +1,4 @@ -odoo.define('web.test_utils_kanban', function (require) { -"use strict"; +/** @odoo-module alias=web.test_utils_kanban **/ /** * Kanban Test Utils @@ -10,8 +9,8 @@ odoo.define('web.test_utils_kanban', function (require) { * testUtils file. */ -var testUtilsDom = require('web.test_utils_dom'); -var testUtilsFields = require('web.test_utils_fields'); +import testUtilsDom from "web.test_utils_dom"; +import testUtilsFields from "web.test_utils_fields"; /** * Clicks on the Create button in a kanban view. Note that this method checks that @@ -91,12 +90,10 @@ function toggleRecordDropdown($record) { } -return { +export default { clickCreate: clickCreate, quickCreate: quickCreate, reload: reload, toggleGroupSettings: toggleGroupSettings, toggleRecordDropdown: toggleRecordDropdown, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_mock.js b/addons/web/static/tests/legacy/helpers/test_utils_mock.js index 5a8e2a0274d..23311be2de0 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_mock.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_mock.js @@ -1,5 +1,4 @@ -odoo.define('web.test_utils_mock', function (require) { -"use strict"; +/** @odoo-module alias=web.test_utils_mock **/ /** * Mock Test Utils @@ -10,23 +9,23 @@ odoo.define('web.test_utils_mock', function (require) { * testUtils file. */ -const AbstractStorageService = require('web.AbstractStorageService'); -const AjaxService = require('web.AjaxService'); -const basic_fields = require('web.basic_fields'); -const Bus = require('web.Bus'); -const config = require('web.config'); -const core = require('web.core'); -const dom = require('web.dom'); -const makeTestEnvironment = require('web.test_env'); -const MockServer = require('web.MockServer'); -const RamStorage = require('web.RamStorage'); -const session = require('web.session'); -const { patchWithCleanup, patchDate } = require("@web/../tests/helpers/utils"); -const { browser } = require("@web/core/browser/browser"); -const { assets } = require("@web/core/assets"); -const { processArch } = require("@web/legacy/legacy_load_views"); +import AbstractStorageService from "web.AbstractStorageService"; +import AjaxService from "web.AjaxService"; +import basic_fields from "web.basic_fields"; +import Bus from "web.Bus"; +import config from "web.config"; +import core from "web.core"; +import dom from "web.dom"; +import makeTestEnvironment from "web.test_env"; +import MockServer from "web.MockServer"; +import RamStorage from "web.RamStorage"; +import session from "web.session"; +import { patchWithCleanup, patchDate } from "@web/../tests/helpers/utils"; +import { browser } from "@web/core/browser/browser"; +import { assets } from "@web/core/assets"; +import { processArch } from "@web/legacy/legacy_load_views"; -const { Component } = require("@odoo/owl"); +import { Component } from "@odoo/owl"; const DebouncedField = basic_fields.DebouncedField; @@ -721,7 +720,7 @@ function patchSetTimeout() { }; } -return { +export default { addMockEnvironment: addMockEnvironment, getView: getView, addMockEnvironmentOwl: addMockEnvironmentOwl, @@ -731,5 +730,3 @@ return { unpatch: unpatch, patchSetTimeout: patchSetTimeout, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_modal.js b/addons/web/static/tests/legacy/helpers/test_utils_modal.js index ca3eeef11a7..010f88d0c91 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_modal.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_modal.js @@ -1,6 +1,5 @@ -odoo.define('web.test_utils_modal', function (require) { - "use strict"; - +/** @odoo-module alias=web.test_utils_modal **/ + /** * Modal Test Utils * @@ -10,8 +9,8 @@ odoo.define('web.test_utils_modal', function (require) { * testUtils file. */ - const { _t } = require('web.core'); - const testUtilsDom = require('web.test_utils_dom'); + import { _t } from "web.core"; + import testUtilsDom from "web.test_utils_dom"; /** * Click on a button in the footer of a modal (which contains a given string). @@ -22,5 +21,4 @@ odoo.define('web.test_utils_modal', function (require) { return testUtilsDom.click($(`.modal-footer button:contains(${_t(text)})`)); } - return { clickButton }; -}); + export default { clickButton }; diff --git a/addons/web/static/tests/legacy/helpers/test_utils_pivot.js b/addons/web/static/tests/legacy/helpers/test_utils_pivot.js index fe059b533ed..b041431a586 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_pivot.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_pivot.js @@ -1,7 +1,6 @@ -odoo.define('web.test_utils_pivot', function (require) { -"use strict"; +/** @odoo-module alias=web.test_utils_pivot **/ -var testUtilsDom = require('web.test_utils_dom'); +import testUtilsDom from "web.test_utils_dom"; /** * Pivot Test Utils @@ -48,10 +47,8 @@ function reload(pivot, params) { return pivot.reload(params); } -return { +export default { clickMeasure: clickMeasure, reload: reload, toggleMeasuresDropdown: toggleMeasuresDropdown, }; - -}); diff --git a/addons/web/static/tests/legacy/helpers/test_utils_tests.js b/addons/web/static/tests/legacy/helpers/test_utils_tests.js index d4f386625f7..7f1a5b9c8cb 100644 --- a/addons/web/static/tests/legacy/helpers/test_utils_tests.js +++ b/addons/web/static/tests/legacy/helpers/test_utils_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.testUtilsTests', function (require) { -"use strict"; +/** @odoo-module **/ -var testUtils = require('web.test_utils'); +import testUtils from "web.test_utils"; QUnit.module('web', {}, function () { QUnit.module('testUtils', {}, function () { @@ -31,6 +30,5 @@ QUnit.test('new moment', function (assert) { unpatchDate(); }); -}); }); }); \ No newline at end of file diff --git a/addons/web/static/tests/legacy/mockserver_tests.js b/addons/web/static/tests/legacy/mockserver_tests.js index dd1f24359fc..b87cd855952 100644 --- a/addons/web/static/tests/legacy/mockserver_tests.js +++ b/addons/web/static/tests/legacy/mockserver_tests.js @@ -1,7 +1,6 @@ -odoo.define('web.mockserver_tests', function (require) { -"use strict"; +/** @odoo-module **/ -const MockServer = require("web.MockServer"); +import MockServer from "web.MockServer"; QUnit.module("Legacy MockServer", { beforeEach() { @@ -562,4 +561,3 @@ QUnit.module("Legacy MockServer", { ]); }); }); -}); diff --git a/addons/web/static/tests/legacy/owl_compatibility_tests.js b/addons/web/static/tests/legacy/owl_compatibility_tests.js index aa9b889f25b..3d0b7ff85a1 100644 --- a/addons/web/static/tests/legacy/owl_compatibility_tests.js +++ b/addons/web/static/tests/legacy/owl_compatibility_tests.js @@ -1,20 +1,19 @@ -odoo.define('web.OwlCompatibilityTests', function (require) { - "use strict"; - - const { +/** @odoo-module **/ + + import { ComponentAdapter, ComponentWrapper, WidgetAdapterMixin, - } = require('web.OwlCompatibility'); - const testUtils = require('web.test_utils'); - const Widget = require('web.Widget'); - const { registry } = require("@web/core/registry"); - const { LegacyComponent } = require("@web/legacy/legacy_component"); - const { mapLegacyEnvToWowlEnv, useWowlService } = require("@web/legacy/utils"); + } from "web.OwlCompatibility"; + import testUtils from "web.test_utils"; + import Widget from "web.Widget"; + import { registry } from "@web/core/registry"; + import { LegacyComponent } from "@web/legacy/legacy_component"; + import { mapLegacyEnvToWowlEnv, useWowlService } from "@web/legacy/utils"; - const makeTestEnvironment = require("web.test_env"); - const { makeTestEnv } = require("@web/../tests/helpers/mock_env"); - const { getFixture, mount, useLogLifeCycle, destroy } = require("@web/../tests/helpers/utils"); + import makeTestEnvironment from "web.test_env"; + import { makeTestEnv } from "@web/../tests/helpers/mock_env"; + import { getFixture, mount, useLogLifeCycle, destroy } from "@web/../tests/helpers/utils"; const makeTestPromise = testUtils.makeTestPromise; const nextTick = testUtils.nextTick; @@ -1679,4 +1678,3 @@ odoo.define('web.OwlCompatibilityTests', function (require) { await mount(MyComponent, getFixture(), { env: legacyEnv }); }); }); -}); diff --git a/addons/web/static/tests/legacy/qweb_tests.js b/addons/web/static/tests/legacy/qweb_tests.js index 2880988ad4a..8e9f3cc80d3 100644 --- a/addons/web/static/tests/legacy/qweb_tests.js +++ b/addons/web/static/tests/legacy/qweb_tests.js @@ -1,10 +1,9 @@ -odoo.define('web.qweb_tests', function (require) { -"use strict"; +/** @odoo-module **/ -const {Markup} = require('web.utils'); +import {Markup} from "web.utils"; var qwebPath = '/web/static/lib/qweb/'; -const {hushConsole} = require('@web/../tests/helpers/utils'); +import {hushConsole} from "@web/../tests/helpers/utils"; function trim(s) { return s.replace(/(^\s+|\s+$)/g, ''); @@ -189,4 +188,3 @@ QUnit.module('QWeb', { }); }) }); -}); diff --git a/addons/web/static/tests/legacy/views/basic_model_tests.js b/addons/web/static/tests/legacy/views/basic_model_tests.js index c7634c40fc2..7c6250cefa7 100644 --- a/addons/web/static/tests/legacy/views/basic_model_tests.js +++ b/addons/web/static/tests/legacy/views/basic_model_tests.js @@ -1,9 +1,8 @@ -odoo.define('web.basic_model_tests', function (require) { - "use strict"; - - var BasicModel = require('web.BasicModel'); - var testUtils = require('web.test_utils'); - const session = require('web.session'); +/** @odoo-module **/ + + import BasicModel from "web.BasicModel"; + import testUtils from "web.test_utils"; + import session from "web.session"; var createModel = testUtils.createModel; @@ -2494,4 +2493,3 @@ odoo.define('web.basic_model_tests', function (require) { 'basic_model _getEvalContext returns session.user_companies.current_company when session.user_context.allowed_company_ids is not set'); }); }); -}); diff --git a/addons/web/static/tests/legacy/widgets/model_field_selector_tests.js b/addons/web/static/tests/legacy/widgets/model_field_selector_tests.js index f01fb6a793d..7bca2e855ed 100644 --- a/addons/web/static/tests/legacy/widgets/model_field_selector_tests.js +++ b/addons/web/static/tests/legacy/widgets/model_field_selector_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.model_field_selector_tests', function (require) { -"use strict"; +/** @odoo-module **/ -var ModelFieldSelector = require("web.ModelFieldSelector"); -var testUtils = require("web.test_utils"); +import ModelFieldSelector from "web.ModelFieldSelector"; +import testUtils from "web.test_utils"; QUnit.module('widgets', {}, function () { @@ -322,4 +321,3 @@ QUnit.module('ModelFieldSelector', { }); }); }); -}); diff --git a/addons/web/static/tests/legacy/widgets/name_and_signature_tests.js b/addons/web/static/tests/legacy/widgets/name_and_signature_tests.js index 948ae8a13a6..e619ac02821 100644 --- a/addons/web/static/tests/legacy/widgets/name_and_signature_tests.js +++ b/addons/web/static/tests/legacy/widgets/name_and_signature_tests.js @@ -1,8 +1,7 @@ -odoo.define('web.name_and_signature_tests', function (require) { - "use strict"; - - const { NameAndSignature } = require("web.name_and_signature"); - const testUtils = require("web.test_utils"); +/** @odoo-module **/ + + import { NameAndSignature } from "web.name_and_signature"; + import testUtils from "web.test_utils"; const MockedNameAndSignature = NameAndSignature.extend({ events: { ...NameAndSignature.prototype.events, @@ -77,4 +76,3 @@ odoo.define('web.name_and_signature_tests', function (require) { }); }); }); -}); diff --git a/addons/website_slides/__manifest__.py b/addons/website_slides/__manifest__.py index 99348388770..d3e767ed973 100644 --- a/addons/website_slides/__manifest__.py +++ b/addons/website_slides/__manifest__.py @@ -220,6 +220,7 @@ Featuring 'web/static/src/legacy/js/core/owl_dialog.js', 'web/static/src/legacy/js/core/popover.js', 'web/static/src/legacy/js/core/dom.js', + 'web/static/src/legacy/js/core/dom_ready.js', 'web/static/src/legacy/js/core/local_storage.js', 'web/static/src/legacy/js/core/mixins.js', 'web/static/src/legacy/js/core/qweb.js',