Skip to content

Commit

Permalink
[Class statistics] Big refactor: Semester enrollments
Browse files Browse the repository at this point in the history
  • Loading branch information
valtterikantanen committed Aug 23, 2024
1 parent e6a216f commit 80e908d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -68,20 +68,19 @@ export const GeneralTab = ({

const programmeCode = query?.studyRights?.programme || studyGuidanceGroupProgrammes[0] || customPopulationProgramme

const createSemesterEnrollmentsMap = student => {
let semesterEnrollments
const getStudyRight = student =>
student.studyRights.find(studyRight =>
studyRight.studyRightElements.some(element => element.code === programmeCode)
)

if (programmeCode) {
semesterEnrollments = student.studyrights.find(studyright =>
studyright.studyright_elements.some(element => element.code === programmeCode)
)?.semester_enrollments
}
const createSemesterEnrollmentsMap = student => {
const semesterEnrollments = getStudyRight(student)?.semesterEnrollments

semesterEnrollments = semesterEnrollments ?? student.semesterenrollments
if (!semesterEnrollments) return null

return semesterEnrollments.reduce((enrollments, { enrollmenttype, semestercode, statutoryAbsence }) => {
enrollments[semestercode] = {
enrollmenttype,
return semesterEnrollments.reduce((enrollments, { type, semester, statutoryAbsence }) => {
enrollments[semester] = {
enrollmenttype: type,
statutoryAbsence: statutoryAbsence ?? false,
}
return enrollments
Expand All @@ -91,7 +90,7 @@ export const GeneralTab = ({
const selectedStudents = filteredStudents.map(student => student.studentNumber)
const students = filteredStudents.reduce((acc, student) => {
acc[student.studentNumber] = columnKeysToInclude.includes('semesterEnrollments')
? { ...student, semesterEnrollmentsMap: createSemesterEnrollmentsMap(student) }
? { ...student, semesterEnrollmentsMap: programmeCode != null ? createSemesterEnrollmentsMap(student) : null }
: student
return acc
}, {})
Expand Down Expand Up @@ -256,13 +255,6 @@ export const GeneralTab = ({
return genders[genderCode]
}

const getStudyright = student => {
const studyright = student.studyrights.find(studyright =>
studyright.studyright_elements.some(element => element.code === programmeCode)
)
return studyright
}

let creditsColumn = null
const creditColumnKeys = columnKeysToInclude.filter(key => key.indexOf('credits.') === 0)

Expand Down Expand Up @@ -407,12 +399,12 @@ export const GeneralTab = ({
title: getTextIn(allSemestersMap[`${semester}`]?.name),
displayColumn: false,
getRowVal: student => {
const studyright = getStudyright(student)
if (!studyright) {
const studyRight = getStudyRight(student)
if (!studyRight) {
return 'No study right'
}
const enrollment = studyright.semester_enrollments?.find(enrollment => enrollment.semestercode === semester)
return getEnrollmentTypeTextForExcel(enrollment?.enrollmenttype, enrollment?.statutoryAbsence)
const enrollment = studyRight.semesterEnrollments?.find(enrollment => enrollment.semester === semester)
return getEnrollmentTypeTextForExcel(enrollment?.type, enrollment?.statutoryAbsence)
},
})),
},
Expand Down Expand Up @@ -473,8 +465,8 @@ export const GeneralTab = ({
export: true,
displayColumn: false,
getRowVal: student =>
student.semesterenrollments
? student.semesterenrollments.filter(enrollment => enrollment.enrollmenttype === 1).length
student.semesterEnrollmentsMap
? Object.values(student.semesterEnrollmentsMap).filter(enrollment => enrollment.enrollmenttype === 1).length
: 0,
},
transferredFrom: {
Expand All @@ -486,8 +478,8 @@ export const GeneralTab = ({
key: 'admissionType',
title: 'Admission type',
getRowVal: student => {
const studyright = getStudyright(student)
const admissionType = studyright && studyright.admission_type ? studyright.admission_type : 'Ei valintatapaa'
const studyRight = getStudyRight(student)
const admissionType = studyRight?.admissionType ?? 'Ei valintatapaa'
return admissionType !== 'Koepisteet' ? admissionType : 'Valintakoe'
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export const getSemestersPresentFunctions = ({

const getSemesterEnrollmentsContent = (student, studyright) => {
if (allSemesters.length === 0) return ''
if (!student.semesterenrollments && !studyright) return ''
if (!student.semesterEnrollmentsMap && !studyright) return ''
const semesterIcons = []

const getSemesterJSX = (semester, enrollmenttype, statutoryAbsence, graduated, key) => {
Expand Down

0 comments on commit 80e908d

Please sign in to comment.