Skip to content

[IMP] dms: CI artifact pipeline + Hoot suite + OWL 19.0 audit + toolbar collapse - #5

Closed
dnplkndll wants to merge 0 commit into
19.0-imp-dms-uxfrom
19.0-ci-ui-artifacts
Closed

[IMP] dms: CI artifact pipeline + Hoot suite + OWL 19.0 audit + toolbar collapse#5
dnplkndll wants to merge 0 commit into
19.0-imp-dms-uxfrom
19.0-ci-ui-artifacts

Conversation

@dnplkndll

@dnplkndll dnplkndll commented May 25, 2026

Copy link
Copy Markdown

Latest iteration (83c0c7b) — bugbot review pass:

  • View-toolbar pill (.o_dms_view_toolbar__toggle) hover state now responds with color depth — primary-tinted background + border + softer-deeper shadow for the "off" state (signals affordance), brightness(0.92) filter + lifted shadow for the "on" state (signals dismissal). Replaces the prior translateY(-1px)-only hover that read as broken.

Stacked on top of ledoent/dms#3. Fork-only PR for runboat preview + stakeholder review of CI and UX iteration that landed since #3 was force-pushed at 123ee79.

What shipped

CI artifact pipeline (test failure observability)

  • Upload screenshots from JS tests step (capture /tmp/odoo_tests/<DB> on failure) — forward-ported from the cookiecutter; companion template PR at ledoent/oca-addons-repo-template#1.
  • Upload odoo server log on failure step (capture /var/log/odoo/*.log + workspace + runner-temp).
  • workflow_dispatch: added so we can manually re-trigger when GitHub silently throttles fork-PR runs after a push burst.
  • checklog-odoo.cfg ignores Killing chrome descendants WARN (benign browser_js cleanup; OCA_ENABLE_CHECKLOG_ODOO=1 was treating it as a build error).

Hoot test suite (test_hoot.py + ?filter="@dms")

  • tests/test_hoot.py wires HttpCase.browser_js("/web/tests?...&filter=\"@dms\"") — Hoot's ?filter= defaults to fuzzy character-order matching; the double-quoted exact-substring form isolates @dms/... test paths from the bundled web-core suite.
  • Asset-bundle layout: addon source bundled into web.assets_backend (not web.assets_unit_tests_setup — that bundle is Hoot's framework contract; appending addon files after it breaks the runner).
  • All 9 Hoot test files run + pass:
    • dms_stat_bar.test.js (sparkline geometry)
    • file_preview_pane.test.js (toolbar / load / dispatch + expect.errors(1) + verifyErrors(patterns))
    • file_kanban_buttons.test.js, file_kanban_density.test.js, file_kanban_mount.test.js (defineMailModels() for mock-server base, regex-literal + boolean-attr regression locks)
    • file_list_renderer.xml-touching renderer tests under views/
    • preview_handlers.test.js, preview_registry.test.js

OWL 19.0 readiness audit (per oca-review U/T pattern catalog)

Two real bugs, one style sweep:

  • U7 (HIGH) — deleted dead static/src/js/views/file_kanban_controller.{xml,esm.js}. The XML defined dms.FileKanbanView.Buttons via t-inherit="web.KanbanView.Buttons" — the exact pattern that crashes at OWL render against 19.0's emptied template. Not wired anywhere; the view uses the self-contained dms.KanbanButtons template.
  • U5 (MEDIUM)t-att-data-loading coerced to explicit 'true'/'false'. SCSS selector &[data-loading="true"] never matched because Owl serializes truthy booleans as a presence flag (<div data-loading>).
  • U2 (style) — converted 10 OWL 1 prototype-assignment idioms (Foo.template = "x"; Foo.props = {...}) to OWL 2 static class fields across 7 components. Cross-file Renderer.template = "..." assignments lifted into the renderer class declarations where they belong.

View-toolbar collapse (overlap fix)

Both renderers were stacking four absolute-positioned floaters in the top-right corner: preview-toggle pill (kanban + list), density toggle (twice — once in file_kanban.scss, once shifted to right: 160px inside the kanban-split context). On list view the pill landed on top of the column-header row immediately under Odoo's control panel; on kanban the density and preview pills fought for the same corner and density was hidden entirely when the pane opened.

Replaced the cascade with .o_dms_view_toolbar — one in-flow strip above the grid/list, populated with whatever view-level controls each renderer needs (density btn-group + preview pill on kanban; preview pill only on list, right-anchored via __spacer { flex: 1 }). Gone: 4 absolute-position rules, 2 right: calc(40% + 12px) shifts, 1 display: none density hack, all z-index battles.

Backend e2e tour

dms/tests/test_backend_tours.py::test_kanban_density_toggle drives start_tour("/odoo", "dms_kanban_density_tour", login="admin"). Five steps verify default density → click Compact → localStorage persistence + data-attr propagation → restore Comfortable → cleanup. Toolbar chrome renders even with zero records, so the tour is safe under OCA CI's --without-demo=all.

Out of scope (still deferred)

  • Stripping workflow_dispatch: from the workflow file before upstreaming — needed because ledoent/oca-addons-repo-template#1 hasn't landed in OCA yet.
  • Penpot DMS — Migration & Modernization file refresh to mirror these surfaces — separate session.
  • Splitting any of this into focused upstream PRs against OCA/dms — blocked on OCA/dms#475 merging + the 19.0.1.0.0 wheel publishing.

@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch 2 times, most recently from 1fd4f3c to 8df0b39 Compare May 25, 2026 16:26
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from 8df0b39 to fab55e7 Compare May 25, 2026 19:10
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from fab55e7 to 3aeb0f9 Compare May 25, 2026 19:33
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from 3aeb0f9 to 4114437 Compare May 25, 2026 19:39
dnplkndll added a commit that referenced this pull request May 25, 2026
The new module addition (dms_libreoffice_preview) pushed after a burst
of activity on PR #3 / PR #5 today \u2014 GitHub's anti-abuse heuristic
silently dropped the pull_request trigger for PR #6. workflow_dispatch
lets us `gh workflow run` manually when this happens. Same pattern
used on the 19.0-imp-dms-ux + 19.0-ci-ui-artifacts branches.
dnplkndll added a commit that referenced this pull request May 25, 2026
The new module addition (dms_libreoffice_preview) pushed after a burst
of activity on PR #3 / PR #5 today \u2014 GitHub's anti-abuse heuristic
silently dropped the pull_request trigger for PR #6. workflow_dispatch
lets us `gh workflow run` manually when this happens. Same pattern
used on the 19.0-imp-dms-ux + 19.0-ci-ui-artifacts branches.
dnplkndll added a commit that referenced this pull request May 25, 2026
The new module addition (dms_libreoffice_preview) pushed after a burst
of activity on PR #3 / PR #5 today \u2014 GitHub's anti-abuse heuristic
silently dropped the pull_request trigger for PR #6. workflow_dispatch
lets us `gh workflow run` manually when this happens. Same pattern
used on the 19.0-imp-dms-ux + 19.0-ci-ui-artifacts branches.
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from 4114437 to bfa5049 Compare May 25, 2026 22:10
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from bfa5049 to 1096edf Compare May 25, 2026 22:31
@dnplkndll
dnplkndll force-pushed the 19.0-imp-dms-ux branch 2 times, most recently from 095f9d7 to e8ffea4 Compare May 25, 2026 23:21
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch 2 times, most recently from 57007b4 to a383191 Compare May 25, 2026 23:23
@dnplkndll dnplkndll closed this May 25, 2026
@dnplkndll
dnplkndll force-pushed the 19.0-ci-ui-artifacts branch from a383191 to cbb1ac7 Compare May 25, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant