| 03-printer-configuration |
02 |
ui |
| fastapi |
| jinja2 |
| htmx |
| peewee |
| sqlite |
|
| phase |
provides |
| 03-01 |
Printer and Client CRUD endpoints, DB models, printer_list partial template |
|
|
| GET /printers/{id} detail route with LEFT OUTER JOINs on Client and Driver |
| printer_detail.html full-page template showing all config fields and driver info |
| Disabled "Regenerate Package" button (Phase 4 placeholder) |
| Clickable printer name links in printer_list.html navigating to detail page |
|
| 04-script-generation (regenerate button placeholder ready to wire up) |
|
| added |
patterns |
|
|
| TDD RED/GREEN cycle: failing tests committed first, then implementation |
| LEFT OUTER JOIN chain with .switch(Printer) for multi-FK queries in Peewee |
| Null-safe driver_desc parse: check printer.driver_id before json.loads |
|
|
| created |
modified |
| imptune/templates/printer_detail.html |
|
| imptune/api/pages.py |
| imptune/templates/partials/printer_list.html |
| tests/test_printer_crud.py |
|
|
| Detail page is a full-page template (not partial) — simpler than partial injection into printers.html |
| Route lives in pages.py (not printers.py) because it returns a full HTML page, not an HTMX fragment |
|
| Full-page detail routes in pages.py; HTMX fragment routes in api/printers.py |
| Disabled placeholder buttons for Phase N+1 features with descriptive title attribute |
|
|
2min |
2026-04-10 |