pyvelm v0.15.0¶
Release date: 2026-05-27
Configurable shell navigation with an apps layout (application rail + top-bar subsections), a three-level sidebar alternative, and three-level menu data across bundled and example modules.
See docs/navigation.md.
Highlights¶
Apps layout (default)¶
┌──────────┬──────────────────────────────────────────────────┐
│ Dashboard│ [Organization ▾] [Users & access ▾] … user │
│ CRM ├──────────────────────────────────────────────────┤
│ Settings │ page content │
│ … │ │
└──────────┴──────────────────────────────────────────────────┘
- Left rail — root applications only (Dashboard, CRM, Settings, …).
- Top bar — level-2 subsections for the active app; level-3 pages open in a dropdown (closed by default, click to toggle).
- Mobile — drawer shows the full nested tree; top bar shows the active app name (no horizontal tab strip).
PYVELM_MENU_LAYOUT=odoo is still accepted as an alias for apps.
Sidebar layout¶
Classic three-level column: section subheading → collapsible group →
indented links. Same ir.ui.menu tree as the apps layout.
Three-level menu authoring¶
Shipped and example menus are reorganised so pages sit at level 3 and subsections at level 2 (Organization, Pipeline, Operations, …).
m.group(..., parent=)for nested sections.- Dotted menu names (
settings.organization) resolve correctly viamenu_ref(module, name). - Loader upserts parents before children (
_menu_sync_order).
pyvelm.menu¶
New module centralising tree build, layout mode, and template context:
build_menu_tree,menu_layout,menu_layout_contextfind_menu_entry,MENU_LAYOUT_APPS,MENU_LAYOUT_SIDEBAR
Fixes¶
- Kanban drag-and-drop —
pvKanbanBoardconfig moved towindow._pvKanbanCfgso Alpine no longer breaks on quoted attributes inx-data.
Upgrade¶
After pulling menu changes, Apps → Sync affected modules (or
pyvelm db migrate on a dev database) so ir.ui.menu matches the new
three-level structure.
Docs¶
- docs/navigation.md — layouts, mobile behaviour, authoring convention, parent references, Python API.