A 🔒 box at the head of each row. Ticked, the VM's four current values -- vCPU, RAM, disk, type -- are copied into its overrides: the x1..x4 profile no longer reaches it. Unticked, they are removed and the VM falls back under the profile. The lock shows on the WHOLE ROW, not in a box lost at the end: that is what lets you scan the plan and see at once what escapes the profile. It rests on the override mechanism already proven, indexed by catalog identity, so it survives a remount. Locked state stays distinct from overrides: a VM can be edited without being frozen, and the lock covers all four fields at once. Four traps came with it. "remove_children()" is ASYNCHRONOUS, so giving the card an id broke the remount, the old one still being there. Lists kept stale values across a remount, and a refresh took back the free entry. A frozen VM changed version all the same. And switching profile wiped the disk size that had been set. --- FR --- Une case 🔒 en tête de chaque rangée. Cochée, les quatre valeurs courantes de la VM — vCPU, RAM, disque, type — sont recopiées dans ses surcharges : le profil x1..x4 ne l'atteint plus. Décochée, elles sont retirées et la VM retombe sous le profil. Le verrou se voit à la LIGNE ENTIÈRE, pas à une case perdue au bout : c'est ce qui permet de balayer le plan et de savoir d'un coup ce qui échappe au profil. Il s'appuie sur le mécanisme de surcharge déjà éprouvé, indexé par identité de catalogue : il survit donc à un remontage. L'état verrouillé reste distinct des surcharges : une VM peut être modifiée sans être figée, et le verrou couvre les quatre champs d'un coup. Quatre pièges l'ont accompagné. « remove_children() » est ASYNCHRONE : donner un id à la carte faisait échouer le remontage, l'ancienne étant encore là. Les listes gardaient des valeurs périmées au remontage, et un rafraîchissement reprenait la saisie libre. Une VM figée changeait quand même de version. Et changer de profil effaçait la taille de disque réglée. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .. | ||
| database_manager.py | ||
| kdbx_manager.py | ||
| logo_ascii.txt | ||
| migration_form.py | ||
| migration_stats.py | ||
| qemu_deploy_form.py | ||
| qemu_install_monitor.py | ||
| README.base.md | ||
| README.fr.md | ||
| README.md | ||
| source_todo.sh | ||
| textual_setup.py | ||
| todo.json | ||
| todo.py | ||
| todo_example.json | ||
| todo_file_browser.py | ||
| todo_i18n.py | ||
| todo_prefs.py | ||
| todo_telemetry.py | ||
| todo_upgrade.py | ||
| version_manager.py | ||
TODO is an assistant robot to use ERPLibre
Execute it with ./script/todo/todo.py or make todo.
For a new project, copy todo_example.json to private/todo/todo_override.json | private/todo/todo_override_private.json and edit it.
The mail/ package is the mail client reachable from Assistant > Mail:
several IMAP/SMTP accounts, a local cache, and a Textual TUI. See
../../doc/EMAIL.md.