[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>
| 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'
|