feat: implement Animal Detail page with timeline (Step 8.3)

Add GET /animals/{animal_id} route to display individual animal details:
- Header summary with species, location, status, tags
- Event timeline showing all events affecting the animal (newest first)
- Quick actions card (Move functional, others disabled for now)
- Merge info alert for animals that have been merged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-30 20:14:12 +00:00
parent bce4d099c9
commit 301b925be3
8 changed files with 1296 additions and 9 deletions

18
PLAN.md
View File

@@ -326,15 +326,15 @@ Check off items as completed. Each phase builds on the previous.
- [x] **Commit checkpoint**
### Step 8.3: Animal Detail Drawer
- [ ] Create `web/routes/animals.py`:
- [ ] GET /animals/{animal_id}
- [ ] Create `web/templates/animal_detail.py`:
- [ ] Header summary
- [ ] Timeline (newest first)
- [ ] Quick actions
- [ ] Create `repositories/animal_timeline.py`
- [ ] Write tests: detail renders, timeline shows events, merge info shown
- [ ] **Commit checkpoint**
- [x] Create `web/routes/animals.py`:
- [x] GET /animals/{animal_id}
- [x] Create `web/templates/animal_detail.py`:
- [x] Header summary
- [x] Timeline (newest first)
- [x] Quick actions
- [x] Create `repositories/animal_timeline.py`
- [x] Write tests: detail renders, timeline shows events, merge info shown
- [x] **Commit checkpoint**
---