Add Excel import export and code linking for task categories
This commit is contained in:
@@ -8,7 +8,7 @@ from openpyxl.utils import get_column_letter
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import Session, selectinload
|
||||
|
||||
from app.modules.services.models import ServiceCatalogue, ServiceDefaultTaskTemplate
|
||||
from app.modules.services.models import ServiceCatalogue, ServiceDefaultTaskTemplate, ServiceTaskCategory
|
||||
|
||||
|
||||
_HEADERS = [
|
||||
@@ -21,6 +21,7 @@ _HEADERS = [
|
||||
"default_role_name",
|
||||
"is_mandatory",
|
||||
"requires_review",
|
||||
"task_category_code",
|
||||
"task_category",
|
||||
"response_required",
|
||||
"response_type",
|
||||
@@ -46,6 +47,7 @@ _IMPORT_HEADERS = [
|
||||
"default_role_name",
|
||||
"is_mandatory",
|
||||
"requires_review",
|
||||
"task_category_code",
|
||||
"task_category",
|
||||
"response_required",
|
||||
"response_type",
|
||||
@@ -144,6 +146,13 @@ def build_default_tasks_export(db: Session, *, catalogue_id: int | None = None)
|
||||
])
|
||||
missing_ws.append(["service_code", "service_name", "category_code", "category_name", "recurrence_type", "engagement_type"])
|
||||
|
||||
category_code_by_id = {
|
||||
row.id: row.code
|
||||
for row in db.execute(
|
||||
select(ServiceTaskCategory).where(ServiceTaskCategory.tenant_id.is_(None))
|
||||
).scalars().all()
|
||||
}
|
||||
|
||||
total_tasks = 0
|
||||
active_tasks = 0
|
||||
services_without_tasks = 0
|
||||
@@ -168,6 +177,7 @@ def build_default_tasks_export(db: Session, *, catalogue_id: int | None = None)
|
||||
task.default_role_name or "",
|
||||
_yes_no(task.is_mandatory),
|
||||
_yes_no(task.requires_review),
|
||||
category_code_by_id.get(getattr(task, "task_category_id", None), ""),
|
||||
task.task_category or "",
|
||||
_yes_no(task.response_required),
|
||||
task.response_type or "NONE",
|
||||
@@ -192,6 +202,7 @@ def build_default_tasks_export(db: Session, *, catalogue_id: int | None = None)
|
||||
task.default_role_name or "",
|
||||
_yes_no(task.is_mandatory),
|
||||
_yes_no(task.requires_review),
|
||||
category_code_by_id.get(getattr(task, "task_category_id", None), ""),
|
||||
task.task_category or "",
|
||||
_yes_no(task.response_required),
|
||||
task.response_type or "NONE",
|
||||
|
||||
Reference in New Issue
Block a user