mirror of
https://github.com/UniversityOfHelsinkiCS/oodikone.git
synced 2026-10-12 19:03:39 +03:00
[Backend][Populations] Don't filter population's students' credits and enrollments by start date by default
This commit is contained in:
@@ -150,8 +150,9 @@ router.get<never, CanError<PopulationstatisticsResBody>, PopulationstatisticsReq
|
||||
|
||||
const studyRights = [programme]
|
||||
const tagMap = await getStudentTagMap(studyRights, studentNumbers, userId)
|
||||
const filterCreditsAndEnrollmentsByDate = false
|
||||
|
||||
const result = await statisticsOf(studentNumbers, studyRights, tagMap, startDate)
|
||||
const result = await statisticsOf(studentNumbers, studyRights, tagMap, filterCreditsAndEnrollmentsByDate, startDate)
|
||||
const processed = obfuscateStuff({
|
||||
result,
|
||||
|
||||
@@ -212,10 +213,12 @@ router.get<
|
||||
|
||||
const studyRights = []
|
||||
const tagMap = await getStudentTagMap(studyRights, studentNumbers, userId)
|
||||
const filterCreditsAndEnrollmentsByDate = true
|
||||
const result = await statisticsOf(
|
||||
studentNumbers,
|
||||
studyRights,
|
||||
tagMap,
|
||||
filterCreditsAndEnrollmentsByDate,
|
||||
startDate?.toISOString(),
|
||||
endDate?.toISOString()
|
||||
)
|
||||
@@ -251,12 +254,19 @@ router.post<never, CanError<GetCustomPopulationResBody>, CustomPopulationQuery>(
|
||||
|
||||
const studyRights = [studyProgrammeCode].filter(value => value !== undefined)
|
||||
const tagMap = await getStudentTagMap(studyRights, filteredStudentNumbers, userId)
|
||||
const filterCreditsAndEnrollmentsByDate = false
|
||||
|
||||
const { startDate } = tags?.year
|
||||
? parseDateRangeFromParams({ semesters: ['FALL', 'SPRING'], years: [tags?.year] })
|
||||
: { startDate: undefined }
|
||||
|
||||
const result = await statisticsOf(filteredStudentNumbers, studyRights, tagMap, startDate)
|
||||
const result = await statisticsOf(
|
||||
filteredStudentNumbers,
|
||||
studyRights,
|
||||
tagMap,
|
||||
filterCreditsAndEnrollmentsByDate,
|
||||
startDate
|
||||
)
|
||||
|
||||
const resultWithStudyProgramme = { ...result, studyProgramme: tags?.studyProgramme }
|
||||
const discardedStudentNumbers = difference(students, filteredStudentNumbers)
|
||||
|
||||
@@ -30,18 +30,33 @@ export const statisticsOf = async (
|
||||
studentNumbers: string[],
|
||||
studyRights: string[],
|
||||
tagMap: Map<string, StudentTags[]>,
|
||||
filterByDates: boolean,
|
||||
startDate?: string,
|
||||
endDate?: string
|
||||
) => {
|
||||
const defaultStartDate = new Date(1900, 0, 1).toISOString()
|
||||
const defaultEndDate = new Date(new Date().getFullYear() + 1, 0, 1).toISOString()
|
||||
|
||||
const code = studyRights[0] ?? ''
|
||||
const mockedStartDate = startDate ?? new Date(1900, 0, 1).toISOString()
|
||||
const mockedEndDate = endDate ?? new Date(new Date().getFullYear(), 0, 1).toISOString()
|
||||
const mockedStartDate = startDate ?? defaultStartDate
|
||||
const mockedEndDate = endDate ?? defaultEndDate
|
||||
|
||||
const [students, enrollments, credits, degreeProgrammeType, criteria, studyRightElementsForStudyRight] =
|
||||
await Promise.all([
|
||||
getStudents(studentNumbers),
|
||||
getEnrollments(studentNumbers, mockedStartDate, mockedEndDate),
|
||||
getCredits(studentNumbers, mockedStartDate, mockedEndDate),
|
||||
|
||||
// NOTE: If filterByDates is set, use default values for filtering credits and enrollments
|
||||
getEnrollments(
|
||||
studentNumbers,
|
||||
filterByDates ? mockedStartDate : defaultStartDate,
|
||||
filterByDates ? mockedEndDate : defaultEndDate
|
||||
),
|
||||
getCredits(
|
||||
studentNumbers,
|
||||
filterByDates ? mockedStartDate : defaultStartDate,
|
||||
filterByDates ? mockedEndDate : defaultEndDate
|
||||
),
|
||||
|
||||
getDegreeProgrammeType(code),
|
||||
getCriteria(code),
|
||||
getStudyRightElementsForStudyRight(studentNumbers, code),
|
||||
|
||||
@@ -56,7 +56,7 @@ export const getStudentTotalCredits = (
|
||||
|
||||
return student.courses
|
||||
.filter(course => !course.isStudyModuleCredit && validCreditTypes.includes(course.credittypecode))
|
||||
.reduce((a, b) => a + b.credits, 0)
|
||||
.reduce((acc, studentCourse) => acc + studentCourse.credits, 0)
|
||||
}
|
||||
|
||||
const getGradedCourses = (student: FormattedStudent, includeTransferredCredits = true) =>
|
||||
|
||||
Reference in New Issue
Block a user