diff --git a/backend/app/api/v1/admin.py b/backend/app/api/v1/admin.py index bc037a6..f7ce13c 100644 --- a/backend/app/api/v1/admin.py +++ b/backend/app/api/v1/admin.py @@ -6,7 +6,7 @@ from typing import Optional, List, Dict, Any from datetime import datetime, timedelta from fastapi import APIRouter, Depends, Query from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy import select, func +from sqlalchemy import select, func, case from app.core.deps import get_current_active_user as get_current_user, get_db from app.models.user import User @@ -216,7 +216,7 @@ async def get_course_completion_data( select( func.count(UserCourseProgress.id).label('total'), func.sum( - func.case( + case( (UserCourseProgress.status == ProgressStatus.COMPLETED.value, 1), else_=0 ) diff --git a/backend/app/services/task_service.py b/backend/app/services/task_service.py index f6b30dc..6e6aa61 100644 --- a/backend/app/services/task_service.py +++ b/backend/app/services/task_service.py @@ -3,7 +3,7 @@ """ from typing import List, Optional from datetime import datetime -from sqlalchemy import select, func, and_ +from sqlalchemy import select, func, and_, case from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import joinedload from app.models.task import Task, TaskCourse, TaskAssignment, TaskStatus, AssignmentStatus @@ -154,7 +154,7 @@ class TaskService(BaseService[Task]): stmt = select( func.count(TaskAssignment.id).label('total'), func.sum( - func.case( + case( (TaskAssignment.status == AssignmentStatus.COMPLETED, 1), else_=0 )