diff --git a/addons/account/static/src/xml/account_reconciliation.xml b/addons/account/static/src/xml/account_reconciliation.xml index 1c0d535e5bc..44986549a92 100644 --- a/addons/account/static/src/xml/account_reconciliation.xml +++ b/addons/account/static/src/xml/account_reconciliation.xml @@ -164,10 +164,10 @@ @@ -218,8 +218,8 @@
- : - + : + : diff --git a/addons/board/static/src/scss/dashboard.scss b/addons/board/static/src/scss/dashboard.scss index 67f3d818b76..683bdf52eaf 100644 --- a/addons/board/static/src/scss/dashboard.scss +++ b/addons/board/static/src/scss/dashboard.scss @@ -148,5 +148,5 @@ // Favorites menu in control panel .o_add_to_dashboard { display: none; // hidden by default - @include o-search-options-dropdown-custom-li; + @include o-search-options-dropdown-custom-item; } diff --git a/addons/board/static/src/xml/board.xml b/addons/board/static/src/xml/board.xml index 00e94d73162..cb907290fd1 100644 --- a/addons/board/static/src/xml/board.xml +++ b/addons/board/static/src/xml/board.xml @@ -75,14 +75,12 @@ - -
  • - -
  • -
  • + Add to my Dashboard + +
  • +
    diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml index dbf50c5d896..d72c2fd29c8 100644 --- a/addons/crm/views/crm_lead_views.xml +++ b/addons/crm/views/crm_lead_views.xml @@ -324,16 +324,16 @@
    diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml index 87c51f7f92f..ebdc52397c5 100644 --- a/addons/event/views/event_views.xml +++ b/addons/event/views/event_views.xml @@ -238,7 +238,7 @@
    - to + to
    @@ -305,15 +305,15 @@
    diff --git a/addons/google_drive/static/tests/gdrive_test.js b/addons/google_drive/static/tests/gdrive_test.js index edf6a0c4ca2..78fac5f39b6 100644 --- a/addons/google_drive/static/tests/gdrive_test.js +++ b/addons/google_drive/static/tests/gdrive_test.js @@ -94,16 +94,16 @@ QUnit.module('gdrive_integration', { return $.when(); } return this._super.apply(this, arguments); - } + }, }); - var google_action = form.sidebar.$('.oe_share_gdoc'); + var $googleAction = form.sidebar.$('.oe_share_gdoc'); - assert.strictEqual(google_action.length, 1, + assert.strictEqual($googleAction.length, 1, 'The button to the google action should be present'); // Trigger opening of the dynamic link - google_action.find('a:first').click(); + $googleAction.click(); form.destroy(); }); diff --git a/addons/hr_contract/views/hr_contract_views.xml b/addons/hr_contract/views/hr_contract_views.xml index ef1cfad0f33..9e5b234c956 100644 --- a/addons/hr_contract/views/hr_contract_views.xml +++ b/addons/hr_contract/views/hr_contract_views.xml @@ -175,13 +175,13 @@
    diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml index 2569e5a59a4..10b4ddd7b33 100644 --- a/addons/hr_recruitment/views/hr_recruitment_views.xml +++ b/addons/hr_recruitment/views/hr_recruitment_views.xml @@ -290,14 +290,14 @@
    @@ -340,7 +340,7 @@
    - +
    @@ -971,7 +971,7 @@ (0, 0, {'view_mode': 'graph', 'view_id': ref('hr_applicant_view_graph')})]"/> {} - Recruitment Analysis diff --git a/addons/im_support/static/src/xml/systray.xml b/addons/im_support/static/src/xml/systray.xml index eb182a04ff4..1cb14637b36 100644 --- a/addons/im_support/static/src/xml/systray.xml +++ b/addons/im_support/static/src/xml/systray.xml @@ -3,10 +3,10 @@ -
  • +
    -
  • +
    diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js index 3a63b1fbd60..c8a3b8dddde 100644 --- a/addons/mail/static/src/js/activity.js +++ b/addons/mail/static/src/js/activity.js @@ -371,7 +371,7 @@ var Activity = AbstractActivityField.extend({ var KanbanActivity = AbstractActivityField.extend({ template: 'mail.KanbanActivity', events: { - 'click .o_activity_btn': '_onButtonClicked', + 'show.bs.dropdown': '_onDropdownShow', 'click .o_schedule_activity': '_onScheduleActivity', 'click .o_mark_as_done': '_onMarkActivityDone', }, @@ -411,7 +411,7 @@ var KanbanActivity = AbstractActivityField.extend({ }).join(' '); }); $span.addClass('o_activity_color_' + (this.activityState || 'default')); - if (this.$el.hasClass('open')) { + if (this.$el.hasClass('show')) { // note: this part of the rendering might be asynchronous this._renderDropdown(); } @@ -455,13 +455,9 @@ var KanbanActivity = AbstractActivityField.extend({ /** * @private - * @param {MouseEvent} ev */ - _onButtonClicked: function (ev) { - ev.preventDefault(); - if (!this.$el.hasClass('open')) { - this._renderDropdown(); - } + _onDropdownShow: function () { + this._renderDropdown(); }, /** * @private diff --git a/addons/mail/static/src/js/composers/mention_manager.js b/addons/mail/static/src/js/composers/mention_manager.js index fb8d9ddc065..62608fbf511 100644 --- a/addons/mail/static/src/js/composers/mention_manager.js +++ b/addons/mail/static/src/js/composers/mention_manager.js @@ -319,15 +319,18 @@ var MentionManager = Widget.extend({ suggestions: suggestions, })); this.$el - .addClass('open') - .find('ul') + .addClass('show') + .find('.dropdown-menu') + .addClass('show') .css('max-width', this._composer.$input.width()) .find('.o_mention_proposition') .first() .addClass('active'); this._open = true; } else { - this.$el.removeClass('open'); + this.$el.removeClass('show') + .find('.dropdown-menu') + .removeClass('show'); this.$el.empty(); this._open = false; } diff --git a/addons/mail/static/src/js/followers.js b/addons/mail/static/src/js/followers.js index a28f72edb1c..42d5519ff40 100644 --- a/addons/mail/static/src/js/followers.js +++ b/addons/mail/static/src/js/followers.js @@ -135,9 +135,9 @@ var Followers = AbstractField.extend({ var old_parent_model; var $list; if (dialog) { - $list = $('
      ').appendTo(this.dialog.$el); + $list = $('
      ').appendTo(this.dialog.$el); } else { - $list = this.$('.o_subtypes_list ul'); + $list = this.$('.o_subtypes_list .dropdown-menu'); } $list.empty(); @@ -145,7 +145,7 @@ var Followers = AbstractField.extend({ _.each(data, function (record) { if (old_parent_model !== record.parent_model && old_parent_model !== undefined) { - $list.append($('
    • ').addClass('divider')); + $list.append($('
      ', {class: 'dropdown-divider'})); } old_parent_model = record.parent_model; record.followed = record.followed || undefined; @@ -408,11 +408,11 @@ var Followers = AbstractField.extend({ ev.stopPropagation(); this._updateSubscription(ev); var $list = this.$('.o_subtypes_list'); - if (!$list.hasClass('open')) { - $list.addClass('open'); + if (!$list.hasClass('show')) { + $list.addClass('show'); } - if (this.$('.o_subtypes_list ul')[0].children.length < 1) { - $list.removeClass('open'); + if (this.$('.o_subtypes_list .dropdown-menu')[0].children.length < 1) { + $list.removeClass('show'); } }, }); diff --git a/addons/mail/static/src/scss/abstract_thread_window.scss b/addons/mail/static/src/scss/abstract_thread_window.scss index 21fc4ebd7ad..39de4fc9c51 100644 --- a/addons/mail/static/src/scss/abstract_thread_window.scss +++ b/addons/mail/static/src/scss/abstract_thread_window.scss @@ -119,7 +119,7 @@ $o-mail-thread-window-zindex: $zindex-modal + 1 !default; font-size: smaller; } } - &.open .o_thread_window_dropdown_toggler .o_total_unread_counter, .o_thread_window_expand { + &.show .o_thread_window_dropdown_toggler .o_total_unread_counter, .o_thread_window_expand { display: none; } diff --git a/addons/mail/static/src/scss/composer.scss b/addons/mail/static/src/scss/composer.scss index 884ca88134e..1eb2de031d5 100644 --- a/addons/mail/static/src/scss/composer.scss +++ b/addons/mail/static/src/scss/composer.scss @@ -45,7 +45,7 @@ width: 100%; resize: none; } - .o_composer_mention_dropdown .o_mention_proposition > a { + .o_composer_mention_dropdown .o_mention_proposition { @include o-text-overflow; width: 100%; padding: 3px 15px; diff --git a/addons/mail/static/src/scss/discuss.scss b/addons/mail/static/src/scss/discuss.scss index 5995cab52e2..2c07068d9a9 100644 --- a/addons/mail/static/src/scss/discuss.scss +++ b/addons/mail/static/src/scss/discuss.scss @@ -401,7 +401,7 @@ @include media-breakpoint-down(sm) { - .o_main_navbar > ul.o_menu_systray > li.open .dropdown-menu { + .o_main_navbar > ul.o_menu_systray > li .dropdown-menu.show { border: none; } diff --git a/addons/mail/static/src/scss/systray.scss b/addons/mail/static/src/scss/systray.scss index 4d774b2824a..d52add73ec4 100644 --- a/addons/mail/static/src/scss/systray.scss +++ b/addons/mail/static/src/scss/systray.scss @@ -15,7 +15,7 @@ display: none; } } - &.open .o_mail_systray_dropdown { + &.show .o_mail_systray_dropdown { display: flex; flex-flow: column nowrap; } diff --git a/addons/mail/static/src/xml/composer.xml b/addons/mail/static/src/xml/composer.xml index 9a373dad533..8ecf3f8a7c6 100644 --- a/addons/mail/static/src/xml/composer.xml +++ b/addons/mail/static/src/xml/composer.xml @@ -47,17 +47,15 @@ @param {boolean} [suggestions.divider=false] --> - +
      - + () @@ -65,18 +63,18 @@ - + - + - + / diff --git a/addons/mail/static/src/xml/followers.xml b/addons/mail/static/src/xml/followers.xml index a19831308a6..bbf51ca5c68 100644 --- a/addons/mail/static/src/xml/followers.xml +++ b/addons/mail/static/src/xml/followers.xml @@ -12,7 +12,7 @@ - +
      @@ -25,7 +25,7 @@ -
      @@ -59,13 +59,9 @@ --> -
    • - - +
      diff --git a/addons/mail/static/src/xml/systray.xml b/addons/mail/static/src/xml/systray.xml index 1f0cf850f8c..16fe5c9ef10 100644 --- a/addons/mail/static/src/xml/systray.xml +++ b/addons/mail/static/src/xml/systray.xml @@ -6,25 +6,25 @@ -->
    • - -
    +
    +
    @@ -39,8 +39,8 @@ Channels
    - - +
    +
    @@ -64,9 +64,9 @@ --> -
  • +
  • +
    @@ -94,12 +94,12 @@
  • - - +
  • diff --git a/addons/mail/static/src/xml/web_kanban_activity.xml b/addons/mail/static/src/xml/web_kanban_activity.xml index c3148f13e95..65ece45d865 100644 --- a/addons/mail/static/src/xml/web_kanban_activity.xml +++ b/addons/mail/static/src/xml/web_kanban_activity.xml @@ -3,25 +3,24 @@ - -
  • + + No activities planned. + +
  • -
    +
    diff --git a/addons/mail/static/tests/chatter_tests.js b/addons/mail/static/tests/chatter_tests.js index 43675fedcee..088a854333e 100644 --- a/addons/mail/static/tests/chatter_tests.js +++ b/addons/mail/static/tests/chatter_tests.js @@ -410,7 +410,7 @@ QUnit.test('kanban activity widget with an activity', function (assert) { assert.strictEqual(rpcCount, 5, 'should have done an RPC to mark activity as done, and a read'); assert.ok($record.find('.o_mail_activity .o_activity_color_default:not(.o_activity_color_today)').length, "activity widget should have been updated correctly"); - assert.strictEqual($record.find('.o_mail_activity.open').length, 1, + assert.strictEqual($record.find('.o_mail_activity.show').length, 1, "dropdown should remain open when marking an activity as done"); assert.strictEqual($record.find('.o_no_activity').length, 1, "should have no activity scheduled"); @@ -1466,9 +1466,9 @@ QUnit.test('followers widget: follow/unfollow, edit subtypes', function (assert) assert.strictEqual(form.$('.o_subtypes_list .o_subtype_checkbox:checked').length, 2, 'two subtypes should be checked by default'); form.$('.o_subtypes_list .dropdown-toggle').click(); // click to open the dropdown - assert.ok(form.$('.o_subtypes_list.open').length, 'dropdown should be opened'); + assert.ok(form.$('.o_subtypes_list.show').length, 'dropdown should be opened'); form.$('.o_subtypes_list .o_subtype input[data-id=2]').click(); // uncheck second subtype - assert.ok(form.$('.o_subtypes_list.open').length, 'dropdown should remain opened'); + assert.ok(form.$('.o_subtypes_list.show').length, 'dropdown should remain opened'); assert.ok(!form.$('.o_subtypes_list .o_subtype_checkbox[data-id=2]:checked').length, 'second subtype should now be unchecked'); diff --git a/addons/mail/static/tests/discuss_tests.js b/addons/mail/static/tests/discuss_tests.js index 54f13eb48a5..a061873c39b 100644 --- a/addons/mail/static/tests/discuss_tests.js +++ b/addons/mail/static/tests/discuss_tests.js @@ -211,7 +211,7 @@ QUnit.test('@ mention in channel', function (assert) { fetchListenersDef .then(concurrency.delay.bind(concurrency, 0)) .then(function () { - assert.strictEqual(discuss.$('.dropup.o_composer_mention_dropdown.open').length, 1, + assert.strictEqual(discuss.$('.dropup.o_composer_mention_dropdown.show').length, 1, "dropup menu for partner mentions should be open"); var $mentionPropositions = discuss.$('.o_mention_proposition'); diff --git a/addons/mail/static/tests/systray/systray_activity_menu_tests.js b/addons/mail/static/tests/systray/systray_activity_menu_tests.js index 83dbcbdfe4c..1b034dbdfd7 100644 --- a/addons/mail/static/tests/systray/systray_activity_menu_tests.js +++ b/addons/mail/static/tests/systray/systray_activity_menu_tests.js @@ -100,9 +100,9 @@ QUnit.test('activity menu widget: activity menu with 3 records', function (asser search_default_activities_overdue: 1, }; activityMenu.$('.dropdown-toggle').click(); - assert.strictEqual(activityMenu.$el.hasClass("open"), true, 'ActivityMenu should be open'); + assert.strictEqual(activityMenu.$el.hasClass("show"), true, 'ActivityMenu should be open'); activityMenu.$(".o_activity_filter_button[data-model_name='Issue'][data-filter='overdue']").click(); - assert.strictEqual(activityMenu.$el.hasClass("open"), false, 'ActivityMenu should be closed'); + assert.strictEqual(activityMenu.$el.hasClass("show"), false, 'ActivityMenu should be closed'); // case 2: click on "today" context = { search_default_activities_today: 1, diff --git a/addons/mail/static/tests/systray/systray_messaging_menu_tests.js b/addons/mail/static/tests/systray/systray_messaging_menu_tests.js index 54859060437..e1c5ef1851c 100644 --- a/addons/mail/static/tests/systray/systray_messaging_menu_tests.js +++ b/addons/mail/static/tests/systray/systray_messaging_menu_tests.js @@ -242,7 +242,7 @@ QUnit.test("messaging menu widget: mark as read on thread preview", function ( a messagingMenu.$('.dropdown-toggle').click(); assert.ok(messagingMenu.$el.hasClass('o_mail_systray_item'), 'should be the instance of widget'); - assert.ok(messagingMenu.$el.hasClass('open'), + assert.ok(messagingMenu.$el.hasClass('show'), 'MessagingMenu should be open'); var $preview = messagingMenu.$('.o_mail_preview.o_preview_unread'); diff --git a/addons/maintenance/views/maintenance_views.xml b/addons/maintenance/views/maintenance_views.xml index 5e06a9eff59..7c4d3a00995 100644 --- a/addons/maintenance/views/maintenance_views.xml +++ b/addons/maintenance/views/maintenance_views.xml @@ -134,14 +134,14 @@
    @@ -431,16 +431,16 @@
    diff --git a/addons/mass_mailing/static/src/js/mass_mailing_editor.js b/addons/mass_mailing/static/src/js/mass_mailing_editor.js index ae38436ea2c..ec7f01bbc25 100644 --- a/addons/mass_mailing/static/src/js/mass_mailing_editor.js +++ b/addons/mass_mailing/static/src/js/mass_mailing_editor.js @@ -197,7 +197,7 @@ snippets_editor.Class.include({ * Add proposition to install enterprise themes if not installed. */ var $mail_themes_upgrade = $dropdown.find(".o_mass_mailing_themes_upgrade"); - $mail_themes_upgrade.on("click", "> a", function (e) { + $mail_themes_upgrade.on("click", function (e) { e.stopImmediatePropagation(); e.preventDefault(); odoo_top[window.callback+"_do_action"]("mass_mailing.action_mass_mailing_configuration"); @@ -208,15 +208,15 @@ snippets_editor.Class.include({ * is pressed. */ var selected_theme = false; - $dropdown.on("mouseenter", "li > a", function (e) { + $dropdown.on("mouseenter", ".dropdown-item", function (e) { if (first_choice) return; e.preventDefault(); - var theme_params = themes_params[$(e.currentTarget).parent().index()]; + var theme_params = themes_params[$(e.currentTarget).index()]; switch_theme(theme_params); }); - $dropdown.on("click", "li > a", function (e) { + $dropdown.on("click", ".dropdown-item", function (e) { e.preventDefault(); - var theme_params = themes_params[$(e.currentTarget).parent().index()]; + var theme_params = themes_params[$(e.currentTarget).index()]; if (first_choice) { switch_theme(theme_params); $body.removeClass("o_force_mail_theme_choice"); @@ -244,7 +244,7 @@ snippets_editor.Class.include({ */ $dropdown.on("shown.bs.dropdown", function () { check_selected_theme(); - $dropdown.find("li").removeClass("selected").filter(function () { + $dropdown.find(".dropdown-item").removeClass("selected").filter(function () { return ($(this).has(".o_thumb[style=\""+ "background-image: url(" + (selected_theme && selected_theme.img) + "_small.png)"+ "\"]").length > 0); }).addClass("selected"); }); diff --git a/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss b/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss index 93ea1689882..daaf956fc68 100644 --- a/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss +++ b/addons/mass_mailing/static/src/scss/mass_mailing.ui.scss @@ -27,7 +27,7 @@ } } - &.open > a { + &.show > a { color: white; background-color: $o-we-color-dark; } @@ -39,26 +39,23 @@ overflow: auto; background-color: $o-we-color-dark; - > li { - margin: 0; + .dropdown-item { + padding: 10px 10px; - > a { - padding: 10px 10px; + .o_thumb { + display: none; + background-size: cover; + padding-top: 50%; + border: 1px solid $o-we-color-light; + border-top: 1px solid $o-we-color-text-normal; - .o_thumb { - display: none; - background-size: cover; - padding-top: 50%; - border: 1px solid $o-we-color-light; - border-top: 1px solid $o-we-color-text-normal; - - &.logo { - display: block; - } + &.logo { + display: block; } } - &:hover > a { + + &:hover { background-color: $o-we-color-darker; .o_thumb { @@ -66,7 +63,7 @@ } } - &.selected > a .o_thumb { + &.selected .o_thumb { border: 2px solid $o-brand-primary; background-color: $o-we-color-dark; } @@ -86,41 +83,39 @@ body.o_force_mail_theme_choice { .dropdown-menu { display: block; - > li { + .dropdown-item { margin: 0; float: left; + clear: none; width: 100%; max-width: 25%; + transition: all 0.3s ease 0s; - > a { + .o_thumb { + display: none; + padding-top: 107%; + border: 1px solid $o-we-color-light; + border-top: 1px solid $o-we-color-text-normal; + box-shadow: 0 5px 10px rgba(black, 0.8); + will-change: transform; + backface-visibility: hidden; transition: all 0.3s ease 0s; - .o_thumb { - display: none; - padding-top: 107%; - border: 1px solid $o-we-color-light; - border-top: 1px solid $o-we-color-text-normal; - box-shadow: 0 5px 10px rgba(black, 0.8); - will-change: transform; - backface-visibility: hidden; - transition: all 0.3s ease 0s; + &.small { + display: block; + } + @media screen and (min-width: 900px) { &.small { - display: block; + display: none; } - - @media screen and (min-width: 900px) { - &.small { - display: none; - } - &.large { - display: block; - } + &.large { + display: block; } } } - &:hover > a { + &:hover { background-color: $o-we-color-dark; .o_thumb { @@ -128,7 +123,7 @@ body.o_force_mail_theme_choice { } } - &.o_mass_mailing_themes_upgrade > a .o_thumb { + &.o_mass_mailing_themes_upgrade .o_thumb { position: relative; display: block; border: 1px dashed white; diff --git a/addons/mass_mailing/static/src/xml/mass_mailing.xml b/addons/mass_mailing/static/src/xml/mass_mailing.xml index ae79ebff979..cdc23484cdd 100644 --- a/addons/mass_mailing/static/src/xml/mass_mailing.xml +++ b/addons/mass_mailing/static/src/xml/mass_mailing.xml @@ -5,18 +5,18 @@ Change Style
    diff --git a/addons/mass_mailing/views/mass_mailing_views.xml b/addons/mass_mailing/views/mass_mailing_views.xml index b0f1e7cc44e..c94d197d7c8 100644 --- a/addons/mass_mailing/views/mass_mailing_views.xml +++ b/addons/mass_mailing/views/mass_mailing_views.xml @@ -313,17 +313,13 @@
    @@ -566,15 +562,15 @@
    @@ -920,20 +916,20 @@
    @@ -175,46 +174,46 @@
    @@ -227,13 +226,16 @@
    - +
    @@ -383,8 +385,8 @@ diff --git a/addons/project/static/tests/project_tests.js b/addons/project/static/tests/project_tests.js index e659658a7a2..35b41e93e9d 100644 --- a/addons/project/static/tests/project_tests.js +++ b/addons/project/static/tests/project_tests.js @@ -82,14 +82,12 @@ QUnit.module('project', { '
    ' + '' + '' + '
    '+ ''+ diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index de6663ec65d..835dcf868f0 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -552,19 +552,17 @@
    diff --git a/addons/survey/views/survey_views.xml b/addons/survey/views/survey_views.xml index 94db82a6a8e..4a259b67e51 100644 --- a/addons/survey/views/survey_views.xml +++ b/addons/survey/views/survey_views.xml @@ -239,16 +239,16 @@
    @@ -1460,27 +1454,27 @@ Avatar - +
    -
  • Documentation
  • -
  • Support
  • -
  • Preferences
  • -
  • My Odoo.com account
  • -
  • Log out
  • + Documentation + Support + diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js index ffb0f6198d5..a2224193bab 100644 --- a/addons/web/static/tests/fields/basic_fields_tests.js +++ b/addons/web/static/tests/fields/basic_fields_tests.js @@ -3698,19 +3698,19 @@ QUnit.module('basic_fields', { "should have one red status since selection is the second, blocked state"); assert.strictEqual(form.$('.o_field_widget.o_selection > a span.o_status.o_status_green').length, 0, "should not have one green status since selection is the second, blocked state"); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); // Click on the status button to make the dropdown appear form.$('.o_field_widget.o_selection .o_status').first().click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 1, + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 1, "there should be a dropdown"); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible li').length, 2, + assert.strictEqual(form.$('.dropdown-menu.state:visible .dropdown-item').length, 2, "there should be two options in the dropdown"); // Click on the first option, "Normal" - form.$('ul.dropdown-menu.state:visible li').first().click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 0, + form.$('.dropdown-menu.state:visible .dropdown-item').first().click(); + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown anymore"); assert.strictEqual(form.$('.o_field_widget.o_selection > a span.o_status.o_status_red').length, 0, "should not have one red status since selection is the first, normal state"); @@ -3721,7 +3721,7 @@ QUnit.module('basic_fields', { // switch to edit mode and check the result form.$buttons.find('.o_form_button_edit').click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 0, "there should still not be a dropdown"); assert.strictEqual(form.$('.o_field_widget.o_selection > a span.o_status.o_status_red').length, 0, "should still not have one red status since selection is the first, normal state"); @@ -3732,14 +3732,14 @@ QUnit.module('basic_fields', { // Click on the status button to make the dropdown appear form.$('.o_field_widget.o_selection .o_status').first().click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 1, + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 1, "there should be a dropdown"); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible li').length, 2, + assert.strictEqual(form.$('.dropdown-menu.state:visible .dropdown-item').length, 2, "there should be two options in the dropdown"); // Click on the last option, "Done" - form.$('ul.dropdown-menu.state:visible li').last().click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 0, + form.$('.dropdown-menu.state:visible .dropdown-item').last().click(); + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown anymore"); assert.strictEqual(form.$('.o_field_widget.o_selection > a span.o_status.o_status_red').length, 0, "should not have one red status since selection is the third, done state"); @@ -3748,7 +3748,7 @@ QUnit.module('basic_fields', { // save form.$buttons.find('.o_form_button_save').click(); - assert.strictEqual(form.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(form.$('.dropdown-menu.state:visible').length, 0, "there should still not be a dropdown anymore"); assert.strictEqual(form.$('.o_field_widget.o_selection > a span.o_status.o_status_red').length, 0, "should still not have one red status since selection is the third, done state"); @@ -3777,7 +3777,7 @@ QUnit.module('basic_fields', { "should have one red status"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_green').length, 1, "should have one green status"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); // Click on the status button to make the dropdown appear @@ -3785,20 +3785,20 @@ QUnit.module('basic_fields', { list.$('.o_state_selection_cell .o_selection > a span.o_status').first().click(); assert.ok(!$cell.parent().hasClass('o_selected_row'), 'should not be in edit mode since we clicked on the state selection widget'); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 1, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 1, "there should be a dropdown"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible li').length, 2, + assert.strictEqual(list.$('.dropdown-menu.state:visible .dropdown-item').length, 2, "there should be two options in the dropdown"); // Click on the first option, "Normal" - list.$('ul.dropdown-menu.state:visible li').first().click(); + list.$('.dropdown-menu.state:visible .dropdown-item').first().click(); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status').length, 5, "should still have five status selection widgets"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_red').length, 0, "should now have no red status"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_green').length, 1, "should still have one green status"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); // switch to edit mode and check the result @@ -3812,21 +3812,21 @@ QUnit.module('basic_fields', { "should now have no red status"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_green').length, 1, "should still have one green status"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); // Click on the status button to make the dropdown appear list.$('.o_state_selection_cell .o_selection > a span.o_status').first().click(); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 1, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 1, "there should be a dropdown"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible li').length, 2, + assert.strictEqual(list.$('.dropdown-menu.state:visible .dropdown-item').length, 2, "there should be two options in the dropdown"); // Click on another row var $firstCell = list.$('tbody td.o_state_selection_cell').first(); var $lastCell = list.$('tbody td.o_state_selection_cell').last(); $lastCell.click(); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown anymore"); assert.ok(!$firstCell.parent().hasClass('o_selected_row'), 'first row should not be in edit mode anymore'); @@ -3835,14 +3835,14 @@ QUnit.module('basic_fields', { // Click on the last status button to make the dropdown appear list.$('.o_state_selection_cell .o_selection > a span.o_status').last().click(); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 1, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 1, "there should be a dropdown"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible li').length, 2, + assert.strictEqual(list.$('.dropdown-menu.state:visible .dropdown-item').length, 2, "there should be two options in the dropdown"); // Click on the last option, "Done" - list.$('ul.dropdown-menu.state:visible li').last().click(); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + list.$('.dropdown-menu.state:visible .dropdown-item').last().click(); + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown anymore"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status').length, 5, "should still have five status selection widgets"); @@ -3850,7 +3850,7 @@ QUnit.module('basic_fields', { "should still have no red status"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_green').length, 2, "should now have two green status"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); // save @@ -3861,7 +3861,7 @@ QUnit.module('basic_fields', { "should have no red status"); assert.strictEqual(list.$('.o_state_selection_cell .o_selection > a span.o_status.o_status_green').length, 2, "should have two green status"); - assert.strictEqual(list.$('ul.dropdown-menu.state:visible').length, 0, + assert.strictEqual(list.$('.dropdown-menu.state:visible').length, 0, "there should not be a dropdown"); list.destroy(); diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js index 8c91b0f4d54..17c22617744 100644 --- a/addons/web/static/tests/fields/relational_fields_tests.js +++ b/addons/web/static/tests/fields/relational_fields_tests.js @@ -429,7 +429,7 @@ QUnit.module('relational_fields', { $('button:contains(Filters)').click(); $('.o_add_custom_filter:visible').click(); // Add a custom filter, datetime field is selected - assert.strictEqual($('li.o_filter_condition select.o_searchview_extended_prop_field').val(), 'datetime', + assert.strictEqual($('.o_filter_condition select.o_searchview_extended_prop_field').val(), 'datetime', "datetime field should be selected"); $('.o_apply_filter').click(); diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js index 232a6d59f30..dc80d6440b3 100644 --- a/addons/web/static/tests/views/form_tests.js +++ b/addons/web/static/tests/views/form_tests.js @@ -5003,8 +5003,8 @@ QUnit.module('Views', { } assert.strictEqual($actions.length, 3, "there should be 3 actions"); - var $customAction = $('.o_web_client .o_control_panel .btn-group .dropdown-menu li a')[2]; - assert.strictEqual($customAction.text.trim(), 'Action partner', + var $customAction = $('.o_web_client .o_control_panel .btn-group .dropdown-menu:last .dropdown-item:nth(2)'); + assert.strictEqual($customAction.text().trim(), 'Action partner', "the custom action should have 'Action partner' as name"); testUtils.intercept(form, 'do_action', function (event) { var context = event.data.action.context.__contexts[1]; diff --git a/addons/web/static/tests/views/graph_tests.js b/addons/web/static/tests/views/graph_tests.js index 60e6680993c..1ed9e799a4a 100644 --- a/addons/web/static/tests/views/graph_tests.js +++ b/addons/web/static/tests/views/graph_tests.js @@ -175,9 +175,9 @@ QUnit.module('Views', { return concurrency.delay(0).then(function () { assert.ok(graph.$('text.nv-legend-text:contains(Count)').length, "should have used the correct measure"); - assert.ok(graph.$buttons.find('li[data-field="foo"]').length, + assert.ok(graph.$buttons.find('.dropdown-item[data-field="foo"]').length, "should have foo in the list of measures"); - graph.$buttons.find('li[data-field="foo"] a').click(); + graph.$buttons.find('.dropdown-item[data-field="foo"]').click(); return concurrency.delay(0); }).then(function () { @@ -268,7 +268,7 @@ QUnit.module('Views', { graph_intervalMapping: {}, }, "context should be correct"); - graph.$buttons.find('li[data-field="foo"] a').click(); // change measure + graph.$buttons.find('.dropdown-item[data-field="foo"]').click(); // change measure return concurrency.delay(0); }).then(function () { @@ -552,7 +552,7 @@ QUnit.module('Views', { return concurrency.delay(0).then(function () { // need to set the measure this way because it cannot be set in the // arch. - graph.$buttons.find('li[data-field="product_id"] a').click(); + graph.$buttons.find('.dropdown-item[data-field="product_id"]').click(); assert.strictEqual(graph.model.chart.data[0].value, 1, "should have first datapoint with value 1"); @@ -639,9 +639,9 @@ QUnit.module('Views', { '', }) - assert.strictEqual(graph.$buttons.find('.o_graph_measures_list li:first').data('field'), 'bouh', + assert.strictEqual(graph.$buttons.find('.o_graph_measures_list .dropdown-item:first').data('field'), 'bouh', "Bouh should be the first measure"); - assert.strictEqual(graph.$buttons.find('.o_graph_measures_list li:last').data('field'), '__count__', + assert.strictEqual(graph.$buttons.find('.o_graph_measures_list .dropdown-item:last').data('field'), '__count__', "Count should be the last measure"); graph.destroy(); diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 5d18d03c553..c80e0916d21 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -738,7 +738,7 @@ QUnit.module('Views', { // Select state in kanban kanban.$('.o_status').first().click(); - kanban.$('.o_selection ul:first li:first').click(); + kanban.$('.o_selection .dropdown-item:first').click(); assert.ok(kanban.$('.o_status').first().hasClass('o_status_green'), "Kanban state should be done (Green)"); kanban.destroy(); @@ -2789,10 +2789,10 @@ QUnit.module('Views', { '' + '
    ' + ' @@ -314,15 +314,16 @@ - + +
  • @@ -341,16 +342,12 @@
    - - + Edit +
  • @@ -879,18 +876,19 @@ Sitemap: sitemap.xml

    Manage Your Pages

    diff --git a/addons/website_blog/views/snippets.xml b/addons/website_blog/views/snippets.xml index eee8bccc9b2..6366b9c5458 100644 --- a/addons/website_blog/views/snippets.xml +++ b/addons/website_blog/views/snippets.xml @@ -3,36 +3,36 @@ @@ -253,16 +252,15 @@ Sort by - - +
    +
    diff --git a/addons/website_sale_digital/views/website_sale_digital.xml b/addons/website_sale_digital/views/website_sale_digital.xml index 92415355916..cf6e541cd7f 100644 --- a/addons/website_sale_digital/views/website_sale_digital.xml +++ b/addons/website_sale_digital/views/website_sale_digital.xml @@ -6,13 +6,13 @@ - +
    diff --git a/addons/website_sale_link_tracker/static/src/xml/website_sale_dashboard_utm_chart.xml b/addons/website_sale_link_tracker/static/src/xml/website_sale_dashboard_utm_chart.xml index 73fa0bc3019..e9e9bc88e99 100644 --- a/addons/website_sale_link_tracker/static/src/xml/website_sale_dashboard_utm_chart.xml +++ b/addons/website_sale_link_tracker/static/src/xml/website_sale_dashboard_utm_chart.xml @@ -20,13 +20,13 @@ diff --git a/addons/website_theme_install/static/src/scss/website_theme_install.scss b/addons/website_theme_install/static/src/scss/website_theme_install.scss index ea84164b6e5..721b6f33528 100644 --- a/addons/website_theme_install/static/src/scss/website_theme_install.scss +++ b/addons/website_theme_install/static/src/scss/website_theme_install.scss @@ -125,7 +125,7 @@ color: $text-color; } - &:hover, &.open { + &:hover, &.show { .o_kanban_config { display: none; } diff --git a/doc/howtos/themes.rst b/doc/howtos/themes.rst index a4ca988306f..0ce91112e43 100644 --- a/doc/howtos/themes.rst +++ b/doc/howtos/themes.rst @@ -763,11 +763,11 @@ We start by adding a new file in our views folder - name it **options.xml** and diff --git a/odoo/addons/base/tests/test_translate.py b/odoo/addons/base/tests/test_translate.py index 5bd33a4852f..a35ac6056ac 100644 --- a/odoo/addons/base/tests/test_translate.py +++ b/odoo/addons/base/tests/test_translate.py @@ -165,7 +165,7 @@ class TranslationToolsTestCase(unittest.TestCase):