Skip to content

Commit 6f43a5d

Browse files
authored
Merge pull request #16 from Project-CARPI/adjust-course-search-semesters
Adjust course search semester and attribute values
2 parents eba9701 + 41ce2af commit 6f43a5d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

app/routers/course.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,7 @@ def search_course_query(
4242
Course.desc_text,
4343
Course.credit_min,
4444
Course.credit_max,
45-
func.group_concat(
46-
distinct(
47-
func.concat(Course_Offering.semester, " ", Course_Offering.sem_year)
48-
)
49-
).label("sem_list"),
45+
func.group_concat(distinct(Course_Offering.semester)).label("sem_list"),
5046
func.group_concat(distinct(Course_Attribute.attr_code)).label("attr_list"),
5147
func.regexp_like(
5248
func.concat(Course.subj_code, " ", Course.code_num),
@@ -148,7 +144,7 @@ def search_course(
148144
deptFilters: str | None = None,
149145
attrFilters: str | None = None,
150146
semFilters: str | None = None,
151-
) -> list[dict[str, str | int | None]]:
147+
) -> list[dict[str, str | int | list[str]]]:
152148
# FastAPI does not support list query parameters
153149
dept_filters = deptFilters.split(",") if deptFilters else None
154150
attr_filters = attrFilters.split(",") if attrFilters else None
@@ -214,7 +210,13 @@ def search_course(
214210
sem_filter_regex,
215211
)
216212
).all()
217-
return [dict(row._mapping) for row in results]
213+
results_dict = [dict(row._mapping) for row in results]
214+
for course in results_dict:
215+
course["sem_list"] = course["sem_list"].split(",") if course["sem_list"] else []
216+
course["attr_list"] = (
217+
course["attr_list"].split(",") if course["attr_list"] else []
218+
)
219+
return results_dict
218220

219221

220222
@router.get("/filter/values/{filter}")

0 commit comments

Comments
 (0)