pyvelm v0.2.1¶
Release date: 2026-05-22
Base module: 0.18.0 (unchanged)
Patch release: inline One2many editing on parent forms is now usable end to end, with validation playback and clearer relational field labels.
Highlights¶
Inline One2many tables¶
Edit child lines on the parent form without opening a dialog for every row.
- Auto table when the comodel has a list view (or
widget="table") - Add a line footer row + Add row button — both append an editable
<tr> - Per-cell validation on save failure (422): errors and typed values replay
- Drag-reorder when the comodel list view declares
sequence - Delete row marks existing lines for unlink; new lines drop on delete
Many2many polish¶
Chip editor matches Many2one UX: search, create inline, open linked record in the form dialog.
Smarter default labels¶
Relational fields no longer show raw column names:
| Field | Before | After |
|---|---|---|
company_id |
Company id | Company |
country_id |
Country id | Country |
tag_ids |
Tag ids | Tags |
child_ids |
Child ids | Children |
Set string="…" on the field in your model to override.
Bug fixes¶
- Add row no longer stacks fields vertically — cloning used
innerHTML, which broke on nested Alpine<template>markup inside M2O cells; now clonestemplate.contentand callsAlpine.initTree. - Inline table column alignment; Many2many / nested One2many columns excluded from compact rows.
- Demo seed discovers bundled
baseviaBUILTIN_MODULE_ROOTS.
Install¶
Upgrade from v0.2.0¶
pip install -U pyvelm==0.2.1- Restart the app process (models reload field label defaults at import)
- Rebuild CSS if you customize templates:
npm run build
No database migrations required for this patch.
What's next¶
- Vellum — Eloquent-style ORM veneer (later removed from the framework)
- Mail followers & message subtypes
- S3/MinIO attachment backend
- O2m inline tables: Filter By / search bar (list-view parity)
Full diff: v0.2.0…v0.2.1