feat: implement Animal Registry view with filtering and pagination (Step 8.1)
- Add status field to filter DSL parser and resolver - Create AnimalRepository with list_animals and get_facet_counts - Implement registry templates with table, facet sidebar, infinite scroll - Create registry route handler with HTMX partial support - Default shows only alive animals; status filter overrides 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
19
PLAN.md
19
PLAN.md
@@ -305,15 +305,16 @@ Check off items as completed. Each phase builds on the previous.
|
||||
## Phase 8: Registry & Event Log
|
||||
|
||||
### Step 8.1: Animal Registry View
|
||||
- [ ] Create `web/routes/registry.py`:
|
||||
- [ ] GET /registry with filters and pagination
|
||||
- [ ] Create `web/templates/registry.py`:
|
||||
- [ ] Table: ID, species, sex, life_stage, location, tags, last event, status
|
||||
- [ ] Facet sidebar with counts
|
||||
- [ ] Create `repositories/animals.py` with list_animals, get_facet_counts
|
||||
- [ ] Implement infinite scroll (50/page, cursor=base64)
|
||||
- [ ] Write tests: renders with animals, pagination works, filters apply
|
||||
- [ ] **Commit checkpoint**
|
||||
- [x] Create `web/routes/registry.py`:
|
||||
- [x] GET /registry with filters and pagination
|
||||
- [x] Create `web/templates/registry.py`:
|
||||
- [x] Table: ID, species, sex, life_stage, location, tags, last event, status
|
||||
- [x] Facet sidebar with counts
|
||||
- [x] Create `repositories/animals.py` with list_animals, get_facet_counts
|
||||
- [x] Implement infinite scroll (50/page, cursor=base64)
|
||||
- [x] Write tests: renders with animals, pagination works, filters apply
|
||||
- [x] Add `status` filter field to selection DSL (parser + resolver)
|
||||
- [x] **Commit checkpoint**
|
||||
|
||||
### Step 8.2: Event Log Projection & View
|
||||
- [ ] Create migration for event_log_by_location table with cap trigger
|
||||
|
||||
Reference in New Issue
Block a user