7f35297025
Naser confirmed all remaining QA Review / Draft rows (97 subtasks, 16
parent rollups) are done in substance: the site has been in production
for roughly a year. Overrides the conservative QA-Review/Draft mapping
from the prior takeover commit (0f9d12c) at his explicit instruction.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
---
|
|
id: 4-2
|
|
title: 4-2 Timeline Updates Management
|
|
status: Done
|
|
date: 2026-09-27
|
|
parent: 4
|
|
---
|
|
|
|
## Description
|
|
|
|
As an admin, I want to add and edit updates within a timeline, So that I can keep clients informed about their case progress. Context: Integrates with: timeline_updates table, timelines table; Technology: Livewire Volt, rich text editor (Trix recommended); Follows pattern: Nested CRUD pattern. Full implementation history: docs/stories/story-4.2-timeline-updates-management.md
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] Add new update to timeline
|
|
- [ ] Update text content (required)
|
|
- [ ] Rich text formatting supported:
|
|
- [ ] Timestamp automatically recorded
|
|
- [ ] Admin name automatically recorded
|
|
- [ ] Client notified via email on new update
|
|
- [ ] Edit existing update text
|
|
- [ ] Edit history preserved (updated_at changes)
|
|
- [ ] Cannot change timestamp or admin
|
|
- [ ] Updates displayed in chronological order
|
|
- [ ] Each update shows:
|
|
- [ ] Visual timeline representation
|
|
- [ ] HTML sanitization using `mews/purifier` package
|
|
- [ ] Audit log for add/edit operations via AdminLog
|
|
- [ ] Feature tests for all operations
|
|
- [ ] Can add update with valid text (min 10 chars)
|
|
- [ ] Cannot add update with empty text - validation error
|
|
- [ ] Cannot add update with text < 10 chars - validation error
|
|
- [ ] HTML is sanitized (script tags, XSS vectors removed)
|
|
- [ ] Client receives notification email on new update
|
|
- [ ] Audit log created when update is added
|
|
- [ ] Audit log created when update is edited (includes old/new values)
|
|
- [ ] Updates display in chronological order (oldest first)
|
|
- [ ] Admin name and timestamp automatically recorded
|
|
- [ ] Edit preserves original created_at, updates updated_at
|
|
- [ ] Cannot change timestamp or admin on edit
|