diff --git a/backend/src/domain/adapters/csv_adapters.py b/backend/src/domain/adapters/csv_adapters.py index e19cdaa..968d294 100644 --- a/backend/src/domain/adapters/csv_adapters.py +++ b/backend/src/domain/adapters/csv_adapters.py @@ -73,7 +73,7 @@ def from_dataframe(df: pd.DataFrame) -> dict[str, Course]: instructor_names = set() if instructor_name: - instructor_names.add(instructor_name) + instructor_names.add(str(instructor_name)) # Apply validators for canonical_name, col_def in col_defs.items(): @@ -145,7 +145,9 @@ def from_dataframe(df: pd.DataFrame) -> list[Enrollment]: ) # Remove rows with missing required fields - df_clean = df_normalized.dropna(subset=["Student_PIDM", "Course_Reference_Number"]) + df_clean = df_normalized.dropna( + subset=["Student_PIDM", "Course_Reference_Number"] + ) # Build Enrollment objects enrollments = [] diff --git a/backend/src/services/schedule/service.py b/backend/src/services/schedule/service.py index b09db1d..f0ec7c4 100644 --- a/backend/src/services/schedule/service.py +++ b/backend/src/services/schedule/service.py @@ -111,7 +111,7 @@ async def generate_schedule( merges = self.dataset_service.get_merges(dataset_id, user_id) or {} # 3.5 Drop zero-enrollment courses and get updated merges - merges = self.dataset_service.drop_zero_enrollment(dataset_id, user_id) + files = await self.dataset_service.drop_zero_enrollment(dataset_id, user_id) # 4. Build scheduling dataset and run algorithm scheduling_dataset = DatasetFactory.from_dataframes_to_scheduling_dataset( @@ -332,6 +332,7 @@ def _build_generation_response( scheduling_dataset, conflicts_response: dict, parameters: dict, + merges: dict[str, list[str]], ) -> dict[str, Any]: """Build response for generate_schedule endpoint.""" # Count unique students