Skip to content

Commit ade0412

Browse files
authored
Merge pull request #1053 from TMS-Uni-Stuttgart/zeliadev
Fixes to the display of stundent list, scheinstatus and top bar
2 parents 2b4ac60 + ae59f58 commit ade0412

3 files changed

Lines changed: 16 additions & 9 deletions

File tree

client/src/pages/studentmanagement/TutorStudentmanagement.tsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { Button } from '@material-ui/core';
2-
import React, { useCallback, useState } from 'react';
2+
import { TableArrowDown as ImportIcon } from 'mdi-material-ui';
3+
import { useCallback, useEffect, useState } from 'react';
34
import { useParams } from 'react-router';
4-
import { ROUTES } from '../../routes/Routing.routes';
5+
import { Link } from 'react-router-dom';
56
import StudentForm, {
67
convertFormStateToDTO,
78
StudentFormSubmitCallback,
89
} from '../../components/forms/StudentForm';
910
import LoadingSpinner from '../../components/loading/LoadingSpinner';
1011
import OpenableFormWithFab, { EditorOpenState } from '../../components/OpenableFormWithFab';
12+
import { ROUTES } from '../../routes/Routing.routes';
1113
import StudentList from './student-list/StudentList';
1214
import { useStudentsForStudentList } from './student-list/StudentList.helpers';
13-
import { Link } from 'react-router-dom';
14-
import { TableArrowDown as ImportIcon } from 'mdi-material-ui';
1515

1616
interface Params {
1717
tutorialId: string;
@@ -27,6 +27,10 @@ function TutorStudentmanagement(): JSX.Element {
2727
const { students, teams, summaries, isLoading, createStudent, editStudent, deleteStudent } =
2828
useStudentsForStudentList({ tutorialId });
2929

30+
useEffect(() => {
31+
setEditorState({ isAnimating: false, isEditorOpen: false });
32+
}, [students]);
33+
3034
const handleCreateSubmit: StudentFormSubmitCallback = useCallback(
3135
async (values, helpers) => {
3236
const dto = convertFormStateToDTO(values, tutorialId);

client/src/pages/studentmanagement/student-list/StudentList.helpers.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ export function useStudentsForStudentList({
6464

6565
const [students, , , fetchStudents] = useFetchState({
6666
fetchFunction: async (tutorialId: string) => {
67-
return tutorialId === undefined ? getAllStudents() : getStudentsOfTutorial(tutorialId);
67+
return tutorialId ? getStudentsOfTutorial(tutorialId) : getAllStudents();
6868
},
6969
immediate: true,
7070
params: [tutorialId ?? ''],
7171
});
7272

73-
const [summaries = {}, isLoadingSummaries] = useFetchState({
73+
const [summaries = {}, isLoadingSummaries, , fetchSummaries] = useFetchState({
7474
fetchFunction: async (tutorialId: string) => {
7575
return tutorialId
7676
? getScheinCriteriaSummariesOfAllStudentsOfTutorial(tutorialId)
@@ -93,6 +93,7 @@ export function useStudentsForStudentList({
9393
const student = await fetchCreateStudent(dto);
9494
await fetchTeams(tutorialId ?? '');
9595
await fetchStudents(tutorialId ?? '');
96+
await fetchSummaries(tutorialId ?? '');
9697

9798
enqueueSnackbar(`${student.nameFirstnameFirst} wurde erfolgreich erstellt.`, {
9899
variant: 'success',

server/src/module/scheincriteria/scheincriteria.service.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { EntityRepository } from '@mikro-orm/core';
2+
import { InjectRepository } from '@mikro-orm/nestjs';
23
import { Injectable, NotFoundException } from '@nestjs/common';
34
import { FormDataResponse } from 'shared/model/FormTypes';
45
import {
@@ -8,6 +9,7 @@ import {
89
ScheincriteriaSummaryByStudents,
910
SingleScheincriteriaSummaryByStudents,
1011
} from 'shared/model/ScheinCriteria';
12+
import { StudentStatus } from 'shared/model/Student';
1113
import { ScheincriteriaEntity } from '../../database/entities/scheincriteria.entity';
1214
import { Scheinexam } from '../../database/entities/scheinexam.entity';
1315
import { Sheet } from '../../database/entities/sheet.entity';
@@ -17,13 +19,12 @@ import { CRUDService } from '../../helpers/CRUDService';
1719
import { ScheinexamService } from '../scheinexam/scheinexam.service';
1820
import { SheetService } from '../sheet/sheet.service';
1921
import { ShortTestService } from '../short-test/short-test.service';
22+
import { GradingService, StudentAndGradings } from '../student/grading.service';
2023
import { StudentService } from '../student/student.service';
2124
import { TutorialService } from '../tutorial/tutorial.service';
2225
import { Scheincriteria } from './container/Scheincriteria';
2326
import { ScheincriteriaContainer } from './container/scheincriteria.container';
2427
import { ScheinCriteriaDTO } from './scheincriteria.dto';
25-
import { GradingService, StudentAndGradings } from '../student/grading.service';
26-
import { InjectRepository } from '@mikro-orm/nestjs';
2728

2829
interface CalculationParams {
2930
criterias: ScheincriteriaEntity[];
@@ -260,7 +261,8 @@ export class ScheincriteriaService
260261

261262
return {
262263
student: params.studentInfo.student.toDTO(),
263-
passed,
264+
passed:
265+
passed || params.studentInfo.student.status === StudentStatus.NO_SCHEIN_REQUIRED,
264266
scheinCriteriaSummary: summaries,
265267
};
266268
}

0 commit comments

Comments
 (0)