Skip to content

Commit b7c9fa0

Browse files
committed
feat: deduplicate course labels to prevent duplicate log entries in search log
1 parent 3f2626e commit b7c9fa0

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

backend/app/services/analytics_service.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,13 @@ async def log_search(
6767
if session is None:
6868
return # DB not configured — silently skip
6969

70+
# Deduplicate course labels to prevent duplicate log entries
71+
unique_labels = list(dict.fromkeys(course_labels))
72+
7073
async with session:
7174
faculty_map: dict[str, int] = {}
7275

73-
for label in course_labels:
76+
for label in unique_labels:
7477
code, name = _parse_label(label)
7578
faculty = _lookup_faculty(df, label)
7679

@@ -105,7 +108,7 @@ async def log_search(
105108
unique_courses=len(
106109
{
107110
c
108-
for c in course_labels
111+
for c in unique_labels
109112
if _lookup_faculty(df, c) == faculty
110113
}
111114
),
@@ -114,7 +117,7 @@ async def log_search(
114117
else:
115118
fa.search_count += count
116119
unique = {
117-
c for c in course_labels if _lookup_faculty(df, c) == faculty
120+
c for c in unique_labels if _lookup_faculty(df, c) == faculty
118121
}
119122
fa.unique_courses = max(fa.unique_courses, len(unique))
120123
fa.last_searched_at = datetime.datetime.now(datetime.timezone.utc)

0 commit comments

Comments
 (0)