Skip to Content

Name: [FIX] viin_backend_theme: keep apps menu open while app reloads

State: Failed finished in 215m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #693

Committer: David Tran

Committer Email: david.tran@tvtmarine.com

Commit: 133655dc2532cf9269c8bd5207554f14d31d10c4

Description:

                                            [FIX] viin_backend_theme: keep apps menu open while app reloads

Opening the apps menu from the navbar while an app was still reloading
(for example clicking the app brand and then the apps button before the
screen finished loading) closed the menu before its tiles appeared, so
the user saw nothing to pick an app from. It broke the runbot
hr_expense tour create_expense_no_employee_access_tour (step 13/13,
.o_app tile not found, 4 failures out of 5 runs).

Cause: NavBar.setup() closed the menu overlay on every
ACTION_MANAGER:UI-UPDATED. The reload started by the brand click
finished while the overlay's ViinHomeMenu was still in onWillStart (its
mail.activity search_count and res.users read RPCs), so the overlay
entry was removed before any tile was mounted.

The UI-UPDATED listener is removed. The menu is still closed by a route
change, outside click, Escape and when the navbar is destroyed; the
mobile "All Apps" guard that refuses to open a menu before any screen
exists is unchanged.

Tests: a Hoot desktop test holds the list reload and the menu's own
RPCs and requires the overlay and its app tiles to be on screen once
both finish; it fails with the listener and passes without it. The
mobile test that faked a screen to assert the removed close is dropped;
the real guard stays covered by "All Apps tapped while the boot app menu
is still loading opens no overlay and the toggle keeps working".

Signed-off-by: David Tran <david.tran@tvtmarine.com>
                                            

Branch: 19.0

Age:

Up-time:

