Add AQMM quality tags to existing service task checklist

This commit is contained in:
A R R R Associates
2026-07-07 11:30:59 +05:30
parent 05c882304b
commit 05690a220c
11 changed files with 448 additions and 5 deletions
+39
View File
@@ -111,6 +111,19 @@ class ServiceDefaultTaskTemplate(CommonBase):
default_role_name: Mapped[str | None] = mapped_column(String(100), nullable=True)
is_mandatory: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False)
requires_review: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
# AQMM task tags. These flags allow the existing service checklist to become
# the engagement quality checklist for assurance engagements, without creating
# a separate duplicate AQMM checklist module.
is_aqmm_task: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False, index=True)
aqmm_mandatory: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_evidence_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_manager_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_partner_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_review_partner_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_blocks_final_release: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_reference: Mapped[str | None] = mapped_column(String(120), nullable=True)
is_active: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False)
catalogue = relationship("ServiceCatalogue", back_populates="default_task_templates")
@@ -166,6 +179,17 @@ class FirmServiceTaskTemplate(CommonBase):
default_role_name: Mapped[str | None] = mapped_column(String(100), nullable=True)
is_mandatory: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False)
requires_review: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
# AQMM task tags copied into generated ClientServiceTaskInstance rows.
is_aqmm_task: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False, index=True)
aqmm_mandatory: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_evidence_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_manager_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_partner_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_review_partner_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_blocks_final_release: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_reference: Mapped[str | None] = mapped_column(String(120), nullable=True)
is_active: Mapped[bool] = mapped_column(Boolean, default=True, nullable=False)
created_by_user_id: Mapped[int | None] = mapped_column(ForeignKey("users.id"), nullable=True)
@@ -572,6 +596,21 @@ class ClientServiceTaskInstance(CommonBase):
internal_target_date: Mapped[date | None] = mapped_column(Date, nullable=True, index=True)
status: Mapped[str] = mapped_column(String(30), nullable=False, default="pending", index=True)
priority: Mapped[str] = mapped_column(String(20), nullable=False, default="normal")
# Copied from FirmServiceTaskTemplate at generation time. Existing task
# completion/evidence upload flow is reused to calculate AQMM quality status.
is_aqmm_task: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False, index=True)
aqmm_mandatory: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_evidence_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_manager_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_partner_review_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_review_partner_required: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_blocks_final_release: Mapped[bool] = mapped_column(Boolean, default=False, nullable=False)
aqmm_reference: Mapped[str | None] = mapped_column(String(120), nullable=True)
aqmm_status: Mapped[str] = mapped_column(String(40), default="not_required", nullable=False, index=True)
aqmm_review_status: Mapped[str] = mapped_column(String(40), default="not_required", nullable=False, index=True)
aqmm_completed_at_utc: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)
remarks: Mapped[str | None] = mapped_column(Text, nullable=True)
started_at_utc: Mapped[datetime | None] = mapped_column(DateTime(timezone=True), nullable=True)