video-accessibility/backend/app/models
Vadym Samoilenko a168af1aa7 feat: two-stage QC (linguist→reviewer), project picker, comments, email notifications, deadlines
- Two-stage QC workflow: linguist edits + submits → reviewer approves/rejects per language.
  New statuses: in_progress, pending_review, in_review. New service functions: submit_for_review,
  open_review, assign_reviewer, reassign_reviewer, add_comment. Linguist and reviewer deadlines.
- Reject now resets language to in_progress so linguist can iterate without full re-assignment.
- QC comment threads per language (append-only), visible to all assignees.
- Email notifications via Mailgun on: assignment, submit-for-review, comment, approve, reject.
  Best-effort (failures do not roll back QC actions). asyncio.gather for parallel fan-out.
- New audit actions: LANGUAGE_QC_REVIEWER_ASSIGN/REASSIGN, LANGUAGE_QC_SUBMIT,
  LANGUAGE_QC_OPEN_REVIEW, LANGUAGE_QC_COMMENT.
- Inline project picker in NewJob: "+ Create new project…" option with name, default
  languages, default linguist, default reviewer. Pre-fills languages on the new job.
- Project model extended with default_languages, default_linguist_id, default_reviewer_id.
- RBAC: CLIENT org-members can now create projects (backend guard relaxed).
- LinguistQueue: role toggle "As linguist / As reviewer" + new status tabs.
- QCDetail: two-slot assignment cards (linguist + reviewer), deadline display, role-aware
  action buttons, comments panel with optimistic insert and 15s refetch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-29 16:59:40 +01:00
..
audit_log.py feat: two-stage QC (linguist→reviewer), project picker, comments, email notifications, deadlines 2026-04-29 16:59:40 +01:00
client.py feat: two-stage QC (linguist→reviewer), project picker, comments, email notifications, deadlines 2026-04-29 16:59:40 +01:00
glossary.py feat: per-client glossary — hybrid exact/vector retrieval + AI injection 2026-04-29 13:03:38 +01:00
invitation.py feat(saas): Phase 2 — invitation flow, email templates, MS SSO zero-membership 2026-04-27 16:52:08 +01:00
job.py feat: two-stage QC (linguist→reviewer), project picker, comments, email notifications, deadlines 2026-04-29 16:59:40 +01:00
membership.py feat(saas): Phase 0+1 — Organization/Membership entities and dev branch 2026-04-27 16:46:24 +01:00
organization.py feat(saas): Phase 0+1 — Organization/Membership entities and dev branch 2026-04-27 16:46:24 +01:00
review_note.py feat: add video review with timestamped notes to Final Review 2025-12-26 15:30:00 -06:00
user.py feat: Client → Team → Project isolation system with Project Manager role 2026-04-27 15:11:13 +01:00
vtt_version.py feat: VTT version control — snapshots, diff, restore 2026-04-29 11:46:21 +01:00