Commit 86a04430 authored by Yechang's avatar Yechang
Browse files

fix(gradebook): fix undefined

parent 88299342
Loading
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ import { error, redirect } from '@sveltejs/kit';
import type { PageParentData, PageServerLoad } from './$types';
import _ from 'lodash';
import { db } from '$lib/server/db';
import { log } from "$lib/server/log"

type GradeGroupData = {
	name: string,
@@ -80,9 +81,7 @@ export const load = (async ({ parent, locals, params }) => {
		const userScores = _.entries(userRecords).map(([sustechId, records]) => {
			const score = strategyFn(records.map((record) => record.grade)) || 0;
			return {
				[sustechId]: {
					[group.name]: score
				}
				[sustechId]: score
			}
		})
		return {
@@ -91,14 +90,22 @@ export const load = (async ({ parent, locals, params }) => {
		};
	});

	const empty = _.fromPairs(groups.map(group => { return [group.name, 0] }))
	const empties = _.fromPairs(studentIds.map(studentId => [studentId, empty]))

	const users: {
		[sustechId: string]: {
			[groupName: string]: number
		}
	} = _.merge(empties, ...groups.map(group => group.userScores))
	} = _.fromPairs(
		studentIds.map(studentId => [studentId,
			_.fromPairs(groups.map(group => { return [group.name, 0] }))
		])
	)

	studentIds.forEach(studentId => {
		groups.forEach(group => {
			const score = group.userScores[studentId] || 0
			users[studentId][group.name] = score
		});
	});


	const weightedScores = _.entries(users).map(([sustechId, scores]) => {