Add AQMM task evidence and review notes workflow
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone
|
||||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
@@ -219,6 +220,8 @@ def save_uploaded_task_document(
|
||||
user,
|
||||
existing_document_id: int | None = None,
|
||||
udin_required: bool | str | None = None,
|
||||
evidence_type: str | None = None,
|
||||
evidence_description: str | None = None,
|
||||
) -> EngagementDocument:
|
||||
engagement = task.subscription or db.get(ClientServiceSubscription, task.subscription_id)
|
||||
if engagement is None:
|
||||
@@ -241,5 +244,39 @@ def save_uploaded_task_document(
|
||||
)
|
||||
doc.task_instance_id = task.id
|
||||
doc.document_requirement_id = requirement.id if requirement else None
|
||||
if getattr(task, "is_aqmm_task", False):
|
||||
doc.is_aqmm_evidence = True
|
||||
doc.evidence_status = "uploaded"
|
||||
doc.evidence_type = (evidence_type or getattr(requirement, "document_type", None) or document_type or "GENERAL").strip()[:80]
|
||||
doc.evidence_description = (evidence_description or description or remarks or "").strip() or None
|
||||
elif not getattr(doc, "is_aqmm_evidence", False):
|
||||
doc.evidence_status = getattr(doc, "evidence_status", None) or "not_required"
|
||||
db.flush()
|
||||
return doc
|
||||
|
||||
|
||||
|
||||
def update_task_document_evidence_review(
|
||||
db: Session,
|
||||
*,
|
||||
document: EngagementDocument,
|
||||
evidence_status: str,
|
||||
evidence_type: str | None,
|
||||
evidence_description: str | None,
|
||||
evidence_review_note: str | None,
|
||||
user,
|
||||
) -> EngagementDocument:
|
||||
allowed = {"not_required", "uploaded", "accepted", "rejected"}
|
||||
status = (evidence_status or "uploaded").strip().lower()
|
||||
if status not in allowed:
|
||||
status = "uploaded"
|
||||
document.is_aqmm_evidence = bool(status != "not_required")
|
||||
document.evidence_status = status
|
||||
document.evidence_type = (evidence_type or "").strip()[:80] or None
|
||||
document.evidence_description = (evidence_description or "").strip() or None
|
||||
document.evidence_review_note = (evidence_review_note or "").strip() or None
|
||||
document.evidence_reviewed_by_user_id = getattr(user, "id", None)
|
||||
document.evidence_reviewed_at_utc = datetime.now(timezone.utc)
|
||||
document.updated_by_user_id = getattr(user, "id", None)
|
||||
db.flush()
|
||||
return document
|
||||
|
||||
Reference in New Issue
Block a user