Subbuilds Name State Detail
Build 427160 Check the quality with Pylint: from test_lint to test_viin_pylint 39m Succeed Log
Build 427161 At install tests: from account to website_timesheet 125m Succeed Log
Build 427162 Post install tests: step install all modules 25m Succeed Log
Build 427163 Post install tests: from account to hr_recruitment_survey 150m Succeed Log
Build 427164 Post install tests: from hr_skills to phone_validation 264m Succeed Log
Build 427165 Post install tests: from point_of_sale to purchase_requisition_stock 210m Succeed Log
Build 427166 Post install tests: from purchase_stock to test_l10n_vn_viin_edi 149m Succeed Log
Build 427167 Post install tests: from test_mail to to_product_return_reason_stock 184m Failed Log
Build 427168 Post install tests: from to_registration_email_blacklist to viin_approval_purpose_routing 134m Succeed Log
Build 427169 Post install tests: from viin_approval_sale to viin_product 169m Succeed Log
Build 427170 Post install tests: from viin_project to web_unsplash 115m Succeed Log
Build 427171 Post install tests: from website to website_timesheet 120m Failed Log
Build 427172 Test install all modules without demo data: from account to website_timesheet 25m Succeed Log
Build 427173 Test install all modules with demo data: from account to website_timesheet 25m Succeed Log
Create Date Level Message
10/21/2026 12:55:38 PM INFO
Updated repository Viindoo-odoo
10/21/2026 12:55:38 PM INFO
Updated repository Viindoo-tvtmaaddons
10/21/2026 12:55:38 PM INFO
Updated repository Viindoo-erponline-enterprise
10/21/2026 12:55:38 PM INFO
Cloned repository Viindoo-branding
10/21/2026 05:40:52 PM WARNING
Subbuild # 427165: odoo.http: You can only cancel a session that is in opening control state and has no orders.
10/21/2026 05:40:52 PM WARNING
Subbuild # 427165: odoo.http: You can only cancel a session that is in opening control state and has no orders.
10/21/2026 05:15:07 PM WARNING
Subbuild # 427167: odoo.addons.test_website.tests.test_media.TestMedia.test_01_replace_media.browser: Invalid selection. Node is not part of the editable: None
10/21/2026 05:15:07 PM ERROR
Subbuild # 427167: odoo.addons.test_website.tests.test_media.TestMedia.test_01_replace_media.browser: FAILED: [18/36] Tour test_replace_media → Step ensure icon block is displayed (trigger: .o_customize_tab [data-container-title='Icon']). Element (.o_customize_tab [data-container-title='Icon']) has not been found. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 05:15:07 PM ERROR
Subbuild # 427167: odoo.addons.test_website.tests.test_media: FAIL: TestMedia.test_01_replace_media Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/odoo/tools/misc.py", line 779, in deco return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/build/Viindoo-odoo-19.0/addons/test_website/tests/test_media.py", line 22, in test_01_replace_media self.start_tour("/", 'test_replace_media', login="admin") File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2612, in start_tour self.browser_js(url_path=url_path, code=code, ready=ready, timeout=timeout, success_signal="tour succeeded", **kwargs) File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2582, in browser_js self.fail('%s\n\n%s' % (message, error)) AssertionError: The test code "odoo.startTour('test_replace_media', {"stepDelay": 0, "keepWatchBrowser": false, "debug": false, "startUrl": "/", "delayToCheckUndeterminisms": 0})" failed FAILED: [18/36] Tour test_replace_media → Step ensure icon block is displayed (trigger: .o_customize_tab [data-container-title='Icon']). Element (.o_customize_tab [data-container-title='Icon']) has not been found. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 05:15:07 PM ERROR
Subbuild # 427167: odoo.tests.result: 1 failed, 0 error(s) of 3461 tests when loading database 'rb-133655d-225807-427167'
10/21/2026 04:30:42 PM ERROR
Subbuild # 427171: odoo.addons.website.tests.test_page_manager.TestWebsitePageManager.test_01_page_manager.browser: FAILED: [29/38] Tour website_page_manager → Step Click on Delete (trigger: .o-dropdown--menu span:contains("Delete")). Element (.o-dropdown--menu span:contains("Delete")) has not been found. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 04:30:42 PM ERROR
Subbuild # 427171: odoo.addons.website.tests.test_page_manager: FAIL: TestWebsitePageManager.test_01_page_manager Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/addons/website/tests/test_page_manager.py", line 18, in test_01_page_manager self.start_tour(url, 'website_page_manager', login="admin") File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2612, in start_tour self.browser_js(url_path=url_path, code=code, ready=ready, timeout=timeout, success_signal="tour succeeded", **kwargs) File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2582, in browser_js self.fail('%s\n\n%s' % (message, error)) AssertionError: The test code "odoo.startTour('website_page_manager', {"stepDelay": 0, "keepWatchBrowser": false, "debug": false, "startUrl": "/odoo/action-website.website_preview?path=%2F", "delayToCheckUndeterminisms": 0})" failed FAILED: [29/38] Tour website_page_manager → Step Click on Delete (trigger: .o-dropdown--menu span:contains("Delete")). Element (.o-dropdown--menu span:contains("Delete")) has not been found. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 04:30:42 PM ERROR
Subbuild # 427171: odoo.addons.website.tests.test_ui.TestUi.test_hiding_sidebar_header.browser: FAILED: [5/19] Tour hide_sidebar_header → Step Wait for the builder to mount after iframe reload (trigger: :iframe body.editor_enable). Element has been found. BUT: Element is not visible. TIP: You can use :not(:visible) to force the search for an invisible element. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 04:30:42 PM ERROR
Subbuild # 427171: odoo.addons.website.tests.test_ui: FAIL: TestUi.test_hiding_sidebar_header Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/addons/website/tests/test_ui.py", line 727, in test_hiding_sidebar_header self.start_tour("/", "hide_sidebar_header", login="admin") File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2612, in start_tour self.browser_js(url_path=url_path, code=code, ready=ready, timeout=timeout, success_signal="tour succeeded", **kwargs) File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2582, in browser_js self.fail('%s\n\n%s' % (message, error)) AssertionError: The test code "odoo.startTour('hide_sidebar_header', {"stepDelay": 0, "keepWatchBrowser": false, "debug": false, "startUrl": "/", "delayToCheckUndeterminisms": 0})" failed FAILED: [5/19] Tour hide_sidebar_header → Step Wait for the builder to mount after iframe reload (trigger: :iframe body.editor_enable). Element has been found. BUT: Element is not visible. TIP: You can use :not(:visible) to force the search for an invisible element. TIMEOUT step failed to complete within 10000 ms.
10/21/2026 04:30:42 PM ERROR
Subbuild # 427171: odoo.tests.result: 2 failed, 0 error(s) of 828 tests when loading database 'rb-133655d-225807-427171'