generated from john/python-template
UI slog grinds on
This commit is contained in:
@@ -37,11 +37,13 @@ This checklist does not cover:
|
||||
|
||||
### RD-4 Sources section empty state
|
||||
1. The page shows a Sources action for the current Document
|
||||
2. The action routes to a document-scoped Sources view
|
||||
2. The page shows a primary + Add Source action that opens job-create flow for this Document
|
||||
3. The action routes to a document-scoped Sources view
|
||||
|
||||
### RD-5 Jobs section empty state
|
||||
1. The page shows a Jobs action for the current Document
|
||||
2. The action routes to a document-scoped Jobs view
|
||||
2. The page shows a primary + Add Job action for the current Document
|
||||
3. The action routes to a document-scoped Jobs view
|
||||
|
||||
### RD-6 Filtered navigation readiness
|
||||
1. The detail page provides links or actions that can route to document-scoped Sources and Jobs views
|
||||
@@ -57,6 +59,8 @@ This checklist does not cover:
|
||||
1. Given a loaded Document detail page
|
||||
2. When the user chooses Edit document
|
||||
3. Then editable controls are shown for allowed fields only, including the author relationship selector
|
||||
4. The author selector includes No author, existing Person options, and a Create new item option
|
||||
5. Selecting Create new item routes to Person create
|
||||
|
||||
### UP-2 Editable fields
|
||||
1. Editable: name, document_type, document_date, document_date_raw, location_created, notes, archive_identifier
|
||||
|
||||
@@ -105,7 +105,7 @@ On the Document detail page, the user should be able to see:
|
||||
2. linked people
|
||||
3. a Sources section with empty-state behavior when no sources exist
|
||||
4. a Jobs section with empty-state behavior when no jobs exist
|
||||
5. future links to filtered Jobs and Sources views for the current document
|
||||
5. filtered Jobs and Sources views for the current document
|
||||
|
||||
### 5.2 Current Implementation
|
||||
|
||||
@@ -156,13 +156,13 @@ Intended system-managed fields:
|
||||
| Field | Updatable via UI | Updatable via Service | Notes |
|
||||
|---|---|---|---|
|
||||
| id | No | Practically no | Primary key should be treated as immutable |
|
||||
| name | No | Yes | `DocumentService.update_document()` |
|
||||
| document_type | No | Yes | `DocumentService.update_document()` |
|
||||
| document_date | No | Yes | `DocumentService.update_document()` |
|
||||
| document_date_raw | No | Yes | `DocumentService.update_document()` |
|
||||
| location_created | No | Yes | `DocumentService.update_document()` |
|
||||
| notes | No | Yes | `DocumentService.update_document()` |
|
||||
| archive_identifier | No | Yes | `DocumentService.update_document()` |
|
||||
| name | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| document_type | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| document_date | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| document_date_raw | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| location_created | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| notes | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| archive_identifier | Yes | Yes | Editable from dedicated document edit page via `DocumentService.update_document()` |
|
||||
| created_at | No | Technically yes | Should remain system-managed |
|
||||
| updated_at | No | Technically yes | Should remain system-managed |
|
||||
|
||||
@@ -213,11 +213,10 @@ Schema and models:
|
||||
- `src/transcription/db/models.py`
|
||||
|
||||
Current implementation:
|
||||
- `src/transcription/ui/pages/documents_page.py`
|
||||
- `src/transcription/services/documents.py`
|
||||
- `src/transcription/services/store.py`
|
||||
- `src/transcription/ui/pages/upload_page.py`
|
||||
- `src/transcription/ui/pages/jobs_page.py`
|
||||
- `src/transcription/ui/components/table/jobs.py`
|
||||
- `src/transcription/ui/components/transcript.py`
|
||||
|
||||
Companion UX spec:
|
||||
|
||||
@@ -49,10 +49,7 @@ It should show:
|
||||
3. a linked-author summary when available
|
||||
4. document-scoped navigation links for Sources and Jobs
|
||||
5. filtered views for sources and jobs linked to the current document
|
||||
|
||||
It should later support links to filtered views for:
|
||||
1. jobs associated with the current document only
|
||||
2. sources associated with the current document only
|
||||
6. primary actions + Add Source and + Add Job
|
||||
|
||||
## 4. Entry Point
|
||||
|
||||
@@ -167,10 +164,12 @@ Minimum acceptable first implementation:
|
||||
1. Dropdown of existing Person records.
|
||||
2. Clear display of the selected related person before submit.
|
||||
3. Ability to change or clear the selected person in the Document edit flow.
|
||||
4. A Create new item option in the author selector that routes to Person create.
|
||||
5. A visible Create new person link near the selector.
|
||||
|
||||
If the person does not exist:
|
||||
1. The user should create the Person first from the Person page.
|
||||
2. The Document create flow only links existing Person records in first release.
|
||||
1. The user can use Create new item from the author selector and continue from Person create.
|
||||
2. The Document create flow links existing Person records after selection.
|
||||
|
||||
## 7. Validation Rules
|
||||
|
||||
@@ -205,18 +204,16 @@ If a related person is selected or created:
|
||||
When the user submits the form, the system should perform these logical steps:
|
||||
1. validate form inputs
|
||||
2. create the Document record
|
||||
3. create a Person record only if the user chose to add a new related person
|
||||
4. create one DocumentPerson record only if a related person was selected or created
|
||||
5. persist all intended records successfully before reporting success to the user
|
||||
3. create one DocumentPerson record only if an existing related person was selected
|
||||
4. persist intended records successfully before reporting success to the user
|
||||
|
||||
Expected write sequence:
|
||||
1. insert Document
|
||||
2. insert Person only if needed
|
||||
3. insert DocumentPerson link only if a person is linked
|
||||
2. insert DocumentPerson link only if a person is linked
|
||||
|
||||
Recommended transactional behavior:
|
||||
1. all related writes should succeed or fail together
|
||||
2. the user should not end up with a partial create state where the Document exists but an intended person link does not
|
||||
1. Document and optional DocumentPerson writes should succeed or fail together
|
||||
2. Person creation is a separate workflow reached from the author selector and is not part of the same transaction
|
||||
|
||||
## 9. Expected Result After Success
|
||||
|
||||
@@ -281,7 +278,7 @@ The Document detail page should include:
|
||||
The Document detail page should support:
|
||||
1. empty-state messaging when no related records exist
|
||||
2. clear next actions from each empty state
|
||||
3. future links to filtered Sources and Jobs views scoped to the current document
|
||||
3. filtered Sources and Jobs views scoped to the current document
|
||||
|
||||
### 11.4 Read Empty States
|
||||
|
||||
|
||||
Reference in New Issue
Block a user