diff --git a/src/app/[lang]/courses/page.tsx b/src/app/[lang]/courses/page.tsx index 0a45f482..a22b69aa 100644 --- a/src/app/[lang]/courses/page.tsx +++ b/src/app/[lang]/courses/page.tsx @@ -130,10 +130,13 @@ const CoursePage: NextPage = () => { .or(`compulsory_for.cs.{"${filters.className}"},elective_for.cs.{"${filters.className}"}`); if (filters.others.includes('xclass')) temp = temp - .textSearch(`備註`, `'X-Class'`) + .contains('tags', ['X-Class']) + if (filters.others.includes('16_weeks')) + temp = temp + .contains('tags', ['16周']) if (filters.others.includes('extra_selection')) - temp = temp - .eq('no_extra_selection', false) + temp = temp + .not('tags', 'cs', '{"不可加簽"}') if (filters.firstSpecialization || filters.secondSpecialization) { temp = temp .or(`first_specialization.cs.{"${filters.firstSpecialization ?? ""}"},second_specialization.cs.{"${filters.secondSpecialization ?? ""}"}`) diff --git a/src/components/Courses/CourseListItem.tsx b/src/components/Courses/CourseListItem.tsx index d1617e07..7a5a83cd 100644 --- a/src/components/Courses/CourseListItem.tsx +++ b/src/components/Courses/CourseListItem.tsx @@ -13,29 +13,16 @@ const CourseListItem: FC<{ course: CourseDefinition }> = ({ course }) => { return
-
-
- {course.department} {course.course}-{course.class} {course.name_zh} - {course.raw_teacher_zh} -

{course.name_en} - {course.raw_teacher_en}

+
+
+ {course.department} {course.course}-{course.class} {course.name_zh} - {(course.teacher_zh ?? []).join(',')} +

{course.name_en} - {(course.teacher_en ?? []).join(',')}

-
-

{course.venues?.join(', ') || "No Venue"} • {course.credits} {dict.course.credits}

-

{course.課程限制說明}

- {isCourseSelected ? - : - } -
-
-
- {course.capacity &&
- - {course.capacity}{course.reserve == 0 ? '' : ` / ${course.reserve}R`} -
} -
+
+

{course.課程限制說明}

+

{course.備註}

+

{course.擋修說明}

+
{course.備註?.includes('X-Class') && = ({ course }) => {
+
+

{course.credits} {dict.course.credits}

+ {course.venues? + course.venues.map((vn, i) =>

{vn} {course.times![i]}

) : +

No Venues

+ } + {course.capacity &&
+ + {course.capacity}{course.reserve == 0 ? '' : ` / ${course.reserve}R`} +
} + {isCourseSelected ? + : + } +
} diff --git a/src/components/Courses/RefineControls.tsx b/src/components/Courses/RefineControls.tsx index 40cbdd99..d7608ec1 100644 --- a/src/components/Courses/RefineControls.tsx +++ b/src/components/Courses/RefineControls.tsx @@ -161,6 +161,7 @@ const RefineControls: FC<{ control: Control, onClear: () name="others" options={[ { value: 'xclass', label: dict.course.refine['x-class'] }, + { value: '16_weeks', label: dict.course.refine['16_weeks']}, { value: 'extra_selection', label: dict.course.refine['extra_selection']} ]} label={dict.course.refine.others} diff --git a/src/components/Timetable/TimetableSlot.tsx b/src/components/Timetable/TimetableSlot.tsx index 0d4437c1..e68382cc 100644 --- a/src/components/Timetable/TimetableSlot.tsx +++ b/src/components/Timetable/TimetableSlot.tsx @@ -36,7 +36,7 @@ const TimetableSlot: FC = ({ course, tableDim, fraction = 1, {course.course.name_zh} {/* {{course.course.name_en}} */} {course.venue} - {course.course.raw_teacher_zh} + {course.course.teacher_zh && {course.course.teacher_zh?.join(',')}} {/* {course.course.raw_teacher_en} */}
diff --git a/src/dictionaries/en.json b/src/dictionaries/en.json index ef225fd1..3e2a2952 100644 --- a/src/dictionaries/en.json +++ b/src/dictionaries/en.json @@ -37,6 +37,7 @@ "gecDimensions": "GEC Dimensions", "extra_selection": "Allows Extra Selection", "x-class": "X-Class", + "16_weeks": "16 Weeks", "others": "Others", "clear": "Clear All" }, diff --git a/src/dictionaries/zh.json b/src/dictionaries/zh.json index 39794009..9c8073c3 100644 --- a/src/dictionaries/zh.json +++ b/src/dictionaries/zh.json @@ -37,6 +37,7 @@ "gecDimensions": "核通向度", "extra_selection": "允許加簽", "x-class": "X-Class", + "16_weeks": "16 週課程", "others": "其他", "clear": "清除" },