diff --git a/src/backend/app/projects/project_schemas.py b/src/backend/app/projects/project_schemas.py index b8a5431a..083d2b20 100644 --- a/src/backend/app/projects/project_schemas.py +++ b/src/backend/app/projects/project_schemas.py @@ -549,12 +549,12 @@ def calculate_status(cls, values): completed_task_count = values.completed_task_count total_task_count = values.total_task_count - if ongoing_task_count == 0: + if completed_task_count == 0 and ongoing_task_count == 0: values.status = "not-started" - elif ongoing_task_count > 0 and ongoing_task_count != completed_task_count: - values.status = "ongoing" - elif ongoing_task_count == total_task_count: + elif completed_task_count == total_task_count: values.status = "completed" + else: + values.status = "ongoing" return values diff --git a/src/backend/app/tasks/task_routes.py b/src/backend/app/tasks/task_routes.py index 32f267a7..0839ab08 100644 --- a/src/backend/app/tasks/task_routes.py +++ b/src/backend/app/tasks/task_routes.py @@ -96,7 +96,7 @@ async def get_task_stats( raw_sql = """ SELECT COUNT(CASE WHEN te.state = 'REQUEST_FOR_MAPPING' THEN 1 END) AS request_logs, - COUNT(CASE WHEN te.state = 'LOCKED_FOR_MAPPING' THEN 1 END) AS ongoing_tasks, + COUNT(CASE WHEN te.state IN ('LOCKED_FOR_MAPPING', 'REQUEST_FOR_MAPPING', 'IMAGE_UPLOADED', 'UNFLYABLE_TASK') THEN 1 END) AS ongoing_tasks, COUNT(CASE WHEN te.state = 'IMAGE_PROCESSED' THEN 1 END) AS completed_tasks, COUNT(CASE WHEN te.state = 'UNFLYABLE_TASK' THEN 1 END) AS unflyable_tasks FROM (