fix: add some better detection logic for assements widget #429

This commit is contained in:
2026-04-23 17:26:58 +09:30
parent fcc856e798
commit 01cd5d1428
2 changed files with 20 additions and 3 deletions
@@ -28,9 +28,17 @@ async function fetchJSON(url: string, body: any) {
async function loadSubjects() { async function loadSubjects() {
const res = await fetchJSON("/seqta/student/load/subjects?", {}); const res = await fetchJSON("/seqta/student/load/subjects?", {});
return res.payload const activeGroup = res.payload.find((s: any) => s.active === 1);
.filter((s: any) => s.active === 1) const activeYear = activeGroup?.year;
const allSubjects = res.payload
.filter((s: any) => s.year === activeYear)
.flatMap((s: any) => s.subjects); .flatMap((s: any) => s.subjects);
const seen = new Set<string>();
return allSubjects.filter((s: Subject) => {
if (seen.has(s.code)) return false;
seen.add(s.code);
return true;
});
} }
async function loadPrefs(student: number) { async function loadPrefs(student: number) {
+10 -1
View File
@@ -113,7 +113,16 @@ export async function loadHomePage() {
callHomeTimetable(TodayFormatted, true); callHomeTimetable(TodayFormatted, true);
const activeClass = classes.find((c: any) => c.hasOwnProperty("active")); const activeClass = classes.find((c: any) => c.hasOwnProperty("active"));
const activeSubjects = activeClass?.subjects || []; const activeYear = activeClass?.year;
const allSubjectsInYear = classes
.filter((c: any) => c.year === activeYear)
.flatMap((c: any) => c.subjects || []);
const seen = new Set<string>();
const activeSubjects = allSubjectsInYear.filter((s: any) => {
if (seen.has(s.code)) return false;
seen.add(s.code);
return true;
});
const activeSubjectCodes = activeSubjects.map((s: any) => s.code); const activeSubjectCodes = activeSubjects.map((s: any) => s.code);
const currentAssessments = assessments const currentAssessments = assessments
.filter((a: any) => activeSubjectCodes.includes(a.code)) .filter((a: any) => activeSubjectCodes.includes(a.code))