From afffc78537426093dc62ca72fef38dc667aef47b Mon Sep 17 00:00:00 2001 From: dominik24c Date: Wed, 16 Nov 2022 21:06:33 +0100 Subject: [PATCH] update workloads statistics endpoint for coordinator --- backend/app/coordinator/routes/__init__.py | 4 ++-- .../app/coordinator/routes/project_supervisor.py | 2 +- backend/app/coordinator/routes/workloads.py | 13 ++++++------- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/backend/app/coordinator/routes/__init__.py b/backend/app/coordinator/routes/__init__.py index a99b85a..47a62ae 100644 --- a/backend/app/coordinator/routes/__init__.py +++ b/backend/app/coordinator/routes/__init__.py @@ -6,7 +6,7 @@ from .groups import bp as groups_bp from .project_supervisor import bp as project_supervisor_bp from .students import bp as students_bp from .year_group import bp as year_group_bp -# from .workloads import bp as workloads_bp +from .workloads import bp as workloads_bp bp = Blueprint("coordinator", __name__, url_prefix="/coordinator") @@ -16,4 +16,4 @@ bp.register_blueprint(groups_bp) bp.register_blueprint(year_group_bp) bp.register_blueprint(examination_schedule_bp) bp.register_blueprint(enrollments_bp) -# bp.register_blueprint(workloads_bp) +bp.register_blueprint(workloads_bp) diff --git a/backend/app/coordinator/routes/project_supervisor.py b/backend/app/coordinator/routes/project_supervisor.py index 21283a2..b349517 100644 --- a/backend/app/coordinator/routes/project_supervisor.py +++ b/backend/app/coordinator/routes/project_supervisor.py @@ -72,7 +72,7 @@ def create_project_supervisor(data: dict) -> dict: return {"message": "Project Supervisor was created!"} -@bp.get("//") +@bp.get("//detail") @bp.output(ProjectSupervisorSchema) def detail_project_supervisor(id: int) -> ProjectSupervisor: project_supervisor = ProjectSupervisor.query.filter_by(id=id).first() diff --git a/backend/app/coordinator/routes/workloads.py b/backend/app/coordinator/routes/workloads.py index 2c709f6..1c02824 100644 --- a/backend/app/coordinator/routes/workloads.py +++ b/backend/app/coordinator/routes/workloads.py @@ -3,7 +3,7 @@ from flask import abort from flask_sqlalchemy import get_debug_queries from ...dependencies import db -from ...examination_schedule.models import ExaminationSchedule +from ...examination_schedule.models import ExaminationSchedule, TermOfDefence from ...project_supervisor.models import ProjectSupervisor from ..schemas import WorkloadSchema @@ -19,15 +19,14 @@ def workloads_statistics(examination_schedule_id: int) -> dict: statistics = db.session.query( ProjectSupervisor.first_name + " " + ProjectSupervisor.last_name, - db.func.count(Enrollment.group_id), - db.func.count(Committee.id), - ).join(Committee.members). \ - join(Enrollment, isouter=True). \ + db.func.count(TermOfDefence.group_id), + db.func.count(TermOfDefence.id), + ).join(TermOfDefence.members_of_committee). \ group_by(ProjectSupervisor.id).all() # print(statistics) # print(len(statistics)) # print(get_debug_queries()) - workloads = ({"full_name": s[0], "groups_assigned_to_his_committee": s[1], "assigned_to_committee": s[2]} for s in - statistics) + workloads = ({"full_name": s[0], "groups_assigned_to_his_committee": s[1], + "assigned_to_committee": s[2]} for s in statistics) return {'workloads': workloads}