[IMP] viin_brain: P6 brand parity + P9 ShareDialog polish (round 3 sprint 2)
P6 Properties — scope brand cyan to .o_brain_app .btn-primary
- Add explicit cascade override in _app_shell.scss (Bootstrap 5.1.3
compiles .btn-primary to hex literals so --bs-primary scope override
has zero effect; explicit property cascade is the only safe approach).
- Switch '+ Add property' button class btn-light → btn-primary so it
picks up the brand accent. Hover via color-mix() (same darkening
visual as $darken-10% on Bootstrap baseline).
- Scope is .o_brain_app to prevent leak into form/list views in sibling
apps that share global Bootstrap tokens.
P9 ShareDialog — iOS-style switch + dynamic title
- Replace native <input type='checkbox'> for 'Public link' with OWL
CheckBox component using Bootstrap 5 form-switch class (matches
Odoo 17 boolean_toggle_field iOS-pill pattern).
- Load page name via Promise.all alongside share-link search; render
Dialog title 'Share <Page Name>' via dialogTitle getter (was
hardcoded 'Share this page').
- onToggleLink signature updated for OWL CheckBox onChange contract
(passes value, not DOM event).
Evidence (visual-evidence MCP, ephemeral):
- Session 20260503-2016-p8r3-sprint1-final shot-005: P11 CRM Lead
ID=13 form sidebar rail mode renders with Brain stat buttons.
- Session 20260503-2031-p8r3-sprint2-polish shot-002: P11 Project Task
ID=1 form sidebar rail mode renders with Brain Pages + Brain Note
stat buttons.
- Session 20260503-2031 shot-005: P9 ShareDialog title 'Share Welcome'
+ iOS-switch toggle render confirmed.
- Round 3 deferred items documented in phase-8-retroactive-evidence.md.
AC-1 hex grep PASS, brain_v3_ci_check.py --strict 8 PASS / 1
pre-existing WARN (rule2 contenteditable baseline = 14, unchanged).
Refs PR #27.
| Subbuilds | Name | State | Detail |
|---|---|---|---|
| Build 381480 | Check the quality with Pylint: from test_lint to test_pylint 18m | Failed | Log |
| Build 381481 | At install tests: from account to website_twitter 138m | Succeed | Log |
| Build 381482 | Post install tests: step install all modules 74m | Succeed | Log |
| Build 381483 | Post install tests: from account to payment_alipay 159m | Succeed | Log |
| Build 381484 | Post install tests: from payment_aps to test_viin_web_cohort 194m | Succeed | Log |
| Build 381485 | Post install tests: from test_website to to_website_apps_store 89m | Succeed | Log |
| Build 381486 | Post install tests: from to_website_apps_store_loc to viin_estimate_sale 94m | Succeed | Log |
| Build 381487 | Post install tests: from viin_event_checkin_website to viin_project_gantt 39m | Succeed | Log |
| Build 381488 | Post install tests: from viin_project_progress to website_twitter 53m | Succeed | Log |
| Build 381489 | Test install all modules without demo data: from account to website_twitter 58m | Succeed | Log |
| Create Date | Level | Message |
|---|---|---|
| 05/03/2026 21:05:39 | INFO |
Updated repository Viindoo-odoo
|
| 05/03/2026 21:05:39 | INFO |
Updated repository Viindoo-tvtmaaddons
|
| 05/03/2026 21:05:39 | INFO |
Updated repository Viindoo-erponline-enterprise
|
| 05/03/2026 21:05:39 | INFO |
Updated repository Viindoo-branding
|
| 05/03/2026 21:05:39 | INFO |
Cloned repository Viindoo-ai
|
| 05/03/2026 21:25:05 | ERROR |
Subbuild # 381480:
odoo.addons.test_pylint.tests.test_eslint: FAIL: TestESLint.test_eslint
Traceback (most recent call last):
File "/data/build/Viindoo-tvtmaaddons-17.0/test_pylint/tests/test_eslint.py", line 67, in test_eslint
self.assertEqual(process.returncode, 0, msg=f"""
AssertionError: 1 != 0 :
stdout:
/data/build/rb-95d08c8-221699/viin_brain/static/src/components/share_dialog/share_dialog.js
56:35 error Replace `⏎············?·_t("Share·%s",·this.state.pageName)⏎···········` with `·?·_t("Share·%s",·this.state.pageName)` prettier/prettier
/data/build/rb-95d08c8-221699/viin_brain/static/tests/seams/v2_extension_seams_tests.js
34:19 error Replace `⏎············mount.classList.contains("d-none"),⏎············"canvas·mount·is·hidden·by·default·(d-none)"⏎········` with `mount.classList.contains("d-none"),·"canvas·mount·is·hidden·by·default·(d-none)"` prettier/prettier
41:13 error Replace `"canvas·mount·declares·t-ref=\"canvasMount\""` with `'canvas·mount·declares·t-ref="canvasMount"'` prettier/prettier
56:16 error Replace `"Seam·4:·ShareDialog·template·has·empty·<t·t-slot=\"collabSection\"/>"` with `'Seam·4:·ShareDialog·template·has·empty·<t·t-slot="collabSection"/>'` prettier/prettier
60:45 error Replace `"exactly·one·<t·t-slot=\"collabSection\"/>·declared"` with `'exactly·one·<t·t-slot="collabSection"/>·declared'` prettier/prettier
83:16 error Replace `"Seam·6:·AI·block·HTML·output·carries·additive·o_brain_ai_state_<status>·class",` with `⏎········"Seam·6:·AI·block·HTML·output·carries·additive·o_brain_ai_state_<status>·class",⏎·······` prettier/prettier
84:1 error Replace `········` with `············` prettier/prettier
85:9 error Insert `····` prettier/prettier
86:1 error Replace `········` with `············` prettier/prettier
87:9 error Insert `····` prettier/prettier
88:1 error Insert `····` prettier/prettier
89:9 error Insert `····` prettier/prettier
90:1 error Insert `····` prettier/prettier
91:1 error Replace `········` with `············` prettier/prettier
92:1 error Insert `····` prettier/prettier
93:1 error Replace `············` with `················` prettier/prettier
94:9 error Insert `····` prettier/prettier
95:1 error Replace `········` with `············` prettier/prettier
96:9 error Insert `····` prettier/prettier
97:1 error Insert `····` prettier/prettier
98:13 error Insert `····` prettier/prettier
99:9 error Insert `····` prettier/prettier
100:1 error Replace `····}` with `········}⏎····` prettier/prettier
/data/build/rb-95d08c8-221699/viin_brain/static/tests/tours/brain_ux_batch_a_tour.js
126:21 error Insert `⏎···············` prettier/prettier
✖ 24 problems (24 errors, 0 warnings)
24 errors and 0 warnings potentially fixable with the `--fix` option.
Perhaps you might benefit from installing the tooling found at:
https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines#use-a-linter
stderr:
|
| 05/03/2026 21:25:05 | ERROR |
Subbuild # 381480:
odoo.modules.loading: Module test_pylint: 1 failures, 0 errors of 7 tests
|
| 05/03/2026 21:25:05 | ERROR |
Subbuild # 381480:
odoo.modules.loading: At least one test failed when loading the modules.
|
| 05/03/2026 21:25:05 | ERROR |
Subbuild # 381480:
odoo.tests.result: 1 failed, 0 error(s) of 24 tests when loading database 'rb-95d08c8-221699-381480'
|