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": "清除"
},