diff --git a/backend/app/coordinator/routes/groups.py b/backend/app/coordinator/routes/groups.py index 07d1902..0215303 100644 --- a/backend/app/coordinator/routes/groups.py +++ b/backend/app/coordinator/routes/groups.py @@ -50,6 +50,13 @@ def create_group(data: dict) -> dict: # elif result <= 0: # abort(400, "Can't create new group, project supervisor achieved a limit of groups") + project_supervisor = ProjectSupervisor.query.filter_by(id=project_supervisor_id).first() + + if project_supervisor is None: + abort(400, "Project Supervisor with id {project_supervisor_id} doesnt exist") + elif project_supervisor.limit_group == project_supervisor.count_groups: + abort(400, "Can't create new group, project supervisor achieved a limit of groups") + group = Group(name=name, project_supervisor_id=project_supervisor_id) students_without_groups = db.session.query(Student).join(Group, isouter=True) \ @@ -59,6 +66,7 @@ def create_group(data: dict) -> dict: abort(400, "One or more students have already belonged to group!") students = db.session.query(Student).filter(Student.index.in_(students_indexes)).all() + project_supervisor.count_groups += 1 for student in students: student.group_id = group.id diff --git a/frontend/src/api/leaders.ts b/frontend/src/api/leaders.ts index bffa38e..2529efe 100644 --- a/frontend/src/api/leaders.ts +++ b/frontend/src/api/leaders.ts @@ -13,7 +13,7 @@ export interface Leader { last_name: string email: string limit_group: number - count_group: number + count_groups: number mode: number } diff --git a/frontend/src/views/coordinator/AddGroup.tsx b/frontend/src/views/coordinator/AddGroup.tsx index 1426a1a..5b27b5f 100644 --- a/frontend/src/views/coordinator/AddGroup.tsx +++ b/frontend/src/views/coordinator/AddGroup.tsx @@ -41,7 +41,6 @@ const AddGroup = () => { data.project_supervisor_id = data.project_supervisor_id.value data.students = data.students.map((st: any) => st.value) mutateCreateGroup(data) - console.log(data) } const [studentOptions, setStudentOptions] = useState([]) diff --git a/frontend/src/views/coordinator/Leaders.tsx b/frontend/src/views/coordinator/Leaders.tsx index cf471cc..7567c2d 100644 --- a/frontend/src/views/coordinator/Leaders.tsx +++ b/frontend/src/views/coordinator/Leaders.tsx @@ -80,13 +80,13 @@ const Leaders = () => { {leaders?.data?.project_supervisors - .map(({ id, first_name, last_name, email, limit_group, count_group, mode }) => ( + .map(({ id, first_name, last_name, email, limit_group, count_groups, mode }) => ( {first_name} {last_name} {email} {limit_group} - {count_group} + {count_groups} {mode==0 ? "Stacjonarny" : mode==1 ? "Niestacjonarny" : "Nie/stacjonarny"}