diff --git a/check sociologie inleiding soc/script.py b/check sociologie inleiding soc/script.py new file mode 100644 index 0000000..e343e2a --- /dev/null +++ b/check sociologie inleiding soc/script.py @@ -0,0 +1,104 @@ +import os +from pathlib import Path +import pandas as pd + + +def find_duplicates(base_file: Path, ps_files: list[Path], id_col_candidates=None, grade_col_candidates=None): + """Read the base registration file and several ps files, then find IDs that appear in both. + + Returns a DataFrame with columns: ID, Cijfer, SourceFile + """ + if id_col_candidates is None: + id_col_candidates = ["ID", "Id", "id", "inschrijving_id"] + if grade_col_candidates is None: + grade_col_candidates = ["Cijfer", "cijfer", "Grade", "grade"] + + # Read base IDs + print(f"Reading base file: {base_file}") + base_df = pd.read_excel(base_file) + + # find ID column in base + base_id_col = next((c for c in base_df.columns if c in id_col_candidates), None) + if base_id_col is None: + raise ValueError(f"Could not find an ID column in {base_file}. Tried: {id_col_candidates}") + + base_ids = set(base_df[base_id_col].dropna().astype(str).str.strip()) + print(f"Found {len(base_ids)} IDs in base file (column '{base_id_col}').") + + duplicates = [] + + for pf in ps_files: + print(f"Processing ps file: {pf}") + try: + df = pd.read_excel(pf) + except Exception as e: + print(f" Skipping {pf} - failed to read: {e}") + continue + + # guess ID column + id_col = next((c for c in df.columns if c in id_col_candidates), None) + if id_col is None: + # try fuzzy: column name contains 'id' + id_col = next((c for c in df.columns if 'id' in str(c).lower()), None) + if id_col is None: + print(f" No ID column found in {pf}; skipping.") + continue + + grade_col = next((c for c in df.columns if c in grade_col_candidates), None) + if grade_col is None: + # try fuzzy: column name contains 'cij' or 'cijfer' or 'grade' + grade_col = next((c for c in df.columns if any(k in str(c).lower() for k in ['cij', 'grade'])), None) + + # normalize IDs to string + df_ids = df[[id_col]].dropna() + df_ids[id_col] = df_ids[id_col].astype(str).str.strip() + + # merge to find intersection + mask = df_ids[id_col].isin(base_ids) + matched = df.loc[mask] + if matched.empty: + print(f" No duplicates found in {pf}.") + continue + + # collect results + for _, row in matched.iterrows(): + id_val = str(row[id_col]).strip() + grade_val = row[grade_col] if (grade_col in row and pd.notna(row[grade_col])) else None + duplicates.append({"ID": id_val, "Cijfer": grade_val, "SourceFile": pf.name}) + + print(f" Found {len(matched)} duplicates in {pf}.") + + dup_df = pd.DataFrame(duplicates) + return dup_df + + +def main(): + base = Path(__file__).parent / "inschrijvingslijst sociologie.xlsx" + # match files like: ps (82).xls.xlsx + ps_files = sorted(Path(__file__).parent.glob('ps *.xls.xlsx')) + + if not base.exists(): + print(f"Base file not found: {base}") + return + + if not ps_files: + print("No ps files found matching pattern 'ps (*.xls).xlsx'") + return + + dup_df = find_duplicates(base, ps_files) + + if dup_df.empty: + print("No duplicates found across provided files.") + else: + # print duplicates + print("Duplicates found (ID - Cijfer - SourceFile):") + for _, r in dup_df.iterrows(): + print(f"{r['ID']} - {r['Cijfer']} - {r['SourceFile']}") + + out_csv = Path(__file__).parent / 'duplicates_summary.csv' + dup_df.to_csv(out_csv, index=False) + print(f"Wrote summary to {out_csv}") + + +if __name__ == '__main__': + main() diff --git a/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/.gitignore b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/.gitignore new file mode 100644 index 0000000..e39109e --- /dev/null +++ b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/.gitignore @@ -0,0 +1,4 @@ +/Mentoraat_2024-2025.xlsx +/reinoud.xlsx +/sisa.xlsx +*.xlsx \ No newline at end of file diff --git a/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/readme.md b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/readme.md new file mode 100644 index 0000000..1c82550 --- /dev/null +++ b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/readme.md @@ -0,0 +1,90 @@ +# Script Documentation + +## Overview + +This script processes two Excel files ( + +reinoud.xlsx + +and + +sisa.xlsx + +) to find and append missing IDs from + +sisa.xlsx + +to + +reinoud.xlsx + +. It also checks for duplicate IDs in + +reinoud.xlsx + +. + +## Functions + +### [`load_excel(file_path: str, sheet_name: Optional[str] = None) -> pd.DataFrame`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A7%2C%22character%22%3A4%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") + +Loads an Excel file into a DataFrame. + +### [`check_duplicates(df: pd.DataFrame, column: str) -> List[str]`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A21%2C%22character%22%3A4%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") + +Checks for duplicate values in a specified column. + +### [`find_missing_ids(df1: pd.DataFrame, df2: pd.DataFrame, column: str) -> List[str]`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A26%2C%22character%22%3A4%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") + +Finds IDs in [`df2`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A26%2C%22character%22%3A40%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") that are not in [`df1`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A26%2C%22character%22%3A21%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition"). + +### [`append_missing_ids(reinoud_df: pd.DataFrame, sisa_df: pd.DataFrame, column: str, reinoud_file: str) -> pd.DataFrame`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A33%2C%22character%22%3A4%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") + +Appends missing IDs and corresponding details from [`sisa_df`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A33%2C%22character%22%3A49%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") to [`reinoud_df`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A33%2C%22character%22%3A23%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition"). + +### [`main(reinoud_file: str, sisa_file: str, column: str, reinoud_sheet: Optional[str] = None, sisa_sheet: Optional[str] = None)`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A55%2C%22character%22%3A4%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") + +Main function to load the Excel files, check for duplicates, append missing IDs, and save the updated DataFrame back to the Excel file. + +## Usage + +Run the script with the following command: + +```sh +python script.py +``` + +Example usage within the script: + +```python +if __name__ == "__main__": + main('reinoud.xlsx', 'sisa.xlsx', 'Rolnummer', reinoud_sheet='Actief', sisa_sheet='sheet1') +``` + +## Logging + +The script uses the [`logging`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A1%2C%22character%22%3A7%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition") module to log information and errors. The log level is set to [`INFO`](command:_github.copilot.openSymbolFromReferences?%5B%22%22%2C%5B%7B%22uri%22%3A%7B%22scheme%22%3A%22file%22%2C%22authority%22%3A%22%22%2C%22path%22%3A%22%2Fc%3A%2FUsers%2Fbrech%2FDocuments%2FlocalReps%2Fows-mentoraat%2Fscript.py%22%2C%22query%22%3A%22%22%2C%22fragment%22%3A%22%22%7D%2C%22pos%22%3A%7B%22line%22%3A5%2C%22character%22%3A34%7D%7D%5D%2C%22723f84da-7613-47af-a432-459fba37ba55%22%5D "Go to definition"). + +## File Structure + +``` +.gitignore +reinoud.xlsx +script.py +sisa.xlsx +``` + +## Dependencies + +- pandas +- logging + +Install dependencies using: + +```sh +pip install pandas +``` + +## License + +This script is provided "as-is" without any warranty. Use at your own risk. diff --git a/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/script.py b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/script.py new file mode 100644 index 0000000..cc3a650 --- /dev/null +++ b/mentoraatsgroepen/ows-geschiedenis-mentoraatsgroepen-main/ows-geschiedenis-mentoraatsgroepen/script.py @@ -0,0 +1,82 @@ +import pandas as pd +import logging +from typing import List, Optional + +# Configure logging +logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') + +def load_excel(file_path: str, sheet_name: Optional[str] = None) -> pd.DataFrame: + """Load an Excel file into a DataFrame.""" + try: + df = pd.read_excel(file_path, sheet_name=sheet_name) + if isinstance(df, dict): + raise ValueError(f"Multiple sheets found in {file_path}. Please specify a sheet name.") + return df + except FileNotFoundError: + logging.error(f"File not found: {file_path}") + raise + except Exception as e: + logging.error(f"Error loading file {file_path}: {e}") + raise + +def check_duplicates(df: pd.DataFrame, column: str) -> List[str]: + """Check for duplicate values in a specified column.""" + duplicates = df[column].astype(str)[df[column].duplicated()] + return duplicates.tolist() + +def find_missing_ids(df1: pd.DataFrame, df2: pd.DataFrame, column: str) -> List[str]: + """Find IDs in df2 that are not in df1.""" + ids1 = df1[column].astype(str) + ids2 = df2[column].astype(str) + missing_ids = ids2[~ids2.isin(ids1)] + return missing_ids.tolist() + +def append_missing_ids(reinoud_df: pd.DataFrame, sisa_df: pd.DataFrame, column: str, reinoud_file: str) -> pd.DataFrame: + """Append missing IDs and corresponding Naam, Voornaam, Plan, and Campus emailadres to reinoud_df.""" + missing_ids = find_missing_ids(reinoud_df, sisa_df, column) + if missing_ids: + missing_rows = sisa_df[sisa_df[column].astype(str).isin(missing_ids)] + # Select only the specified columns + selected_columns = ['Rolnummer', 'Naam', 'Voornaam', 'Plan', 'Campus emailadres'] + missing_rows = missing_rows[selected_columns] + + # Rename 'Campus emailadres' to 'mail' for reinoud_df + missing_rows = missing_rows.rename(columns={'Campus emailadres': 'mail'}) + + # Append missing rows to reinoud_df + reinoud_df = pd.concat([reinoud_df, missing_rows], ignore_index=True) + + logging.info(f"Appended missing IDs to {reinoud_file}:") + for _, row in missing_rows.iterrows(): + logging.info(f"ID: {row[column]}, Naam: {row['Naam']}, Voornaam: {row['Voornaam']}, Plan: {row['Plan']}, mail: {row['mail']}") + else: + logging.info("No missing IDs to append.") + return reinoud_df + +def main(reinoud_file: str, sisa_file: str, column: str, reinoud_sheet: Optional[str] = None, sisa_sheet: Optional[str] = None): + # Load the Excel files + reinoud_df = load_excel(reinoud_file, sheet_name=reinoud_sheet) + sisa_df = load_excel(sisa_file, sheet_name=sisa_sheet) + + # Debug: Print columns of sisa_df + logging.info(f"Columns in {sisa_file}: {sisa_df.columns.tolist()}") + + # Check for duplicates in reinoud + duplicates = check_duplicates(reinoud_df, column) + if duplicates: + logging.info("Duplicate IDs in reinoud.xlsx:") + logging.info(duplicates) + else: + logging.info("No duplicates found in reinoud.xlsx.") + + # Append missing IDs from sisa to reinoud + reinoud_df = append_missing_ids(reinoud_df, sisa_df, column, reinoud_file) + + # Save the updated reinoud_df back to the Excel file + reinoud_df.to_excel(reinoud_file, sheet_name=reinoud_sheet, index=False) + logging.info(f"Updated {reinoud_file} saved.") + +if __name__ == "__main__": + # Example usage + # change the file names, column name, and sheet names as needed + main('reinoud.xlsx', 'sisa.xlsx', 'Rolnummer', reinoud_sheet='Actief', sisa_sheet='sheet1') \ No newline at end of file diff --git a/ongeloofelijken tool/script.py b/ongeloofelijken tool/script.py new file mode 100644 index 0000000..fb92629 --- /dev/null +++ b/ongeloofelijken tool/script.py @@ -0,0 +1,326 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Update 'BAGES' sheet in 'ongeloofelijken tool.xlsx' with the latest (2025-2026) bachelor History +study programme from UAntwerpen. It scrapes the official page and writes a normalized table. + +Source page (2025-2026 bachelor study programme): +https://www.uantwerpen.be/nl/studeren/aanbod/alle-opleidingen/geschiedenis-studeren/bachelor/studieprogramma/ +- In 2025-2026 the 'Geschiedenis per periode en gebied' structure changed to a two-pillar model: + * Chronologische pijler: 3 OOs (middeleeuwen, nieuwe tijd, nieuwste tijd) + * Thematische pijler: 2 OOs +(See faculty helpdesk note with change summary and transition measures.) + +IMPORTANT: +- This script only updates the 'BAGES' (Bachelor) sheet, because the provided link covers the bachelor page. +- 'MAGES' and 'SPVP' sheets remain untouched. + +Tested with: requests, beautifulsoup4, lxml, pandas, openpyxl +""" + +import re +import sys +import time +import urllib.parse +from datetime import datetime +from pathlib import Path +from typing import Optional, Tuple + +import requests +import pandas as pd +from bs4 import BeautifulSoup +from openpyxl import load_workbook +from openpyxl.utils.exceptions import InvalidFileException + + +# ------------------------- Configuration ------------------------- +EXCEL_PATH = "ongeloofelijken tool.xlsx" +TARGET_SHEET = "BAGES" +ARCHIVE_PREFIX = "BAGES_OLD_" +UA_BA_URL = "https://www.uantwerpen.be/nl/studeren/aanbod/alle-opleidingen/geschiedenis-studeren/bachelor/studieprogramma/" +TARGET_YEAR_PREFIX = "2025-" # Anchor/course URLs have '?id=-'; we filter with '2025-' +TIMEOUT = 30 +HEADERS = { + "User-Agent": "Mozilla/5.0 (compatible; uantwerpen-bages-updater/1.0; +https://www.uantwerpen.be/)", + "Accept-Language": "nl,en;q=0.8" +} + + +# ------------------------- Helpers ------------------------- +def fetch_html(url: str) -> BeautifulSoup: + resp = requests.get(url, headers=HEADERS, timeout=TIMEOUT) + resp.raise_for_status() + return BeautifulSoup(resp.text, "lxml") + + +def extract_text(el) -> str: + return re.sub(r"\s+", " ", " ".join(el.stripped_strings)) if el else "" + + +def parse_meta_from_block(block_text: str) -> Tuple[Optional[str], Optional[str], Optional[str], Optional[str]]: + """ + Try to parse Semester, Credits, Lecturers, Notes from a block of text next to a course link. + Returns (semester, credits, lecturers, notes) + """ + text = block_text + + # Semester examples: '1E SEM', '2E SEM', '1E/2E SEM' + sem = None + m_sem = re.search(r"\b(1E\s*/\s*2E\s*SEM|1E\s*SEM|2E\s*SEM)\b", text, flags=re.I) + if m_sem: + sem = m_sem.group(1).upper().replace(" ", "") + + # Credits examples: '6 studiepunten', '3 studiepunten' + credits = None + m_sp = re.search(r"(\d+)\s*studiepunten", text, flags=re.I) + if m_sp: + credits = m_sp.group(1) + + # Lecturers: after 'Lesgever (s):' or 'Lesgever(s):' + lecturers = None + m_lect = re.search(r"Lesgever\s*\(s\)\s*:\s*([^|]+?)(?:\s{2,}|$)", text, flags=re.I) + if not m_lect: + m_lect = re.search(r"Lesgever[s]?\s*:\s*([^|]+?)(?:\s{2,}|$)", text, flags=re.I) + if m_lect: + lecturers = m_lect.group(1).strip(" .").replace(" ,", ",") + + # Notes: look for two-yearly etc. + notes = None + if re.search(r"Tweejaarlijks", text, flags=re.I): + # Try to capture the "even/oneven" phrasing + m_ev = re.search(r"tweejaarlijks[^.]*?(even|oneven)[^.]*jaar", text, flags=re.I) + notes = "Tweejaarlijks" + (f" ({m_ev.group(1).lower()} jaar)" if m_ev else "") + + return sem, credits, lecturers, notes + + +def nearest_sections(a_tag) -> Tuple[Optional[str], Optional[str], Optional[str]]: + """ + Find nearest preceding headings to classify the row. + Returns (section, subsection, pillar) + - section: e.g., 'Modeltraject deel 1/2/3' + - subsection: e.g., 'Wijsbegeerte en sociale wetenschappen', 'Keuzeopleidingsonderdelen', 'Inleiding tot de geschiedenis', etc. + - pillar: for deel 3: 'Chronologische pijler', 'Thematische pijler' or None + """ + # The site uses a variety of headings (h2, h3, h4); we trace back to find labels + h = a_tag.find_previous(["h2", "h3", "h4", "h5"]) + section = subsection = pillar = None + + # Walk up multiple previous headings to capture a hierarchy + prev_heads = [] + cur = a_tag + for _ in range(40): # limit walk to avoid infinite loops + cur = cur.find_previous(["h2", "h3", "h4", "h5"]) + if not cur: + break + txt = extract_text(cur) + prev_heads.append(txt) + + # Determine labels from the nearest few headings + for txt in prev_heads: + t = txt.lower() + if section is None and "modeltraject deel" in t: + # Normalize like "Modeltraject deel 1" + section = txt + if subsection is None: + # Typical subsections + if any(k in t for k in [ + "wijsbegeerte en sociale wetenschappen", + "methodologie van de geschiedenis", + "historische oefeningen", + "inleiding tot de geschiedenis", + "heuristiek", + "historisch overzicht", + "keuzeopleidingsonderdelen", + "sociale wetenschappen", + ]): + subsection = txt + if pillar is None and ("chronologische pijler" in t or "thematische pijler" in t): + pillar = txt + + if section and (subsection or pillar): + # Good enough + break + + return section, subsection, pillar + + +def parse_courses_from_page(soup: BeautifulSoup) -> pd.DataFrame: + """ + Parse all course links for the 2025-xxxx academic year, infer metadata from nearby text, + and return a normalized DataFrame. + """ + rows = [] + + # Capture all anchors that look like course links containing '?id=2025-' + for a in soup.find_all("a", href=True): + href = a["href"] + # Normalize relative links + full_url = urllib.parse.urljoin(UA_BA_URL, href) + # Filter by the 'id=2025-' parameter (2025-2026) + if "id=" in href: + q = urllib.parse.urlparse(href).query + params = urllib.parse.parse_qs(q) + ids = params.get("id", []) + if not ids: + continue + # Some pages use '2025-XXXXX' or '2025-XXXXX&lang=nl' + if not any(idv.startswith(TARGET_YEAR_PREFIX) for idv in ids): + continue + course_id = ids[0] # e.g., '2025-1002FLWGES' + else: + # No id=... parameter; skip + continue + + # Extract code after '2025-' + code = None + m = re.match(r"2025-([A-Za-z0-9]+)", course_id) + if m: + code = m.group(1) + + name = extract_text(a).strip() + if not name or not code: + continue + + # Use a reasonably large ancestor block for metadata search + container = a + for _ in range(4): + if container.parent: + container = container.parent + block_text = extract_text(container) + + semester, credits, lecturers, notes = parse_meta_from_block(block_text) + section, subsection, pillar = nearest_sections(a) + + rows.append({ + "Section": section, + "Subsection": subsection, + "Pillar": pillar, + "Course Code": code, + "Course Name": name, + "URL": full_url, + "Semester": semester, + "Credits": credits, + "Lecturers": lecturers, + "Notes": notes + }) + + df = pd.DataFrame(rows).drop_duplicates(subset=["Course Code", "Course Name"]) + # Keep only rows that clearly belong to the 'Bachelor' page; sometimes cross-links appear + # Heuristic: we keep rows with a Section that starts with "Modeltraject deel" or that have a Pillar marker + mask = ( + df["Section"].fillna("").str.contains(r"Modeltraject deel", case=False) | + df["Pillar"].fillna("").str.contains(r"Pijler", case=False) + ) + df = df[mask].copy() + + # Clean up text for consistency + def clean_col(s): + return s.str.replace(r"\s+", " ", regex=True).str.strip() + + for col in ["Section", "Subsection", "Pillar", "Course Name", "Lecturers", "Notes"]: + df[col] = clean_col(df[col].astype(str)) + + # Ensure missing pillar/subsection are empty strings for consistent sorting + df["Pillar"] = df["Pillar"].fillna("") + df["Subsection"] = df["Subsection"].fillna("") + + # Sort for readability: section → pillar → subsection → name + df.sort_values( + by=["Section", "Pillar", "Subsection", "Course Name"], + inplace=True + ) + df.reset_index(drop=True, inplace=True) + return df + + +def archive_and_write(excel_path: str, df: pd.DataFrame, target_sheet: str): + """ + - If sheet 'BAGES' exists, rename it to 'BAGES_OLD_YYYYMMDD' + - Write df to 'BAGES' + """ + try: + wb = load_workbook(excel_path) + except FileNotFoundError: + print(f"[INFO] File not found, creating new workbook: {excel_path}") + # Write a new file straight away + with pd.ExcelWriter(excel_path, engine="openpyxl") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + return + except InvalidFileException: + print(f"[ERROR] Not a valid Excel file: {excel_path}") + sys.exit(1) + + # Rename existing BAGES to archive + if target_sheet in wb.sheetnames: + date_suffix = datetime.now().strftime("%Y%m%d") + archive_name = ARCHIVE_PREFIX + date_suffix + # Ensure uniqueness (append a counter if necessary) + counter = 1 + final_archive = archive_name + while final_archive in wb.sheetnames: + counter += 1 + final_archive = f"{archive_name}_{counter}" + ws = wb[target_sheet] + ws.title = final_archive + print(f"[INFO] Archived existing '{target_sheet}' as '{final_archive}'") + + # Save intermediate + wb.save(excel_path) + + # Now write the new sheet + with pd.ExcelWriter(excel_path, engine="openpyxl", mode="a", if_sheet_exists="overlay") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + + print(f"[SUCCESS] Wrote updated '{target_sheet}' sheet to '{excel_path}'") + # Also save the updated DataFrame to a separate new Excel file for convenience + try: + src = Path(excel_path) + new_name = src.with_name(f"{src.stem}_updated{src.suffix}") + # Write a fresh workbook containing only the updated sheet + with pd.ExcelWriter(str(new_name), engine="openpyxl") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + print(f"[INFO] Also wrote updated data to new file '{new_name}'") + except Exception as e: + print(f"[WARNING] Could not write updated copy to new file: {e}") + + +def main(): + print("[STEP 1] Fetching the bachelor study programme page (2025-2026)…") + soup = fetch_html(UA_BA_URL) + time.sleep(0.3) + + print("[STEP 2] Parsing courses and metadata (this may take a few seconds)…") + df = parse_courses_from_page(soup) + if df.empty: + print("[WARNING] No 2025-xxxx course rows found. The page structure may have changed.") + print(" Please open the URL in a browser and check if '2025-2026' content is visible.") + else: + # Sanity: flag pillar rows (deel 3) visibly + df["Pillar"] = df["Pillar"].replace({"": None}) + print(f"[INFO] Parsed {len(df)} course rows for 2025-2026.") + + # Optional: give you a quick view in console + head = df.head(10).to_string(index=False) + print("[PREVIEW]\n" + head) + + print(f"[STEP 3] Updating Excel: {EXCEL_PATH}") + archive_and_write(EXCEL_PATH, df, TARGET_SHEET) + + print("\nDone. You can now open the workbook and review the refreshed 'BAGES' sheet.") + + +if __name__ == "__main__": + main() + # Try to save a copy of the corrected script beside the original. + def save_copy(dest_name: str = "script_fixed.py"): + try: + import pathlib + src = pathlib.Path(__file__) + dst = src.with_name(dest_name) + dst.write_text(src.read_text(encoding="utf-8"), encoding="utf-8") + print(f"[INFO] Wrote a copy of this script to '{dst}'") + except Exception as e: + print(f"[WARNING] Could not write copy: {e}") + + save_copy() diff --git a/ongeloofelijken tool/script_fixed.py b/ongeloofelijken tool/script_fixed.py new file mode 100644 index 0000000..fb92629 --- /dev/null +++ b/ongeloofelijken tool/script_fixed.py @@ -0,0 +1,326 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Update 'BAGES' sheet in 'ongeloofelijken tool.xlsx' with the latest (2025-2026) bachelor History +study programme from UAntwerpen. It scrapes the official page and writes a normalized table. + +Source page (2025-2026 bachelor study programme): +https://www.uantwerpen.be/nl/studeren/aanbod/alle-opleidingen/geschiedenis-studeren/bachelor/studieprogramma/ +- In 2025-2026 the 'Geschiedenis per periode en gebied' structure changed to a two-pillar model: + * Chronologische pijler: 3 OOs (middeleeuwen, nieuwe tijd, nieuwste tijd) + * Thematische pijler: 2 OOs +(See faculty helpdesk note with change summary and transition measures.) + +IMPORTANT: +- This script only updates the 'BAGES' (Bachelor) sheet, because the provided link covers the bachelor page. +- 'MAGES' and 'SPVP' sheets remain untouched. + +Tested with: requests, beautifulsoup4, lxml, pandas, openpyxl +""" + +import re +import sys +import time +import urllib.parse +from datetime import datetime +from pathlib import Path +from typing import Optional, Tuple + +import requests +import pandas as pd +from bs4 import BeautifulSoup +from openpyxl import load_workbook +from openpyxl.utils.exceptions import InvalidFileException + + +# ------------------------- Configuration ------------------------- +EXCEL_PATH = "ongeloofelijken tool.xlsx" +TARGET_SHEET = "BAGES" +ARCHIVE_PREFIX = "BAGES_OLD_" +UA_BA_URL = "https://www.uantwerpen.be/nl/studeren/aanbod/alle-opleidingen/geschiedenis-studeren/bachelor/studieprogramma/" +TARGET_YEAR_PREFIX = "2025-" # Anchor/course URLs have '?id=-'; we filter with '2025-' +TIMEOUT = 30 +HEADERS = { + "User-Agent": "Mozilla/5.0 (compatible; uantwerpen-bages-updater/1.0; +https://www.uantwerpen.be/)", + "Accept-Language": "nl,en;q=0.8" +} + + +# ------------------------- Helpers ------------------------- +def fetch_html(url: str) -> BeautifulSoup: + resp = requests.get(url, headers=HEADERS, timeout=TIMEOUT) + resp.raise_for_status() + return BeautifulSoup(resp.text, "lxml") + + +def extract_text(el) -> str: + return re.sub(r"\s+", " ", " ".join(el.stripped_strings)) if el else "" + + +def parse_meta_from_block(block_text: str) -> Tuple[Optional[str], Optional[str], Optional[str], Optional[str]]: + """ + Try to parse Semester, Credits, Lecturers, Notes from a block of text next to a course link. + Returns (semester, credits, lecturers, notes) + """ + text = block_text + + # Semester examples: '1E SEM', '2E SEM', '1E/2E SEM' + sem = None + m_sem = re.search(r"\b(1E\s*/\s*2E\s*SEM|1E\s*SEM|2E\s*SEM)\b", text, flags=re.I) + if m_sem: + sem = m_sem.group(1).upper().replace(" ", "") + + # Credits examples: '6 studiepunten', '3 studiepunten' + credits = None + m_sp = re.search(r"(\d+)\s*studiepunten", text, flags=re.I) + if m_sp: + credits = m_sp.group(1) + + # Lecturers: after 'Lesgever (s):' or 'Lesgever(s):' + lecturers = None + m_lect = re.search(r"Lesgever\s*\(s\)\s*:\s*([^|]+?)(?:\s{2,}|$)", text, flags=re.I) + if not m_lect: + m_lect = re.search(r"Lesgever[s]?\s*:\s*([^|]+?)(?:\s{2,}|$)", text, flags=re.I) + if m_lect: + lecturers = m_lect.group(1).strip(" .").replace(" ,", ",") + + # Notes: look for two-yearly etc. + notes = None + if re.search(r"Tweejaarlijks", text, flags=re.I): + # Try to capture the "even/oneven" phrasing + m_ev = re.search(r"tweejaarlijks[^.]*?(even|oneven)[^.]*jaar", text, flags=re.I) + notes = "Tweejaarlijks" + (f" ({m_ev.group(1).lower()} jaar)" if m_ev else "") + + return sem, credits, lecturers, notes + + +def nearest_sections(a_tag) -> Tuple[Optional[str], Optional[str], Optional[str]]: + """ + Find nearest preceding headings to classify the row. + Returns (section, subsection, pillar) + - section: e.g., 'Modeltraject deel 1/2/3' + - subsection: e.g., 'Wijsbegeerte en sociale wetenschappen', 'Keuzeopleidingsonderdelen', 'Inleiding tot de geschiedenis', etc. + - pillar: for deel 3: 'Chronologische pijler', 'Thematische pijler' or None + """ + # The site uses a variety of headings (h2, h3, h4); we trace back to find labels + h = a_tag.find_previous(["h2", "h3", "h4", "h5"]) + section = subsection = pillar = None + + # Walk up multiple previous headings to capture a hierarchy + prev_heads = [] + cur = a_tag + for _ in range(40): # limit walk to avoid infinite loops + cur = cur.find_previous(["h2", "h3", "h4", "h5"]) + if not cur: + break + txt = extract_text(cur) + prev_heads.append(txt) + + # Determine labels from the nearest few headings + for txt in prev_heads: + t = txt.lower() + if section is None and "modeltraject deel" in t: + # Normalize like "Modeltraject deel 1" + section = txt + if subsection is None: + # Typical subsections + if any(k in t for k in [ + "wijsbegeerte en sociale wetenschappen", + "methodologie van de geschiedenis", + "historische oefeningen", + "inleiding tot de geschiedenis", + "heuristiek", + "historisch overzicht", + "keuzeopleidingsonderdelen", + "sociale wetenschappen", + ]): + subsection = txt + if pillar is None and ("chronologische pijler" in t or "thematische pijler" in t): + pillar = txt + + if section and (subsection or pillar): + # Good enough + break + + return section, subsection, pillar + + +def parse_courses_from_page(soup: BeautifulSoup) -> pd.DataFrame: + """ + Parse all course links for the 2025-xxxx academic year, infer metadata from nearby text, + and return a normalized DataFrame. + """ + rows = [] + + # Capture all anchors that look like course links containing '?id=2025-' + for a in soup.find_all("a", href=True): + href = a["href"] + # Normalize relative links + full_url = urllib.parse.urljoin(UA_BA_URL, href) + # Filter by the 'id=2025-' parameter (2025-2026) + if "id=" in href: + q = urllib.parse.urlparse(href).query + params = urllib.parse.parse_qs(q) + ids = params.get("id", []) + if not ids: + continue + # Some pages use '2025-XXXXX' or '2025-XXXXX&lang=nl' + if not any(idv.startswith(TARGET_YEAR_PREFIX) for idv in ids): + continue + course_id = ids[0] # e.g., '2025-1002FLWGES' + else: + # No id=... parameter; skip + continue + + # Extract code after '2025-' + code = None + m = re.match(r"2025-([A-Za-z0-9]+)", course_id) + if m: + code = m.group(1) + + name = extract_text(a).strip() + if not name or not code: + continue + + # Use a reasonably large ancestor block for metadata search + container = a + for _ in range(4): + if container.parent: + container = container.parent + block_text = extract_text(container) + + semester, credits, lecturers, notes = parse_meta_from_block(block_text) + section, subsection, pillar = nearest_sections(a) + + rows.append({ + "Section": section, + "Subsection": subsection, + "Pillar": pillar, + "Course Code": code, + "Course Name": name, + "URL": full_url, + "Semester": semester, + "Credits": credits, + "Lecturers": lecturers, + "Notes": notes + }) + + df = pd.DataFrame(rows).drop_duplicates(subset=["Course Code", "Course Name"]) + # Keep only rows that clearly belong to the 'Bachelor' page; sometimes cross-links appear + # Heuristic: we keep rows with a Section that starts with "Modeltraject deel" or that have a Pillar marker + mask = ( + df["Section"].fillna("").str.contains(r"Modeltraject deel", case=False) | + df["Pillar"].fillna("").str.contains(r"Pijler", case=False) + ) + df = df[mask].copy() + + # Clean up text for consistency + def clean_col(s): + return s.str.replace(r"\s+", " ", regex=True).str.strip() + + for col in ["Section", "Subsection", "Pillar", "Course Name", "Lecturers", "Notes"]: + df[col] = clean_col(df[col].astype(str)) + + # Ensure missing pillar/subsection are empty strings for consistent sorting + df["Pillar"] = df["Pillar"].fillna("") + df["Subsection"] = df["Subsection"].fillna("") + + # Sort for readability: section → pillar → subsection → name + df.sort_values( + by=["Section", "Pillar", "Subsection", "Course Name"], + inplace=True + ) + df.reset_index(drop=True, inplace=True) + return df + + +def archive_and_write(excel_path: str, df: pd.DataFrame, target_sheet: str): + """ + - If sheet 'BAGES' exists, rename it to 'BAGES_OLD_YYYYMMDD' + - Write df to 'BAGES' + """ + try: + wb = load_workbook(excel_path) + except FileNotFoundError: + print(f"[INFO] File not found, creating new workbook: {excel_path}") + # Write a new file straight away + with pd.ExcelWriter(excel_path, engine="openpyxl") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + return + except InvalidFileException: + print(f"[ERROR] Not a valid Excel file: {excel_path}") + sys.exit(1) + + # Rename existing BAGES to archive + if target_sheet in wb.sheetnames: + date_suffix = datetime.now().strftime("%Y%m%d") + archive_name = ARCHIVE_PREFIX + date_suffix + # Ensure uniqueness (append a counter if necessary) + counter = 1 + final_archive = archive_name + while final_archive in wb.sheetnames: + counter += 1 + final_archive = f"{archive_name}_{counter}" + ws = wb[target_sheet] + ws.title = final_archive + print(f"[INFO] Archived existing '{target_sheet}' as '{final_archive}'") + + # Save intermediate + wb.save(excel_path) + + # Now write the new sheet + with pd.ExcelWriter(excel_path, engine="openpyxl", mode="a", if_sheet_exists="overlay") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + + print(f"[SUCCESS] Wrote updated '{target_sheet}' sheet to '{excel_path}'") + # Also save the updated DataFrame to a separate new Excel file for convenience + try: + src = Path(excel_path) + new_name = src.with_name(f"{src.stem}_updated{src.suffix}") + # Write a fresh workbook containing only the updated sheet + with pd.ExcelWriter(str(new_name), engine="openpyxl") as writer: + df.to_excel(writer, sheet_name=target_sheet, index=False) + print(f"[INFO] Also wrote updated data to new file '{new_name}'") + except Exception as e: + print(f"[WARNING] Could not write updated copy to new file: {e}") + + +def main(): + print("[STEP 1] Fetching the bachelor study programme page (2025-2026)…") + soup = fetch_html(UA_BA_URL) + time.sleep(0.3) + + print("[STEP 2] Parsing courses and metadata (this may take a few seconds)…") + df = parse_courses_from_page(soup) + if df.empty: + print("[WARNING] No 2025-xxxx course rows found. The page structure may have changed.") + print(" Please open the URL in a browser and check if '2025-2026' content is visible.") + else: + # Sanity: flag pillar rows (deel 3) visibly + df["Pillar"] = df["Pillar"].replace({"": None}) + print(f"[INFO] Parsed {len(df)} course rows for 2025-2026.") + + # Optional: give you a quick view in console + head = df.head(10).to_string(index=False) + print("[PREVIEW]\n" + head) + + print(f"[STEP 3] Updating Excel: {EXCEL_PATH}") + archive_and_write(EXCEL_PATH, df, TARGET_SHEET) + + print("\nDone. You can now open the workbook and review the refreshed 'BAGES' sheet.") + + +if __name__ == "__main__": + main() + # Try to save a copy of the corrected script beside the original. + def save_copy(dest_name: str = "script_fixed.py"): + try: + import pathlib + src = pathlib.Path(__file__) + dst = src.with_name(dest_name) + dst.write_text(src.read_text(encoding="utf-8"), encoding="utf-8") + print(f"[INFO] Wrote a copy of this script to '{dst}'") + except Exception as e: + print(f"[WARNING] Could not write copy: {e}") + + save_copy() diff --git a/ongeloofelijken tool/updated b/ongeloofelijken tool/updated new file mode 100644 index 0000000..536dead Binary files /dev/null and b/ongeloofelijken tool/updated differ diff --git a/startpakketten/process_predelib_file.py b/startpakketten/process_predelib_file.py index 0a0b0b6..5800edc 100644 --- a/startpakketten/process_predelib_file.py +++ b/startpakketten/process_predelib_file.py @@ -181,22 +181,49 @@ def check_students_with_mismatching_SP_values(predelib_df: pd.DataFrame) -> List logger.info("All required columns found in dataframe") - # Check for mismatching SP values - mismatching_students = [] - for index, row in predelib_df.iterrows(): - if row['Totaal aantal SP'] != row['Aantal SP vereist']: - mismatching_students.append({ - 'ID': row['ID'], - 'Achternaam': row['Achternaam'], - 'Voornaam': row['Voornaam'], - 'E-mail': row['E-mail'], - 'Totaal_aantal_SP': row['Totaal aantal SP'], - 'Aantal_SP_vereist': row['Aantal SP vereist'], - 'Waarschuwing': row['Waarschuwing'], - 'Adviesrapport_code': row['Adviesrapport code'] - }) + # Use vectorized comparison to find rows where the SP values differ + sp_col = predelib_df['Totaal aantal SP'] + req_col = predelib_df['Aantal SP vereist'] - logger.info(f"Found {len(mismatching_students)} students with mismatching SP values") + # Simple inequality works for most cases; NaN != NaN will be True which is acceptable + mask = sp_col != req_col + mismatches_df = predelib_df[mask].copy() + + logger.info(f"Found {len(mismatches_df)} raw rows with mismatching SP values") + + if mismatches_df.empty: + logger.info("No students with mismatching SP values found") + return [] + + # Keep only unique students by 'ID' (first occurrence). + if 'ID' in mismatches_df.columns: + before_dedup = len(mismatches_df) + mismatches_df = mismatches_df.drop_duplicates(subset=['ID']) + after_dedup = len(mismatches_df) + logger.info(f"Reduced from {before_dedup} rows to {after_dedup} unique students by ID") + else: + logger.warning("Column 'ID' not found - cannot deduplicate by student ID") + + # Ensure optional columns exist to avoid KeyError when building dicts + for optional_col in ('Waarschuwing', 'Adviesrapport code'): + if optional_col not in mismatches_df.columns: + mismatches_df[optional_col] = None + + # Build the list of mismatching students + mismatching_students = [] + for _, row in mismatches_df.iterrows(): + mismatching_students.append({ + 'ID': row.get('ID'), + 'Achternaam': row.get('Achternaam'), + 'Voornaam': row.get('Voornaam'), + 'E-mail': row.get('E-mail'), + 'Totaal_aantal_SP': row.get('Totaal aantal SP'), + 'Aantal_SP_vereist': row.get('Aantal SP vereist'), + 'Waarschuwing': row.get('Waarschuwing'), + 'Adviesrapport_code': row.get('Adviesrapport code') + }) + + logger.info(f"Returning {len(mismatching_students)} unique students with mismatching SP values") return mismatching_students except Exception as e: diff --git a/startpakketten/startpakket_processing.log b/startpakketten/startpakket_processing.log index 21978a0..ef2b3b3 100644 --- a/startpakketten/startpakket_processing.log +++ b/startpakketten/startpakket_processing.log @@ -665,3 +665,1083 @@ 2025-07-31 11:39:21,854 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 2025-07-31 11:39:21,854 - data_processor - INFO - Processing completed successfully. 2025-07-31 11:39:21,862 - config - INFO - Processing completed with exit code: 1 +2025-09-04 09:54:36,899 - config - DEBUG - Verbose logging enabled +2025-09-04 09:54:36,899 - config - INFO - Starting startpakket processing +2025-09-04 09:54:36,899 - config - INFO - Predelib file: db.xlsx +2025-09-04 09:54:36,900 - config - INFO - Dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 09:54:36,901 - data_processor - INFO - Reading predeliberation file: db.xlsx +2025-09-04 09:54:44,921 - data_processor - INFO - Predelib file loaded successfully. Shape: (126, 44) +2025-09-04 09:54:44,921 - data_processor - INFO - Reading dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 09:54:44,976 - data_processor - INFO - Dashboard file loaded successfully. Shape: (88, 36) +2025-09-04 09:54:44,976 - data_processor - INFO - Processing predeliberation file headers +2025-09-04 09:54:44,979 - data_processor - INFO - Processing dashboard file headers +2025-09-04 09:54:44,980 - data_processor - INFO - Checking for students with FAIL status in predeliberation file +2025-09-04 09:54:44,981 - process_predelib_file - INFO - Starting failed students check +2025-09-04 09:54:44,981 - process_predelib_file - INFO - Predelib dataframe shape: (123, 22) +2025-09-04 09:54:44,981 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 09:54:44,982 - process_predelib_file - DEBUG - Adviesrapport code column type: object +2025-09-04 09:54:44,983 - process_predelib_file - DEBUG - Unique Adviesrapport codes: ['FAIL' 'COMP'] +2025-09-04 09:54:44,985 - process_predelib_file - INFO - Found 35 students with FAIL status +2025-09-04 09:54:44,986 - process_predelib_file - INFO - No duplicate rows found +2025-09-04 09:54:44,987 - process_predelib_file - INFO - Final count after duplicate removal: 35 students with FAIL status +2025-09-04 09:54:44,987 - process_predelib_file - DEBUG - Processed failed student: ID=20240681, Name=Van Den Wijngaert, Gregory +2025-09-04 09:54:44,987 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 09:54:44,988 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 09:54:44,988 - process_predelib_file - DEBUG - Processed failed student: ID=20250403, Name=de Vries, Fabian +2025-09-04 09:54:44,988 - process_predelib_file - DEBUG - Processed failed student: ID=20250444, Name=Boenders, Quinn +2025-09-04 09:54:44,989 - process_predelib_file - DEBUG - Processed failed student: ID=20250479, Name=Reynders, Akira +2025-09-04 09:54:44,989 - process_predelib_file - DEBUG - Processed failed student: ID=20250494, Name=Vleugels, Ylenca +2025-09-04 09:54:44,989 - process_predelib_file - DEBUG - Processed failed student: ID=20250522, Name=Dirckx, Jens +2025-09-04 09:54:44,989 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 09:54:44,990 - process_predelib_file - DEBUG - Processed failed student: ID=20250642, Name=Potters, Joppe +2025-09-04 09:54:44,990 - process_predelib_file - DEBUG - Processed failed student: ID=20250685, Name=De Clercq, Lennert +2025-09-04 09:54:44,990 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,990 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,991 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,991 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,991 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,991 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,992 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 09:54:44,992 - process_predelib_file - DEBUG - Processed failed student: ID=20250735, Name=Neefs, Nia +2025-09-04 09:54:44,992 - process_predelib_file - DEBUG - Processed failed student: ID=20250747, Name=Ghyssaert, Wannes +2025-09-04 09:54:44,993 - process_predelib_file - DEBUG - Processed failed student: ID=20250911, Name=Dène, Lander +2025-09-04 09:54:44,993 - process_predelib_file - DEBUG - Processed failed student: ID=20250938, Name=Beullens, Joppe +2025-09-04 09:54:44,993 - process_predelib_file - DEBUG - Processed failed student: ID=20251045, Name=Colignon, Marie +2025-09-04 09:54:44,993 - process_predelib_file - DEBUG - Processed failed student: ID=20251059, Name=Balva Shvili, Jaïr +2025-09-04 09:54:44,993 - process_predelib_file - DEBUG - Processed failed student: ID=20251136, Name=Popov, Alexander +2025-09-04 09:54:44,994 - process_predelib_file - DEBUG - Processed failed student: ID=20251187, Name=Goetschalckx, Alexander +2025-09-04 09:54:44,994 - process_predelib_file - DEBUG - Processed failed student: ID=20251282, Name=Maldonado Gatica, Luca +2025-09-04 09:54:44,994 - process_predelib_file - DEBUG - Processed failed student: ID=20251317, Name=Devisscher, Zoé +2025-09-04 09:54:44,995 - process_predelib_file - DEBUG - Processed failed student: ID=20251411, Name=Bogaerts, Andries +2025-09-04 09:54:44,995 - process_predelib_file - DEBUG - Processed failed student: ID=20251445, Name=De Beule, Fien +2025-09-04 09:54:44,995 - process_predelib_file - DEBUG - Processed failed student: ID=20251484, Name=Van Ende, Lore +2025-09-04 09:54:44,996 - process_predelib_file - DEBUG - Processed failed student: ID=20251621, Name=Van Loon, Amélie +2025-09-04 09:54:44,996 - process_predelib_file - DEBUG - Processed failed student: ID=20251668, Name=Vangerven, Warre +2025-09-04 09:54:44,996 - process_predelib_file - DEBUG - Processed failed student: ID=20251736, Name=Frantšuk, Mark +2025-09-04 09:54:44,997 - process_predelib_file - DEBUG - Processed failed student: ID=20251877, Name=D'hondt, Jelte +2025-09-04 09:54:44,997 - process_predelib_file - INFO - Successfully processed 35 failed students +2025-09-04 09:54:44,997 - process_predelib_file - WARNING - Found 35 students with FAIL status +2025-09-04 09:54:44,997 - process_predelib_file - INFO - Failed student - ID: 20240681, Name: Van Den Wijngaert, Gregory, SP: 0/60 +2025-09-04 09:54:44,997 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 0/60 +2025-09-04 09:54:44,998 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 0/60 +2025-09-04 09:54:44,998 - process_predelib_file - INFO - Failed student - ID: 20250403, Name: de Vries, Fabian, SP: 0/60 +2025-09-04 09:54:44,998 - process_predelib_file - INFO - Failed student - ID: 20250444, Name: Boenders, Quinn, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250479, Name: Reynders, Akira, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250494, Name: Vleugels, Ylenca, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250522, Name: Dirckx, Jens, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250642, Name: Potters, Joppe, SP: 0/60 +2025-09-04 09:54:44,999 - process_predelib_file - INFO - Failed student - ID: 20250685, Name: De Clercq, Lennert, SP: 0/60 +2025-09-04 09:54:45,001 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,001 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,001 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,001 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,002 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,002 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,002 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 09:54:45,002 - process_predelib_file - INFO - Failed student - ID: 20250735, Name: Neefs, Nia, SP: 0/60 +2025-09-04 09:54:45,002 - process_predelib_file - INFO - Failed student - ID: 20250747, Name: Ghyssaert, Wannes, SP: 0/60 +2025-09-04 09:54:45,003 - process_predelib_file - INFO - Failed student - ID: 20250911, Name: Dène, Lander, SP: 0/60 +2025-09-04 09:54:45,003 - process_predelib_file - INFO - Failed student - ID: 20250938, Name: Beullens, Joppe, SP: 0/60 +2025-09-04 09:54:45,003 - process_predelib_file - INFO - Failed student - ID: 20251045, Name: Colignon, Marie, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251059, Name: Balva Shvili, Jaïr, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251136, Name: Popov, Alexander, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251187, Name: Goetschalckx, Alexander, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251282, Name: Maldonado Gatica, Luca, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251317, Name: Devisscher, Zoé, SP: 0/60 +2025-09-04 09:54:45,004 - process_predelib_file - INFO - Failed student - ID: 20251411, Name: Bogaerts, Andries, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251445, Name: De Beule, Fien, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251484, Name: Van Ende, Lore, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251621, Name: Van Loon, Amélie, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251668, Name: Vangerven, Warre, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251736, Name: Frantšuk, Mark, SP: 0/60 +2025-09-04 09:54:45,005 - process_predelib_file - INFO - Failed student - ID: 20251877, Name: D'hondt, Jelte, SP: 0/60 +2025-09-04 09:54:45,006 - process_predelib_file - INFO - Starting check for students with mismatching SP values in the predeliberation file +2025-09-04 09:54:45,006 - process_predelib_file - INFO - Predelib dataframe shape: (123, 22) +2025-09-04 09:54:45,006 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 09:54:45,012 - process_predelib_file - INFO - Found 35 students with mismatching SP values +2025-09-04 09:54:45,013 - data_processor - INFO - Comparing SP values between files +2025-09-04 09:54:45,013 - compare_sp - INFO - Starting SP values comparison +2025-09-04 09:54:45,013 - compare_sp - INFO - All required columns found in both dataframes +2025-09-04 09:54:45,013 - compare_sp - DEBUG - Predelib ID column type: object +2025-09-04 09:54:45,013 - compare_sp - DEBUG - Dashboard ID column type: object +2025-09-04 09:54:45,014 - compare_sp - DEBUG - Sample predelib IDs: ['20240681', '20241180', '20250328', '20250328', '20250328'] +2025-09-04 09:54:45,014 - compare_sp - DEBUG - Sample dashboard IDs: ['20251936', '20252040', '20252376', '20251059', '20251344'] +2025-09-04 09:54:45,015 - compare_sp - INFO - Found 37 matching IDs between the two dataframes +2025-09-04 09:54:45,015 - compare_sp - INFO - Total predelib IDs: 37 +2025-09-04 09:54:45,015 - compare_sp - INFO - Total dashboard IDs: 85 +2025-09-04 09:54:45,018 - compare_sp - DEBUG - Mismatch found for ID 20251736: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,020 - compare_sp - DEBUG - Mismatch found for ID 20250685: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,021 - compare_sp - DEBUG - Mismatch found for ID 20241180: Predelib=0, Dashboard=45 +2025-09-04 09:54:45,023 - compare_sp - DEBUG - Mismatch found for ID 20250522: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,025 - compare_sp - DEBUG - Mismatch found for ID 20251317: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,026 - compare_sp - DEBUG - Mismatch found for ID 20250706: Predelib=39, Dashboard=45 +2025-09-04 09:54:45,027 - compare_sp - DEBUG - Mismatch found for ID 20250938: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,027 - compare_sp - DEBUG - Mismatch found for ID 20250747: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,029 - compare_sp - DEBUG - Mismatch found for ID 20251282: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,030 - compare_sp - DEBUG - Mismatch found for ID 20250334: Predelib=0, Dashboard=12 +2025-09-04 09:54:45,031 - compare_sp - DEBUG - Mismatch found for ID 20251136: Predelib=0, Dashboard=63 +2025-09-04 09:54:45,032 - compare_sp - DEBUG - Mismatch found for ID 20250642: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,034 - compare_sp - DEBUG - Mismatch found for ID 20250539: Predelib=0, Dashboard=12 +2025-09-04 09:54:45,035 - compare_sp - DEBUG - Mismatch found for ID 20251187: Predelib=0, Dashboard=45 +2025-09-04 09:54:45,037 - compare_sp - DEBUG - Mismatch found for ID 20251059: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,039 - compare_sp - DEBUG - Mismatch found for ID 20250735: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,041 - compare_sp - DEBUG - Mismatch found for ID 20251621: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,045 - compare_sp - DEBUG - Mismatch found for ID 20250403: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,046 - compare_sp - DEBUG - Mismatch found for ID 20240681: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,047 - compare_sp - DEBUG - Mismatch found for ID 20250494: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,048 - compare_sp - DEBUG - Mismatch found for ID 20251668: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,050 - compare_sp - DEBUG - Mismatch found for ID 20251411: Predelib=0, Dashboard=60 +2025-09-04 09:54:45,051 - compare_sp - INFO - Successfully processed 37 matching records +2025-09-04 09:54:45,052 - compare_sp - WARNING - Found 22 mismatches +2025-09-04 09:54:45,053 - compare_sp - INFO - Mismatch - ID 20251736 (Mark Frantšuk): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,053 - compare_sp - INFO - Mismatch - ID 20250685 (Lennert De Clercq): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,053 - compare_sp - INFO - Mismatch - ID 20241180 (Lone Verbecque): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=45 +2025-09-04 09:54:45,053 - compare_sp - INFO - Mismatch - ID 20250522 (Jens Dirckx): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,054 - compare_sp - INFO - Mismatch - ID 20251317 (Zoé Devisscher): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,054 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 +2025-09-04 09:54:45,054 - compare_sp - INFO - Mismatch - ID 20250938 (Joppe Beullens): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,055 - compare_sp - INFO - Mismatch - ID 20250747 (Wannes Ghyssaert): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,055 - compare_sp - INFO - Mismatch - ID 20251282 (Luca Maldonado Gatica): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,055 - compare_sp - INFO - Mismatch - ID 20250334 (Stéphanie van der Stappen): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=12 +2025-09-04 09:54:45,056 - compare_sp - INFO - Mismatch - ID 20251136 (Alexander Popov): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=63 +2025-09-04 09:54:45,056 - compare_sp - INFO - Mismatch - ID 20250642 (Joppe Potters): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,056 - compare_sp - INFO - Mismatch - ID 20250539 (Filip Hermans): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=12 +2025-09-04 09:54:45,057 - compare_sp - INFO - Mismatch - ID 20251187 (Alexander Goetschalckx): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=45 +2025-09-04 09:54:45,057 - compare_sp - INFO - Mismatch - ID 20251059 (Jaïr Balva Shvili): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,057 - compare_sp - INFO - Mismatch - ID 20250735 (Nia Neefs): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,058 - compare_sp - INFO - Mismatch - ID 20251621 (Amélie Van Loon): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,058 - compare_sp - INFO - Mismatch - ID 20250403 (Fabian de Vries): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,058 - compare_sp - INFO - Mismatch - ID 20240681 (Gregory Van Den Wijngaert): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,058 - compare_sp - INFO - Mismatch - ID 20250494 (Ylenca Vleugels): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,059 - compare_sp - INFO - Mismatch - ID 20251668 (Warre Vangerven): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,059 - compare_sp - INFO - Mismatch - ID 20251411 (Andries Bogaerts): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-04 09:54:45,059 - data_processor - INFO - Processing completed successfully. +2025-09-04 09:54:45,070 - config - INFO - Processing completed with exit code: 1 +2025-09-04 11:05:24,738 - config - DEBUG - Verbose logging enabled +2025-09-04 11:05:24,739 - config - INFO - Starting startpakket processing +2025-09-04 11:05:24,739 - config - INFO - Predelib file: db.xlsx +2025-09-04 11:05:24,739 - config - INFO - Dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 11:05:24,739 - data_processor - INFO - Reading predeliberation file: db.xlsx +2025-09-04 11:05:27,561 - data_processor - INFO - Predelib file loaded successfully. Shape: (584, 44) +2025-09-04 11:05:27,561 - data_processor - INFO - Reading dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 11:05:27,615 - data_processor - INFO - Dashboard file loaded successfully. Shape: (88, 36) +2025-09-04 11:05:27,617 - data_processor - INFO - Processing predeliberation file headers +2025-09-04 11:05:27,636 - data_processor - INFO - Processing dashboard file headers +2025-09-04 11:05:27,641 - data_processor - INFO - Checking for students with FAIL status in predeliberation file +2025-09-04 11:05:27,641 - process_predelib_file - INFO - Starting failed students check +2025-09-04 11:05:27,642 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 11:05:27,642 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 11:05:27,643 - process_predelib_file - DEBUG - Adviesrapport code column type: object +2025-09-04 11:05:27,649 - process_predelib_file - DEBUG - Unique Adviesrapport codes: ['COMP' 'FAIL'] +2025-09-04 11:05:27,659 - process_predelib_file - INFO - Found 98 students with FAIL status +2025-09-04 11:05:27,663 - process_predelib_file - INFO - No duplicate rows found +2025-09-04 11:05:27,664 - process_predelib_file - INFO - Final count after duplicate removal: 98 students with FAIL status +2025-09-04 11:05:27,666 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,668 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,672 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,673 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,674 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,675 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,675 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,676 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:05:27,676 - process_predelib_file - DEBUG - Processed failed student: ID=20245102, Name=de Beukelaar, Maurice +2025-09-04 11:05:27,676 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 11:05:27,676 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 11:05:27,676 - process_predelib_file - DEBUG - Processed failed student: ID=20250444, Name=Boenders, Quinn +2025-09-04 11:05:27,677 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,677 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,678 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,678 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,679 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,680 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,680 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,681 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,681 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,681 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:05:27,683 - process_predelib_file - DEBUG - Processed failed student: ID=20250479, Name=Reynders, Akira +2025-09-04 11:05:27,684 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 11:05:27,684 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 11:05:27,686 - process_predelib_file - DEBUG - Processed failed student: ID=20250623, Name=Vercammen, Evelyn +2025-09-04 11:05:27,686 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,686 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,686 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,686 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,687 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,687 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,688 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:05:27,688 - process_predelib_file - DEBUG - Processed failed student: ID=20250911, Name=Dène, Lander +2025-09-04 11:05:27,689 - process_predelib_file - DEBUG - Processed failed student: ID=20250977, Name=Gijsels, Jef +2025-09-04 11:05:27,689 - process_predelib_file - DEBUG - Processed failed student: ID=20251045, Name=Colignon, Marie +2025-09-04 11:05:27,689 - process_predelib_file - DEBUG - Processed failed student: ID=20251324, Name=De Zutter, Raven +2025-09-04 11:05:27,690 - process_predelib_file - DEBUG - Processed failed student: ID=20251344, Name=Baudouin, Lou +2025-09-04 11:05:27,690 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:05:27,690 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:05:27,690 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:05:27,691 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:05:27,691 - process_predelib_file - DEBUG - Processed failed student: ID=20251445, Name=De Beule, Fien +2025-09-04 11:05:27,691 - process_predelib_file - DEBUG - Processed failed student: ID=20251484, Name=Van Ende, Lore +2025-09-04 11:05:27,692 - process_predelib_file - DEBUG - Processed failed student: ID=20251877, Name=D'hondt, Jelte +2025-09-04 11:05:27,692 - process_predelib_file - DEBUG - Processed failed student: ID=20251936, Name=Aertgeerts, Lennert +2025-09-04 11:05:27,695 - process_predelib_file - DEBUG - Processed failed student: ID=20252006, Name=Berardocco, Alessandro +2025-09-04 11:05:27,696 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,696 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,696 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,696 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,697 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,697 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,697 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:05:27,698 - process_predelib_file - DEBUG - Processed failed student: ID=20252270, Name=Callens, Hannah +2025-09-04 11:05:27,701 - process_predelib_file - DEBUG - Processed failed student: ID=20252485, Name=Wauters, Anthony +2025-09-04 11:05:27,701 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:05:27,702 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:05:27,703 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:05:27,703 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:05:27,704 - process_predelib_file - DEBUG - Processed failed student: ID=20252609, Name=De Coninck, Marie +2025-09-04 11:05:27,704 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:05:27,704 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:05:27,705 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:05:27,705 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:05:27,705 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:05:27,706 - process_predelib_file - DEBUG - Processed failed student: ID=20252966, Name=Defrenne, Lars +2025-09-04 11:05:27,706 - process_predelib_file - DEBUG - Processed failed student: ID=20252968, Name=Rombouts, Marieke +2025-09-04 11:05:27,706 - process_predelib_file - DEBUG - Processed failed student: ID=20253071, Name=Hoffmann, Wouter +2025-09-04 11:05:27,706 - process_predelib_file - DEBUG - Processed failed student: ID=20253101, Name=De Vries, Flo +2025-09-04 11:05:27,706 - process_predelib_file - DEBUG - Processed failed student: ID=20253121, Name=Kiekens, Judith +2025-09-04 11:05:27,707 - process_predelib_file - DEBUG - Processed failed student: ID=20253210, Name=Saey, Hanne +2025-09-04 11:05:27,707 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,707 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,707 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,708 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,708 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,709 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,711 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,713 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,713 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:05:27,714 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,714 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,715 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,717 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,720 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,722 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,722 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,723 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,723 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,723 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:05:27,724 - process_predelib_file - DEBUG - Processed failed student: ID=20253697, Name=Vervoort, Jasper +2025-09-04 11:05:27,724 - process_predelib_file - DEBUG - Processed failed student: ID=20253725, Name=Jacobs, Jasmine +2025-09-04 11:05:27,724 - process_predelib_file - DEBUG - Processed failed student: ID=20253807, Name=De Weerdt, Jasper +2025-09-04 11:05:27,724 - process_predelib_file - DEBUG - Processed failed student: ID=20253822, Name=Van Reempts, Viktor +2025-09-04 11:05:27,725 - process_predelib_file - DEBUG - Processed failed student: ID=20254018, Name=Debra, Sam +2025-09-04 11:05:27,725 - process_predelib_file - DEBUG - Processed failed student: ID=20254021, Name=Thiry, Roeland +2025-09-04 11:05:27,725 - process_predelib_file - DEBUG - Processed failed student: ID=991978, Name=Bauwens, Bruno +2025-09-04 11:05:27,725 - process_predelib_file - INFO - Successfully processed 98 failed students +2025-09-04 11:05:27,725 - process_predelib_file - WARNING - Found 98 students with FAIL status +2025-09-04 11:05:27,726 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,726 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,726 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,728 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,728 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,729 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,729 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,729 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:05:27,729 - process_predelib_file - INFO - Failed student - ID: 20245102, Name: de Beukelaar, Maurice, SP: 0/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250444, Name: Boenders, Quinn, SP: 0/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,730 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,731 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:05:27,732 - process_predelib_file - INFO - Failed student - ID: 20250479, Name: Reynders, Akira, SP: 0/60 +2025-09-04 11:05:27,732 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 11:05:27,732 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 11:05:27,732 - process_predelib_file - INFO - Failed student - ID: 20250623, Name: Vercammen, Evelyn, SP: 0/60 +2025-09-04 11:05:27,732 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,733 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:05:27,734 - process_predelib_file - INFO - Failed student - ID: 20250911, Name: Dène, Lander, SP: 0/60 +2025-09-04 11:05:27,734 - process_predelib_file - INFO - Failed student - ID: 20250977, Name: Gijsels, Jef, SP: 0/60 +2025-09-04 11:05:27,734 - process_predelib_file - INFO - Failed student - ID: 20251045, Name: Colignon, Marie, SP: 0/60 +2025-09-04 11:05:27,734 - process_predelib_file - INFO - Failed student - ID: 20251324, Name: De Zutter, Raven, SP: 0/60 +2025-09-04 11:05:27,734 - process_predelib_file - INFO - Failed student - ID: 20251344, Name: Baudouin, Lou, SP: 0/60 +2025-09-04 11:05:27,735 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:05:27,735 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:05:27,735 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:05:27,735 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:05:27,735 - process_predelib_file - INFO - Failed student - ID: 20251445, Name: De Beule, Fien, SP: 0/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20251484, Name: Van Ende, Lore, SP: 0/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20251877, Name: D'hondt, Jelte, SP: 0/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20251936, Name: Aertgeerts, Lennert, SP: 0/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20252006, Name: Berardocco, Alessandro, SP: 0/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,736 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:05:27,737 - process_predelib_file - INFO - Failed student - ID: 20252270, Name: Callens, Hannah, SP: 0/60 +2025-09-04 11:05:27,738 - process_predelib_file - INFO - Failed student - ID: 20252485, Name: Wauters, Anthony, SP: 0/60 +2025-09-04 11:05:27,738 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:05:27,738 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252609, Name: De Coninck, Marie, SP: 0/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:05:27,739 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20252966, Name: Defrenne, Lars, SP: 0/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20252968, Name: Rombouts, Marieke, SP: 0/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20253071, Name: Hoffmann, Wouter, SP: 0/60 +2025-09-04 11:05:27,740 - process_predelib_file - INFO - Failed student - ID: 20253101, Name: De Vries, Flo, SP: 0/60 +2025-09-04 11:05:27,741 - process_predelib_file - INFO - Failed student - ID: 20253121, Name: Kiekens, Judith, SP: 0/60 +2025-09-04 11:05:27,743 - process_predelib_file - INFO - Failed student - ID: 20253210, Name: Saey, Hanne, SP: 0/60 +2025-09-04 11:05:27,744 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,744 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,744 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,745 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,746 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253697, Name: Vervoort, Jasper, SP: 0/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253725, Name: Jacobs, Jasmine, SP: 0/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253807, Name: De Weerdt, Jasper, SP: 0/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20253822, Name: Van Reempts, Viktor, SP: 0/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20254018, Name: Debra, Sam, SP: 0/60 +2025-09-04 11:05:27,747 - process_predelib_file - INFO - Failed student - ID: 20254021, Name: Thiry, Roeland, SP: 0/60 +2025-09-04 11:05:27,748 - process_predelib_file - INFO - Failed student - ID: 991978, Name: Bauwens, Bruno, SP: 0/60 +2025-09-04 11:05:27,749 - process_predelib_file - INFO - Starting check for students with mismatching SP values in the predeliberation file +2025-09-04 11:05:27,749 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 11:05:27,750 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 11:05:27,768 - process_predelib_file - INFO - Found 122 students with mismatching SP values +2025-09-04 11:05:27,769 - data_processor - INFO - Comparing SP values between files +2025-09-04 11:05:27,769 - compare_sp - INFO - Starting SP values comparison +2025-09-04 11:05:27,770 - compare_sp - INFO - All required columns found in both dataframes +2025-09-04 11:05:27,771 - compare_sp - DEBUG - Predelib ID column type: object +2025-09-04 11:05:27,772 - compare_sp - DEBUG - Dashboard ID column type: object +2025-09-04 11:05:27,774 - compare_sp - DEBUG - Sample predelib IDs: ['20240681', '20240681', '20240681', '20240681', '20240681'] +2025-09-04 11:05:27,774 - compare_sp - DEBUG - Sample dashboard IDs: ['20251936', '20252040', '20252376', '20251059', '20251344'] +2025-09-04 11:05:27,774 - compare_sp - INFO - Found 85 matching IDs between the two dataframes +2025-09-04 11:05:27,774 - compare_sp - INFO - Total predelib IDs: 85 +2025-09-04 11:05:27,774 - compare_sp - INFO - Total dashboard IDs: 85 +2025-09-04 11:05:27,784 - compare_sp - DEBUG - Mismatch found for ID 20253456: Predelib=60, Dashboard=66 +2025-09-04 11:05:27,794 - compare_sp - DEBUG - Mismatch found for ID 20253631: Predelib=57, Dashboard=60 +2025-09-04 11:05:27,801 - compare_sp - DEBUG - Mismatch found for ID 20253267: Predelib=45, Dashboard=39 +2025-09-04 11:05:27,810 - compare_sp - DEBUG - Mismatch found for ID 20252549: Predelib=21, Dashboard=72 +2025-09-04 11:05:27,813 - compare_sp - DEBUG - Mismatch found for ID 20251368: Predelib=21, Dashboard=33 +2025-09-04 11:05:27,835 - compare_sp - DEBUG - Mismatch found for ID 20250706: Predelib=39, Dashboard=45 +2025-09-04 11:05:27,843 - compare_sp - DEBUG - Mismatch found for ID 20250446: Predelib=57, Dashboard=63 +2025-09-04 11:05:27,848 - compare_sp - INFO - Successfully processed 85 matching records +2025-09-04 11:05:27,850 - compare_sp - WARNING - Found 7 mismatches +2025-09-04 11:05:27,850 - compare_sp - INFO - Mismatch - ID 20253456 (Lisa Vanbroekhoven): Predeliberatierapport SP=60, Dashboard Inschrijvingen SP=66 +2025-09-04 11:05:27,850 - compare_sp - INFO - Mismatch - ID 20253631 (Julian Wielandt): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=60 +2025-09-04 11:05:27,851 - compare_sp - INFO - Mismatch - ID 20253267 (Robin Weinhold): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=39 +2025-09-04 11:05:27,851 - compare_sp - INFO - Mismatch - ID 20252549 (Lin Wu): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=72 +2025-09-04 11:05:27,851 - compare_sp - INFO - Mismatch - ID 20251368 (Jarne Schruers): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=33 +2025-09-04 11:05:27,852 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 +2025-09-04 11:05:27,852 - compare_sp - INFO - Mismatch - ID 20250446 (Alexander Goossens): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=63 +2025-09-04 11:05:27,852 - data_processor - INFO - Processing completed successfully. +2025-09-04 11:05:27,879 - config - INFO - Processing completed with exit code: 1 +2025-09-04 11:40:56,394 - config - DEBUG - Verbose logging enabled +2025-09-04 11:40:56,394 - config - INFO - Starting startpakket processing +2025-09-04 11:40:56,395 - config - INFO - Predelib file: db.xlsx +2025-09-04 11:40:56,395 - config - INFO - Dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 11:40:56,395 - data_processor - INFO - Reading predeliberation file: db.xlsx +2025-09-04 11:40:57,637 - data_processor - INFO - Predelib file loaded successfully. Shape: (584, 44) +2025-09-04 11:40:57,638 - data_processor - INFO - Reading dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 11:40:57,685 - data_processor - INFO - Dashboard file loaded successfully. Shape: (88, 36) +2025-09-04 11:40:57,686 - data_processor - INFO - Processing predeliberation file headers +2025-09-04 11:40:57,701 - data_processor - INFO - Processing dashboard file headers +2025-09-04 11:40:57,703 - data_processor - INFO - Checking for students with FAIL status in predeliberation file +2025-09-04 11:40:57,704 - process_predelib_file - INFO - Starting failed students check +2025-09-04 11:40:57,704 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 11:40:57,705 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 11:40:57,705 - process_predelib_file - DEBUG - Adviesrapport code column type: object +2025-09-04 11:40:57,707 - process_predelib_file - DEBUG - Unique Adviesrapport codes: ['COMP' 'FAIL'] +2025-09-04 11:40:57,710 - process_predelib_file - INFO - Found 98 students with FAIL status +2025-09-04 11:40:57,714 - process_predelib_file - INFO - No duplicate rows found +2025-09-04 11:40:57,714 - process_predelib_file - INFO - Final count after duplicate removal: 98 students with FAIL status +2025-09-04 11:40:57,716 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,717 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,717 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,719 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,720 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,721 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,721 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,723 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 11:40:57,723 - process_predelib_file - DEBUG - Processed failed student: ID=20245102, Name=de Beukelaar, Maurice +2025-09-04 11:40:57,723 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 11:40:57,724 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 11:40:57,724 - process_predelib_file - DEBUG - Processed failed student: ID=20250444, Name=Boenders, Quinn +2025-09-04 11:40:57,725 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,725 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,725 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,726 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,726 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,726 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,726 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,726 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250479, Name=Reynders, Akira +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 11:40:57,727 - process_predelib_file - DEBUG - Processed failed student: ID=20250623, Name=Vercammen, Evelyn +2025-09-04 11:40:57,728 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,728 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,728 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,729 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,729 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,729 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,730 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 11:40:57,730 - process_predelib_file - DEBUG - Processed failed student: ID=20250911, Name=Dène, Lander +2025-09-04 11:40:57,731 - process_predelib_file - DEBUG - Processed failed student: ID=20250977, Name=Gijsels, Jef +2025-09-04 11:40:57,732 - process_predelib_file - DEBUG - Processed failed student: ID=20251045, Name=Colignon, Marie +2025-09-04 11:40:57,733 - process_predelib_file - DEBUG - Processed failed student: ID=20251324, Name=De Zutter, Raven +2025-09-04 11:40:57,735 - process_predelib_file - DEBUG - Processed failed student: ID=20251344, Name=Baudouin, Lou +2025-09-04 11:40:57,736 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:40:57,737 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:40:57,738 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:40:57,739 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 11:40:57,740 - process_predelib_file - DEBUG - Processed failed student: ID=20251445, Name=De Beule, Fien +2025-09-04 11:40:57,740 - process_predelib_file - DEBUG - Processed failed student: ID=20251484, Name=Van Ende, Lore +2025-09-04 11:40:57,741 - process_predelib_file - DEBUG - Processed failed student: ID=20251877, Name=D'hondt, Jelte +2025-09-04 11:40:57,741 - process_predelib_file - DEBUG - Processed failed student: ID=20251936, Name=Aertgeerts, Lennert +2025-09-04 11:40:57,742 - process_predelib_file - DEBUG - Processed failed student: ID=20252006, Name=Berardocco, Alessandro +2025-09-04 11:40:57,742 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,743 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,743 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,743 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,743 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,744 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,744 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 11:40:57,744 - process_predelib_file - DEBUG - Processed failed student: ID=20252270, Name=Callens, Hannah +2025-09-04 11:40:57,744 - process_predelib_file - DEBUG - Processed failed student: ID=20252485, Name=Wauters, Anthony +2025-09-04 11:40:57,745 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:40:57,745 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:40:57,745 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:40:57,745 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 11:40:57,746 - process_predelib_file - DEBUG - Processed failed student: ID=20252609, Name=De Coninck, Marie +2025-09-04 11:40:57,746 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:40:57,747 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:40:57,747 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:40:57,748 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:40:57,750 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 11:40:57,751 - process_predelib_file - DEBUG - Processed failed student: ID=20252966, Name=Defrenne, Lars +2025-09-04 11:40:57,752 - process_predelib_file - DEBUG - Processed failed student: ID=20252968, Name=Rombouts, Marieke +2025-09-04 11:40:57,753 - process_predelib_file - DEBUG - Processed failed student: ID=20253071, Name=Hoffmann, Wouter +2025-09-04 11:40:57,754 - process_predelib_file - DEBUG - Processed failed student: ID=20253101, Name=De Vries, Flo +2025-09-04 11:40:57,754 - process_predelib_file - DEBUG - Processed failed student: ID=20253121, Name=Kiekens, Judith +2025-09-04 11:40:57,755 - process_predelib_file - DEBUG - Processed failed student: ID=20253210, Name=Saey, Hanne +2025-09-04 11:40:57,756 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,757 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,757 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,757 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,758 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,759 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,759 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,760 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,760 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 11:40:57,761 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,761 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,762 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,763 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,763 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,764 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,765 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,766 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,767 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,768 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 11:40:57,769 - process_predelib_file - DEBUG - Processed failed student: ID=20253697, Name=Vervoort, Jasper +2025-09-04 11:40:57,770 - process_predelib_file - DEBUG - Processed failed student: ID=20253725, Name=Jacobs, Jasmine +2025-09-04 11:40:57,771 - process_predelib_file - DEBUG - Processed failed student: ID=20253807, Name=De Weerdt, Jasper +2025-09-04 11:40:57,771 - process_predelib_file - DEBUG - Processed failed student: ID=20253822, Name=Van Reempts, Viktor +2025-09-04 11:40:57,772 - process_predelib_file - DEBUG - Processed failed student: ID=20254018, Name=Debra, Sam +2025-09-04 11:40:57,773 - process_predelib_file - DEBUG - Processed failed student: ID=20254021, Name=Thiry, Roeland +2025-09-04 11:40:57,773 - process_predelib_file - DEBUG - Processed failed student: ID=991978, Name=Bauwens, Bruno +2025-09-04 11:40:57,773 - process_predelib_file - INFO - Successfully processed 98 failed students +2025-09-04 11:40:57,774 - process_predelib_file - WARNING - Found 98 students with FAIL status +2025-09-04 11:40:57,774 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,774 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,774 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,775 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,775 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,775 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,776 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,776 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 11:40:57,776 - process_predelib_file - INFO - Failed student - ID: 20245102, Name: de Beukelaar, Maurice, SP: 0/60 +2025-09-04 11:40:57,777 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 11:40:57,777 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 11:40:57,777 - process_predelib_file - INFO - Failed student - ID: 20250444, Name: Boenders, Quinn, SP: 0/60 +2025-09-04 11:40:57,777 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,777 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,778 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,778 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,778 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,778 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,779 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,779 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,779 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,780 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 11:40:57,780 - process_predelib_file - INFO - Failed student - ID: 20250479, Name: Reynders, Akira, SP: 0/60 +2025-09-04 11:40:57,782 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 11:40:57,782 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 11:40:57,783 - process_predelib_file - INFO - Failed student - ID: 20250623, Name: Vercammen, Evelyn, SP: 0/60 +2025-09-04 11:40:57,783 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,783 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,783 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,784 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,784 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,784 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,785 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 11:40:57,785 - process_predelib_file - INFO - Failed student - ID: 20250911, Name: Dène, Lander, SP: 0/60 +2025-09-04 11:40:57,785 - process_predelib_file - INFO - Failed student - ID: 20250977, Name: Gijsels, Jef, SP: 0/60 +2025-09-04 11:40:57,786 - process_predelib_file - INFO - Failed student - ID: 20251045, Name: Colignon, Marie, SP: 0/60 +2025-09-04 11:40:57,786 - process_predelib_file - INFO - Failed student - ID: 20251324, Name: De Zutter, Raven, SP: 0/60 +2025-09-04 11:40:57,786 - process_predelib_file - INFO - Failed student - ID: 20251344, Name: Baudouin, Lou, SP: 0/60 +2025-09-04 11:40:57,787 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:40:57,787 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:40:57,788 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:40:57,789 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 11:40:57,789 - process_predelib_file - INFO - Failed student - ID: 20251445, Name: De Beule, Fien, SP: 0/60 +2025-09-04 11:40:57,789 - process_predelib_file - INFO - Failed student - ID: 20251484, Name: Van Ende, Lore, SP: 0/60 +2025-09-04 11:40:57,790 - process_predelib_file - INFO - Failed student - ID: 20251877, Name: D'hondt, Jelte, SP: 0/60 +2025-09-04 11:40:57,790 - process_predelib_file - INFO - Failed student - ID: 20251936, Name: Aertgeerts, Lennert, SP: 0/60 +2025-09-04 11:40:57,790 - process_predelib_file - INFO - Failed student - ID: 20252006, Name: Berardocco, Alessandro, SP: 0/60 +2025-09-04 11:40:57,791 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,791 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,791 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,792 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,792 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,792 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,793 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 11:40:57,793 - process_predelib_file - INFO - Failed student - ID: 20252270, Name: Callens, Hannah, SP: 0/60 +2025-09-04 11:40:57,793 - process_predelib_file - INFO - Failed student - ID: 20252485, Name: Wauters, Anthony, SP: 0/60 +2025-09-04 11:40:57,794 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:40:57,794 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:40:57,794 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:40:57,795 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 11:40:57,795 - process_predelib_file - INFO - Failed student - ID: 20252609, Name: De Coninck, Marie, SP: 0/60 +2025-09-04 11:40:57,795 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:40:57,796 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:40:57,796 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:40:57,796 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:40:57,796 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 11:40:57,797 - process_predelib_file - INFO - Failed student - ID: 20252966, Name: Defrenne, Lars, SP: 0/60 +2025-09-04 11:40:57,798 - process_predelib_file - INFO - Failed student - ID: 20252968, Name: Rombouts, Marieke, SP: 0/60 +2025-09-04 11:40:57,798 - process_predelib_file - INFO - Failed student - ID: 20253071, Name: Hoffmann, Wouter, SP: 0/60 +2025-09-04 11:40:57,799 - process_predelib_file - INFO - Failed student - ID: 20253101, Name: De Vries, Flo, SP: 0/60 +2025-09-04 11:40:57,800 - process_predelib_file - INFO - Failed student - ID: 20253121, Name: Kiekens, Judith, SP: 0/60 +2025-09-04 11:40:57,800 - process_predelib_file - INFO - Failed student - ID: 20253210, Name: Saey, Hanne, SP: 0/60 +2025-09-04 11:40:57,800 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,801 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,801 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,801 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,802 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,802 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,803 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,803 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,803 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 11:40:57,804 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,804 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,804 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,805 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,805 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,805 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,806 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,806 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,806 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,806 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 11:40:57,807 - process_predelib_file - INFO - Failed student - ID: 20253697, Name: Vervoort, Jasper, SP: 0/60 +2025-09-04 11:40:57,807 - process_predelib_file - INFO - Failed student - ID: 20253725, Name: Jacobs, Jasmine, SP: 0/60 +2025-09-04 11:40:57,808 - process_predelib_file - INFO - Failed student - ID: 20253807, Name: De Weerdt, Jasper, SP: 0/60 +2025-09-04 11:40:57,808 - process_predelib_file - INFO - Failed student - ID: 20253822, Name: Van Reempts, Viktor, SP: 0/60 +2025-09-04 11:40:57,809 - process_predelib_file - INFO - Failed student - ID: 20254018, Name: Debra, Sam, SP: 0/60 +2025-09-04 11:40:57,809 - process_predelib_file - INFO - Failed student - ID: 20254021, Name: Thiry, Roeland, SP: 0/60 +2025-09-04 11:40:57,809 - process_predelib_file - INFO - Failed student - ID: 991978, Name: Bauwens, Bruno, SP: 0/60 +2025-09-04 11:40:57,810 - process_predelib_file - INFO - Starting check for students with mismatching SP values in the predeliberation file +2025-09-04 11:40:57,810 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 11:40:57,810 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 11:40:57,813 - process_predelib_file - INFO - Found 122 raw rows with mismatching SP values +2025-09-04 11:40:57,815 - process_predelib_file - INFO - Reduced from 122 rows to 43 unique students by ID +2025-09-04 11:40:57,819 - process_predelib_file - INFO - Returning 43 unique students with mismatching SP values +2025-09-04 11:40:57,820 - data_processor - INFO - Comparing SP values between files +2025-09-04 11:40:57,820 - compare_sp - INFO - Starting SP values comparison +2025-09-04 11:40:57,821 - compare_sp - INFO - All required columns found in both dataframes +2025-09-04 11:40:57,821 - compare_sp - DEBUG - Predelib ID column type: object +2025-09-04 11:40:57,822 - compare_sp - DEBUG - Dashboard ID column type: object +2025-09-04 11:40:57,822 - compare_sp - DEBUG - Sample predelib IDs: ['20240681', '20240681', '20240681', '20240681', '20240681'] +2025-09-04 11:40:57,823 - compare_sp - DEBUG - Sample dashboard IDs: ['20251936', '20252040', '20252376', '20251059', '20251344'] +2025-09-04 11:40:57,823 - compare_sp - INFO - Found 85 matching IDs between the two dataframes +2025-09-04 11:40:57,823 - compare_sp - INFO - Total predelib IDs: 85 +2025-09-04 11:40:57,824 - compare_sp - INFO - Total dashboard IDs: 85 +2025-09-04 11:40:57,825 - compare_sp - DEBUG - Mismatch found for ID 20253456: Predelib=60, Dashboard=66 +2025-09-04 11:40:57,836 - compare_sp - DEBUG - Mismatch found for ID 20253631: Predelib=57, Dashboard=60 +2025-09-04 11:40:57,842 - compare_sp - DEBUG - Mismatch found for ID 20252549: Predelib=21, Dashboard=72 +2025-09-04 11:40:57,851 - compare_sp - DEBUG - Mismatch found for ID 20251368: Predelib=21, Dashboard=33 +2025-09-04 11:40:57,861 - compare_sp - DEBUG - Mismatch found for ID 20250446: Predelib=57, Dashboard=63 +2025-09-04 11:40:57,864 - compare_sp - DEBUG - Mismatch found for ID 20253267: Predelib=45, Dashboard=39 +2025-09-04 11:40:57,875 - compare_sp - DEBUG - Mismatch found for ID 20250706: Predelib=39, Dashboard=45 +2025-09-04 11:40:57,877 - compare_sp - INFO - Successfully processed 85 matching records +2025-09-04 11:40:57,877 - compare_sp - WARNING - Found 7 mismatches +2025-09-04 11:40:57,877 - compare_sp - INFO - Mismatch - ID 20253456 (Lisa Vanbroekhoven): Predeliberatierapport SP=60, Dashboard Inschrijvingen SP=66 +2025-09-04 11:40:57,878 - compare_sp - INFO - Mismatch - ID 20253631 (Julian Wielandt): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=60 +2025-09-04 11:40:57,878 - compare_sp - INFO - Mismatch - ID 20252549 (Lin Wu): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=72 +2025-09-04 11:40:57,878 - compare_sp - INFO - Mismatch - ID 20251368 (Jarne Schruers): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=33 +2025-09-04 11:40:57,878 - compare_sp - INFO - Mismatch - ID 20250446 (Alexander Goossens): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=63 +2025-09-04 11:40:57,878 - compare_sp - INFO - Mismatch - ID 20253267 (Robin Weinhold): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=39 +2025-09-04 11:40:57,879 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 +2025-09-04 11:40:57,879 - data_processor - INFO - Processing completed successfully. +2025-09-04 11:40:57,896 - config - INFO - Processing completed with exit code: 1 +2025-09-04 13:22:07,576 - config - DEBUG - Verbose logging enabled +2025-09-04 13:22:07,578 - config - INFO - Starting startpakket processing +2025-09-04 13:22:07,578 - config - INFO - Predelib file: db.xlsx +2025-09-04 13:22:07,578 - config - INFO - Dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 13:22:07,579 - data_processor - INFO - Reading predeliberation file: db.xlsx +2025-09-04 13:22:11,560 - data_processor - INFO - Predelib file loaded successfully. Shape: (584, 44) +2025-09-04 13:22:11,560 - data_processor - INFO - Reading dashboard file: dashboard_inschrijvingen.xlsx +2025-09-04 13:22:11,591 - data_processor - INFO - Dashboard file loaded successfully. Shape: (88, 36) +2025-09-04 13:22:11,592 - data_processor - INFO - Processing predeliberation file headers +2025-09-04 13:22:11,600 - data_processor - INFO - Processing dashboard file headers +2025-09-04 13:22:11,601 - data_processor - INFO - Checking for students with FAIL status in predeliberation file +2025-09-04 13:22:11,601 - process_predelib_file - INFO - Starting failed students check +2025-09-04 13:22:11,601 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 13:22:11,602 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 13:22:11,602 - process_predelib_file - DEBUG - Adviesrapport code column type: object +2025-09-04 13:22:11,602 - process_predelib_file - DEBUG - Unique Adviesrapport codes: ['COMP' 'FAIL'] +2025-09-04 13:22:11,603 - process_predelib_file - INFO - Found 98 students with FAIL status +2025-09-04 13:22:11,605 - process_predelib_file - INFO - No duplicate rows found +2025-09-04 13:22:11,605 - process_predelib_file - INFO - Final count after duplicate removal: 98 students with FAIL status +2025-09-04 13:22:11,605 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,606 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,606 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,606 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,606 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,606 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,607 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,607 - process_predelib_file - DEBUG - Processed failed student: ID=20241180, Name=Verbecque, Lone +2025-09-04 13:22:11,607 - process_predelib_file - DEBUG - Processed failed student: ID=20245102, Name=de Beukelaar, Maurice +2025-09-04 13:22:11,607 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 13:22:11,607 - process_predelib_file - DEBUG - Processed failed student: ID=20250334, Name=van der Stappen, Stéphanie +2025-09-04 13:22:11,608 - process_predelib_file - DEBUG - Processed failed student: ID=20250444, Name=Boenders, Quinn +2025-09-04 13:22:11,608 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,609 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,609 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,609 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,609 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,610 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,610 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,610 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,611 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,611 - process_predelib_file - DEBUG - Processed failed student: ID=20250446, Name=Goossens, Alexander +2025-09-04 13:22:11,612 - process_predelib_file - DEBUG - Processed failed student: ID=20250479, Name=Reynders, Akira +2025-09-04 13:22:11,613 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 13:22:11,614 - process_predelib_file - DEBUG - Processed failed student: ID=20250539, Name=Hermans, Filip +2025-09-04 13:22:11,614 - process_predelib_file - DEBUG - Processed failed student: ID=20250623, Name=Vercammen, Evelyn +2025-09-04 13:22:11,615 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,616 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,616 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,617 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,617 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,618 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,618 - process_predelib_file - DEBUG - Processed failed student: ID=20250706, Name=Paraschivescu, Radu +2025-09-04 13:22:11,619 - process_predelib_file - DEBUG - Processed failed student: ID=20250911, Name=Dène, Lander +2025-09-04 13:22:11,619 - process_predelib_file - DEBUG - Processed failed student: ID=20250977, Name=Gijsels, Jef +2025-09-04 13:22:11,620 - process_predelib_file - DEBUG - Processed failed student: ID=20251045, Name=Colignon, Marie +2025-09-04 13:22:11,620 - process_predelib_file - DEBUG - Processed failed student: ID=20251324, Name=De Zutter, Raven +2025-09-04 13:22:11,620 - process_predelib_file - DEBUG - Processed failed student: ID=20251344, Name=Baudouin, Lou +2025-09-04 13:22:11,621 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 13:22:11,621 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 13:22:11,621 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 13:22:11,621 - process_predelib_file - DEBUG - Processed failed student: ID=20251368, Name=Schruers, Jarne +2025-09-04 13:22:11,622 - process_predelib_file - DEBUG - Processed failed student: ID=20251445, Name=De Beule, Fien +2025-09-04 13:22:11,622 - process_predelib_file - DEBUG - Processed failed student: ID=20251484, Name=Van Ende, Lore +2025-09-04 13:22:11,622 - process_predelib_file - DEBUG - Processed failed student: ID=20251877, Name=D'hondt, Jelte +2025-09-04 13:22:11,623 - process_predelib_file - DEBUG - Processed failed student: ID=20251936, Name=Aertgeerts, Lennert +2025-09-04 13:22:11,623 - process_predelib_file - DEBUG - Processed failed student: ID=20252006, Name=Berardocco, Alessandro +2025-09-04 13:22:11,623 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,624 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,624 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,624 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,624 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,625 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,625 - process_predelib_file - DEBUG - Processed failed student: ID=20252183, Name=Groenendijk, Robert +2025-09-04 13:22:11,625 - process_predelib_file - DEBUG - Processed failed student: ID=20252270, Name=Callens, Hannah +2025-09-04 13:22:11,625 - process_predelib_file - DEBUG - Processed failed student: ID=20252485, Name=Wauters, Anthony +2025-09-04 13:22:11,626 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 13:22:11,626 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 13:22:11,626 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 13:22:11,626 - process_predelib_file - DEBUG - Processed failed student: ID=20252549, Name=Wu, Lin +2025-09-04 13:22:11,627 - process_predelib_file - DEBUG - Processed failed student: ID=20252609, Name=De Coninck, Marie +2025-09-04 13:22:11,627 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 13:22:11,627 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 13:22:11,627 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 13:22:11,628 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 13:22:11,628 - process_predelib_file - DEBUG - Processed failed student: ID=20252694, Name=Mancel, Lynn +2025-09-04 13:22:11,629 - process_predelib_file - DEBUG - Processed failed student: ID=20252966, Name=Defrenne, Lars +2025-09-04 13:22:11,629 - process_predelib_file - DEBUG - Processed failed student: ID=20252968, Name=Rombouts, Marieke +2025-09-04 13:22:11,630 - process_predelib_file - DEBUG - Processed failed student: ID=20253071, Name=Hoffmann, Wouter +2025-09-04 13:22:11,631 - process_predelib_file - DEBUG - Processed failed student: ID=20253101, Name=De Vries, Flo +2025-09-04 13:22:11,631 - process_predelib_file - DEBUG - Processed failed student: ID=20253121, Name=Kiekens, Judith +2025-09-04 13:22:11,632 - process_predelib_file - DEBUG - Processed failed student: ID=20253210, Name=Saey, Hanne +2025-09-04 13:22:11,632 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,633 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,634 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,634 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,635 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,636 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,636 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,637 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,637 - process_predelib_file - DEBUG - Processed failed student: ID=20253267, Name=Weinhold, Robin +2025-09-04 13:22:11,637 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,638 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,638 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,638 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,639 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,639 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,639 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,640 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,640 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,640 - process_predelib_file - DEBUG - Processed failed student: ID=20253631, Name=Wielandt, Julian +2025-09-04 13:22:11,640 - process_predelib_file - DEBUG - Processed failed student: ID=20253697, Name=Vervoort, Jasper +2025-09-04 13:22:11,640 - process_predelib_file - DEBUG - Processed failed student: ID=20253725, Name=Jacobs, Jasmine +2025-09-04 13:22:11,642 - process_predelib_file - DEBUG - Processed failed student: ID=20253807, Name=De Weerdt, Jasper +2025-09-04 13:22:11,642 - process_predelib_file - DEBUG - Processed failed student: ID=20253822, Name=Van Reempts, Viktor +2025-09-04 13:22:11,642 - process_predelib_file - DEBUG - Processed failed student: ID=20254018, Name=Debra, Sam +2025-09-04 13:22:11,643 - process_predelib_file - DEBUG - Processed failed student: ID=20254021, Name=Thiry, Roeland +2025-09-04 13:22:11,643 - process_predelib_file - DEBUG - Processed failed student: ID=991978, Name=Bauwens, Bruno +2025-09-04 13:22:11,643 - process_predelib_file - INFO - Successfully processed 98 failed students +2025-09-04 13:22:11,643 - process_predelib_file - WARNING - Found 98 students with FAIL status +2025-09-04 13:22:11,643 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,644 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,644 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,644 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,644 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,644 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,645 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,645 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-04 13:22:11,645 - process_predelib_file - INFO - Failed student - ID: 20245102, Name: de Beukelaar, Maurice, SP: 0/60 +2025-09-04 13:22:11,645 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 13:22:11,646 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-04 13:22:11,647 - process_predelib_file - INFO - Failed student - ID: 20250444, Name: Boenders, Quinn, SP: 0/60 +2025-09-04 13:22:11,647 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,647 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,647 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,648 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,648 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,649 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,649 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,649 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,650 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,650 - process_predelib_file - INFO - Failed student - ID: 20250446, Name: Goossens, Alexander, SP: 57/60 +2025-09-04 13:22:11,650 - process_predelib_file - INFO - Failed student - ID: 20250479, Name: Reynders, Akira, SP: 0/60 +2025-09-04 13:22:11,651 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 13:22:11,651 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-04 13:22:11,652 - process_predelib_file - INFO - Failed student - ID: 20250623, Name: Vercammen, Evelyn, SP: 0/60 +2025-09-04 13:22:11,652 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,652 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,652 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,652 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,653 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,653 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,653 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-04 13:22:11,653 - process_predelib_file - INFO - Failed student - ID: 20250911, Name: Dène, Lander, SP: 0/60 +2025-09-04 13:22:11,654 - process_predelib_file - INFO - Failed student - ID: 20250977, Name: Gijsels, Jef, SP: 0/60 +2025-09-04 13:22:11,654 - process_predelib_file - INFO - Failed student - ID: 20251045, Name: Colignon, Marie, SP: 0/60 +2025-09-04 13:22:11,654 - process_predelib_file - INFO - Failed student - ID: 20251324, Name: De Zutter, Raven, SP: 0/60 +2025-09-04 13:22:11,654 - process_predelib_file - INFO - Failed student - ID: 20251344, Name: Baudouin, Lou, SP: 0/60 +2025-09-04 13:22:11,654 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251445, Name: De Beule, Fien, SP: 0/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251484, Name: Van Ende, Lore, SP: 0/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251877, Name: D'hondt, Jelte, SP: 0/60 +2025-09-04 13:22:11,655 - process_predelib_file - INFO - Failed student - ID: 20251936, Name: Aertgeerts, Lennert, SP: 0/60 +2025-09-04 13:22:11,656 - process_predelib_file - INFO - Failed student - ID: 20252006, Name: Berardocco, Alessandro, SP: 0/60 +2025-09-04 13:22:11,656 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,656 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,656 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,656 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,657 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,657 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,657 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-04 13:22:11,657 - process_predelib_file - INFO - Failed student - ID: 20252270, Name: Callens, Hannah, SP: 0/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252485, Name: Wauters, Anthony, SP: 0/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 21/60 +2025-09-04 13:22:11,658 - process_predelib_file - INFO - Failed student - ID: 20252609, Name: De Coninck, Marie, SP: 0/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-04 13:22:11,659 - process_predelib_file - INFO - Failed student - ID: 20252966, Name: Defrenne, Lars, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20252968, Name: Rombouts, Marieke, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20253071, Name: Hoffmann, Wouter, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20253101, Name: De Vries, Flo, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20253121, Name: Kiekens, Judith, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20253210, Name: Saey, Hanne, SP: 0/60 +2025-09-04 13:22:11,660 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,661 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,661 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,661 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,661 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,661 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,662 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,662 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,662 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-04 13:22:11,662 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,662 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,663 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,663 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,663 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,663 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,664 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,664 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,664 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20253697, Name: Vervoort, Jasper, SP: 0/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20253725, Name: Jacobs, Jasmine, SP: 0/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20253807, Name: De Weerdt, Jasper, SP: 0/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20253822, Name: Van Reempts, Viktor, SP: 0/60 +2025-09-04 13:22:11,665 - process_predelib_file - INFO - Failed student - ID: 20254018, Name: Debra, Sam, SP: 0/60 +2025-09-04 13:22:11,666 - process_predelib_file - INFO - Failed student - ID: 20254021, Name: Thiry, Roeland, SP: 0/60 +2025-09-04 13:22:11,666 - process_predelib_file - INFO - Failed student - ID: 991978, Name: Bauwens, Bruno, SP: 0/60 +2025-09-04 13:22:11,666 - process_predelib_file - INFO - Starting check for students with mismatching SP values in the predeliberation file +2025-09-04 13:22:11,666 - process_predelib_file - INFO - Predelib dataframe shape: (581, 22) +2025-09-04 13:22:11,666 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-04 13:22:11,667 - process_predelib_file - INFO - Found 122 raw rows with mismatching SP values +2025-09-04 13:22:11,668 - process_predelib_file - INFO - Reduced from 122 rows to 43 unique students by ID +2025-09-04 13:22:11,669 - process_predelib_file - INFO - Returning 43 unique students with mismatching SP values +2025-09-04 13:22:11,669 - data_processor - INFO - Comparing SP values between files +2025-09-04 13:22:11,669 - compare_sp - INFO - Starting SP values comparison +2025-09-04 13:22:11,670 - compare_sp - INFO - All required columns found in both dataframes +2025-09-04 13:22:11,670 - compare_sp - DEBUG - Predelib ID column type: object +2025-09-04 13:22:11,670 - compare_sp - DEBUG - Dashboard ID column type: object +2025-09-04 13:22:11,670 - compare_sp - DEBUG - Sample predelib IDs: ['20240681', '20240681', '20240681', '20240681', '20240681'] +2025-09-04 13:22:11,670 - compare_sp - DEBUG - Sample dashboard IDs: ['20251936', '20252040', '20252376', '20251059', '20251344'] +2025-09-04 13:22:11,672 - compare_sp - INFO - Found 85 matching IDs between the two dataframes +2025-09-04 13:22:11,672 - compare_sp - INFO - Total predelib IDs: 85 +2025-09-04 13:22:11,672 - compare_sp - INFO - Total dashboard IDs: 85 +2025-09-04 13:22:11,677 - compare_sp - DEBUG - Mismatch found for ID 20252549: Predelib=21, Dashboard=72 +2025-09-04 13:22:11,681 - compare_sp - DEBUG - Mismatch found for ID 20253631: Predelib=57, Dashboard=60 +2025-09-04 13:22:11,683 - compare_sp - DEBUG - Mismatch found for ID 20253456: Predelib=60, Dashboard=66 +2025-09-04 13:22:11,690 - compare_sp - DEBUG - Mismatch found for ID 20250446: Predelib=57, Dashboard=63 +2025-09-04 13:22:11,694 - compare_sp - DEBUG - Mismatch found for ID 20253267: Predelib=45, Dashboard=39 +2025-09-04 13:22:11,700 - compare_sp - DEBUG - Mismatch found for ID 20250706: Predelib=39, Dashboard=45 +2025-09-04 13:22:11,705 - compare_sp - DEBUG - Mismatch found for ID 20251368: Predelib=21, Dashboard=33 +2025-09-04 13:22:11,706 - compare_sp - INFO - Successfully processed 85 matching records +2025-09-04 13:22:11,706 - compare_sp - WARNING - Found 7 mismatches +2025-09-04 13:22:11,706 - compare_sp - INFO - Mismatch - ID 20252549 (Lin Wu): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=72 +2025-09-04 13:22:11,706 - compare_sp - INFO - Mismatch - ID 20253631 (Julian Wielandt): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=60 +2025-09-04 13:22:11,706 - compare_sp - INFO - Mismatch - ID 20253456 (Lisa Vanbroekhoven): Predeliberatierapport SP=60, Dashboard Inschrijvingen SP=66 +2025-09-04 13:22:11,707 - compare_sp - INFO - Mismatch - ID 20250446 (Alexander Goossens): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=63 +2025-09-04 13:22:11,707 - compare_sp - INFO - Mismatch - ID 20253267 (Robin Weinhold): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=39 +2025-09-04 13:22:11,707 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 +2025-09-04 13:22:11,707 - compare_sp - INFO - Mismatch - ID 20251368 (Jarne Schruers): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=33 +2025-09-04 13:22:11,707 - data_processor - INFO - Processing completed successfully. +2025-09-04 13:22:11,724 - config - INFO - Processing completed with exit code: 1 +2025-09-18 14:29:59,782 - config - INFO - Starting startpakket processing +2025-09-18 14:29:59,782 - config - INFO - Predelib file: db.xlsx +2025-09-18 14:29:59,783 - config - INFO - Dashboard file: dashboard_inschrijvingen.xlsx +2025-09-18 14:29:59,783 - data_processor - INFO - Reading predeliberation file: db.xlsx +2025-09-18 14:30:00,837 - data_processor - INFO - Predelib file loaded successfully. Shape: (798, 44) +2025-09-18 14:30:00,837 - data_processor - INFO - Reading dashboard file: dashboard_inschrijvingen.xlsx +2025-09-18 14:30:01,027 - data_processor - INFO - Dashboard file loaded successfully. Shape: (124, 36) +2025-09-18 14:30:01,027 - data_processor - INFO - Processing predeliberation file headers +2025-09-18 14:30:01,042 - data_processor - INFO - Processing dashboard file headers +2025-09-18 14:30:01,043 - data_processor - INFO - Checking for students with FAIL status in predeliberation file +2025-09-18 14:30:01,043 - process_predelib_file - INFO - Starting failed students check +2025-09-18 14:30:01,043 - process_predelib_file - INFO - Predelib dataframe shape: (795, 22) +2025-09-18 14:30:01,043 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-18 14:30:01,051 - process_predelib_file - INFO - Found 114 students with FAIL status +2025-09-18 14:30:01,057 - process_predelib_file - INFO - No duplicate rows found +2025-09-18 14:30:01,057 - process_predelib_file - INFO - Final count after duplicate removal: 114 students with FAIL status +2025-09-18 14:30:01,061 - process_predelib_file - INFO - Successfully processed 114 failed students +2025-09-18 14:30:01,062 - process_predelib_file - WARNING - Found 114 students with FAIL status +2025-09-18 14:30:01,062 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,062 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,063 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,063 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,064 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,065 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,066 - process_predelib_file - INFO - Failed student - ID: 20208170, Name: Ajlouni, Rubin, SP: 36/60 +2025-09-18 14:30:01,066 - process_predelib_file - INFO - Failed student - ID: 20235628, Name: Verbraeken, Mayte, SP: 30/60 +2025-09-18 14:30:01,067 - process_predelib_file - INFO - Failed student - ID: 20235628, Name: Verbraeken, Mayte, SP: 30/60 +2025-09-18 14:30:01,067 - process_predelib_file - INFO - Failed student - ID: 20235628, Name: Verbraeken, Mayte, SP: 30/60 +2025-09-18 14:30:01,067 - process_predelib_file - INFO - Failed student - ID: 20235628, Name: Verbraeken, Mayte, SP: 30/60 +2025-09-18 14:30:01,068 - process_predelib_file - INFO - Failed student - ID: 20235628, Name: Verbraeken, Mayte, SP: 30/60 +2025-09-18 14:30:01,068 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,069 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,069 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,070 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,070 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,071 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,071 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,071 - process_predelib_file - INFO - Failed student - ID: 20241180, Name: Verbecque, Lone, SP: 45/60 +2025-09-18 14:30:01,072 - process_predelib_file - INFO - Failed student - ID: 20245102, Name: de Beukelaar, Maurice, SP: 0/60 +2025-09-18 14:30:01,072 - process_predelib_file - INFO - Failed student - ID: 20247205, Name: Donckers, Thomas, SP: 9/60 +2025-09-18 14:30:01,073 - process_predelib_file - INFO - Failed student - ID: 20247205, Name: Donckers, Thomas, SP: 9/60 +2025-09-18 14:30:01,073 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-18 14:30:01,074 - process_predelib_file - INFO - Failed student - ID: 20250334, Name: van der Stappen, Stéphanie, SP: 12/60 +2025-09-18 14:30:01,074 - process_predelib_file - INFO - Failed student - ID: 20250485, Name: Vos, Mies, SP: 0/60 +2025-09-18 14:30:01,074 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-18 14:30:01,074 - process_predelib_file - INFO - Failed student - ID: 20250539, Name: Hermans, Filip, SP: 12/60 +2025-09-18 14:30:01,075 - process_predelib_file - INFO - Failed student - ID: 20250623, Name: Vercammen, Evelyn, SP: 0/60 +2025-09-18 14:30:01,075 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,075 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,075 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,076 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,076 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,076 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,077 - process_predelib_file - INFO - Failed student - ID: 20250706, Name: Paraschivescu, Radu, SP: 39/60 +2025-09-18 14:30:01,078 - process_predelib_file - INFO - Failed student - ID: 20250977, Name: Gijsels, Jef, SP: 0/60 +2025-09-18 14:30:01,078 - process_predelib_file - INFO - Failed student - ID: 20251045, Name: Colignon, Marie, SP: 0/60 +2025-09-18 14:30:01,078 - process_predelib_file - INFO - Failed student - ID: 20251344, Name: Baudouin, Lou, SP: 0/60 +2025-09-18 14:30:01,079 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-18 14:30:01,079 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-18 14:30:01,079 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-18 14:30:01,081 - process_predelib_file - INFO - Failed student - ID: 20251368, Name: Schruers, Jarne, SP: 21/60 +2025-09-18 14:30:01,081 - process_predelib_file - INFO - Failed student - ID: 20251445, Name: De Beule, Fien, SP: 0/60 +2025-09-18 14:30:01,081 - process_predelib_file - INFO - Failed student - ID: 20251484, Name: Van Ende, Lore, SP: 0/60 +2025-09-18 14:30:01,082 - process_predelib_file - INFO - Failed student - ID: 20251877, Name: D'hondt, Jelte, SP: 0/60 +2025-09-18 14:30:01,082 - process_predelib_file - INFO - Failed student - ID: 20252006, Name: Berardocco, Alessandro, SP: 0/60 +2025-09-18 14:30:01,083 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,083 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,084 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,084 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,084 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,084 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,086 - process_predelib_file - INFO - Failed student - ID: 20252183, Name: Groenendijk, Robert, SP: 39/60 +2025-09-18 14:30:01,086 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 27/60 +2025-09-18 14:30:01,087 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 27/60 +2025-09-18 14:30:01,087 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 27/60 +2025-09-18 14:30:01,087 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 27/60 +2025-09-18 14:30:01,087 - process_predelib_file - INFO - Failed student - ID: 20252549, Name: Wu, Lin, SP: 27/60 +2025-09-18 14:30:01,088 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-18 14:30:01,088 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-18 14:30:01,089 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-18 14:30:01,089 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-18 14:30:01,089 - process_predelib_file - INFO - Failed student - ID: 20252694, Name: Mancel, Lynn, SP: 30/60 +2025-09-18 14:30:01,090 - process_predelib_file - INFO - Failed student - ID: 20252966, Name: Defrenne, Lars, SP: 0/60 +2025-09-18 14:30:01,090 - process_predelib_file - INFO - Failed student - ID: 20252968, Name: Rombouts, Marieke, SP: 0/60 +2025-09-18 14:30:01,091 - process_predelib_file - INFO - Failed student - ID: 20253071, Name: Hoffmann, Wouter, SP: 0/60 +2025-09-18 14:30:01,091 - process_predelib_file - INFO - Failed student - ID: 20253121, Name: Kiekens, Judith, SP: 0/60 +2025-09-18 14:30:01,092 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,092 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,093 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,093 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,093 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,095 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,095 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,095 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,096 - process_predelib_file - INFO - Failed student - ID: 20253267, Name: Weinhold, Robin, SP: 45/60 +2025-09-18 14:30:01,096 - process_predelib_file - INFO - Failed student - ID: 20253271, Name: Van den Wouwer, Thorgal, SP: 0/60 +2025-09-18 14:30:01,097 - process_predelib_file - INFO - Failed student - ID: 20253388, Name: De Pauw, Free, SP: 0/60 +2025-09-18 14:30:01,098 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,098 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,099 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,099 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,100 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,100 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,101 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,101 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,102 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,102 - process_predelib_file - INFO - Failed student - ID: 20253631, Name: Wielandt, Julian, SP: 57/60 +2025-09-18 14:30:01,103 - process_predelib_file - INFO - Failed student - ID: 20253807, Name: De Weerdt, Jasper, SP: 0/60 +2025-09-18 14:30:01,103 - process_predelib_file - INFO - Failed student - ID: 20254018, Name: Debra, Sam, SP: 0/60 +2025-09-18 14:30:01,104 - process_predelib_file - INFO - Failed student - ID: 20254021, Name: Thiry, Roeland, SP: 0/60 +2025-09-18 14:30:01,104 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,105 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,105 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,106 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,106 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,106 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,108 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,108 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,108 - process_predelib_file - INFO - Failed student - ID: 20254125, Name: Avonts, Marijn, SP: 45/60 +2025-09-18 14:30:01,109 - process_predelib_file - INFO - Failed student - ID: 20254731, Name: Johri, Isra, SP: 0/60 +2025-09-18 14:30:01,109 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,109 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,109 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,110 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,110 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,110 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,111 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,111 - process_predelib_file - INFO - Failed student - ID: 20254777, Name: Kaur, Amanjot, SP: 45/60 +2025-09-18 14:30:01,111 - process_predelib_file - INFO - Failed student - ID: 20254809, Name: Ben Omar, Nihal, SP: 0/60 +2025-09-18 14:30:01,111 - process_predelib_file - INFO - Failed student - ID: 20254943, Name: Geeraerts, Delphine, SP: 0/60 +2025-09-18 14:30:01,112 - process_predelib_file - INFO - Failed student - ID: 20255014, Name: Geivaerts, Roos, SP: 0/60 +2025-09-18 14:30:01,112 - process_predelib_file - INFO - Failed student - ID: 20255069, Name: Lamberigts, Beau-Alexander, SP: 0/60 +2025-09-18 14:30:01,112 - process_predelib_file - INFO - Starting check for students with mismatching SP values in the predeliberation file +2025-09-18 14:30:01,113 - process_predelib_file - INFO - Predelib dataframe shape: (795, 22) +2025-09-18 14:30:01,113 - process_predelib_file - INFO - All required columns found in dataframe +2025-09-18 14:30:01,115 - process_predelib_file - INFO - Found 149 raw rows with mismatching SP values +2025-09-18 14:30:01,118 - process_predelib_file - INFO - Reduced from 149 rows to 42 unique students by ID +2025-09-18 14:30:01,119 - process_predelib_file - INFO - Returning 42 unique students with mismatching SP values +2025-09-18 14:30:01,120 - data_processor - INFO - Comparing SP values between files +2025-09-18 14:30:01,120 - compare_sp - INFO - Starting SP values comparison +2025-09-18 14:30:01,120 - compare_sp - INFO - All required columns found in both dataframes +2025-09-18 14:30:01,121 - compare_sp - INFO - Found 101 matching IDs between the two dataframes +2025-09-18 14:30:01,121 - compare_sp - INFO - Total predelib IDs: 101 +2025-09-18 14:30:01,121 - compare_sp - INFO - Total dashboard IDs: 121 +2025-09-18 14:30:01,157 - compare_sp - INFO - Successfully processed 101 matching records +2025-09-18 14:30:01,158 - compare_sp - WARNING - Found 28 mismatches +2025-09-18 14:30:01,158 - compare_sp - INFO - Mismatch - ID 20253388 (Free De Pauw): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=63 +2025-09-18 14:30:01,158 - compare_sp - INFO - Mismatch - ID 20255014 (Roos Geivaerts): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=66 +2025-09-18 14:30:01,158 - compare_sp - INFO - Mismatch - ID 20254943 (Delphine Geeraerts): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=57 +2025-09-18 14:30:01,158 - compare_sp - INFO - Mismatch - ID 20254731 (Isra Johri): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,158 - compare_sp - INFO - Mismatch - ID 20252966 (Lars Defrenne): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,159 - compare_sp - INFO - Mismatch - ID 20253271 (Thorgal Van den Wouwer): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,159 - compare_sp - INFO - Mismatch - ID 20253071 (Wouter Hoffmann): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,159 - compare_sp - INFO - Mismatch - ID 20254125 (Marijn Avonts): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,159 - compare_sp - INFO - Mismatch - ID 20253267 (Robin Weinhold): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,159 - compare_sp - INFO - Mismatch - ID 20254021 (Roeland Thiry): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,160 - compare_sp - INFO - Mismatch - ID 20250706 (Radu Paraschivescu): Predeliberatierapport SP=39, Dashboard Inschrijvingen SP=45 +2025-09-18 14:30:01,160 - compare_sp - INFO - Mismatch - ID 20251368 (Jarne Schruers): Predeliberatierapport SP=21, Dashboard Inschrijvingen SP=33 +2025-09-18 14:30:01,160 - compare_sp - INFO - Mismatch - ID 20251045 (Marie Colignon): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=30 +2025-09-18 14:30:01,160 - compare_sp - INFO - Mismatch - ID 20252006 (Alessandro Berardocco): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,161 - compare_sp - INFO - Mismatch - ID 20254777 (Amanjot Kaur): Predeliberatierapport SP=45, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,161 - compare_sp - INFO - Mismatch - ID 20252549 (Lin Wu): Predeliberatierapport SP=27, Dashboard Inschrijvingen SP=72 +2025-09-18 14:30:01,161 - compare_sp - INFO - Mismatch - ID 20250623 (Evelyn Vercammen): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,161 - compare_sp - INFO - Mismatch - ID 20253631 (Julian Wielandt): Predeliberatierapport SP=57, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,162 - compare_sp - INFO - Mismatch - ID 20251344 (Lou Baudouin): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,162 - compare_sp - INFO - Mismatch - ID 20250977 (Jef Gijsels): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,162 - compare_sp - INFO - Mismatch - ID 20247205 (Thomas Donckers): Predeliberatierapport SP=9, Dashboard Inschrijvingen SP=57 +2025-09-18 14:30:01,162 - compare_sp - INFO - Mismatch - ID 20252968 (Marieke Rombouts): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,163 - compare_sp - INFO - Mismatch - ID 20234407 (Ronan Linten): Predeliberatierapport SP=60, Dashboard Inschrijvingen SP=54 +2025-09-18 14:30:01,163 - compare_sp - INFO - Mismatch - ID 20253121 (Judith Kiekens): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,163 - compare_sp - INFO - Mismatch - ID 20254018 (Sam Debra): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=45 +2025-09-18 14:30:01,163 - compare_sp - INFO - Mismatch - ID 20251445 (Fien De Beule): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,165 - compare_sp - INFO - Mismatch - ID 20245102 (Maurice de Beukelaar): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,165 - compare_sp - INFO - Mismatch - ID 20253807 (Jasper De Weerdt): Predeliberatierapport SP=0, Dashboard Inschrijvingen SP=60 +2025-09-18 14:30:01,166 - data_processor - INFO - Processing completed successfully. +2025-09-18 14:30:01,185 - config - INFO - Processing completed with exit code: 1 diff --git a/startpakketten/todo.md b/startpakketten/todo.md index 0fe9883..e69de29 100644 --- a/startpakketten/todo.md +++ b/startpakketten/todo.md @@ -1,4 +0,0 @@ -extracurriculaire vakken komen niet uit de wizard. aparte excel voor nodig, nl dashboard inschrijvingen. -Voor de check of ze extra keuzevakken opnemen en de vereiste dus hoger moet komen te staan: vgl de kollomen Totaal aantal SP Aantal SP vereist - -deze kolom moet ook worden gechecked als ze eigenlijk minder opnemen; dus die moeten altijd aan elkaar gelijk zijn.