diff --git a/eindwerken ba controle/main.py b/eindwerken ba controle/main.py new file mode 100644 index 0000000..ea2fc78 --- /dev/null +++ b/eindwerken ba controle/main.py @@ -0,0 +1,32 @@ + +import pandas as pd + +promotor_assessor = { + "De Munck": ["De Groot"], + "Gelderblom": ["Van Laer"], + "Blondé": ["Schepers", "Kole"], + "Puttevils": ["Heijmans"], + "Greefs": ["Tanis"], + "Wynants": ["Samoy", "Welslau"] +} + +df = pd.read_excel('sisa.xlsx', sheet_name='sheet1') + +for idx, row in df.iterrows(): + promotor_cell = str(row.get('Promotor', '')).strip() + assessors_cell = [a.strip() for a in str(row.get('Assessor(en)', '')).split(',')] + matched_promotor = None + for key in promotor_assessor: + if key in promotor_cell or promotor_cell in key: + matched_promotor = key + break + if matched_promotor: + expected = promotor_assessor[matched_promotor] + missing = [] + for e in expected: + if not any(e in a or a in e for a in assessors_cell): + missing.append(e) + if missing: + print(f"Row {idx+1}: ERROR: Expected assessors {expected}, found {assessors_cell}") + +print("Check completed successfully.") \ No newline at end of file diff --git a/eindwerken ma controle/eindwerken controle/main.py b/eindwerken ma controle/eindwerken controle/main.py new file mode 100644 index 0000000..a98701a --- /dev/null +++ b/eindwerken ma controle/eindwerken controle/main.py @@ -0,0 +1,32 @@ +import pandas as pd +import openpyxl + + + + +sisa_file = pd.read_excel("sisa file.xlsx", sheet_name="Sheet1") +reinoud_file = pd.read_excel("reinoud file.xlsx", sheet_name="Sheet1") + + +sisa_file["Promotor"] = sisa_file["Promotor"].str.rsplit(" ", n=1).str[0] + +sisa_file["Full Name"] = sisa_file["Achternaam"] + " " + sisa_file["Voornaam"] + +# Step 3: Check if the Full Name exists in the Naam column of the reinoud file +merged = sisa_file.merge(reinoud_file, left_on="Full Name", right_on="Naam", how="inner") + +# Step 4: Find divergent Promotor values +divergent_promotors = merged[merged["Promotor_x"] != merged["Promotor_y"]] + +# Step 5: Check if Assessor(en) contains Lector 1 and Lector 2 +def check_assessors(row): + assessors = row["Assessor(en)"] + return all(lector in assessors for lector in [row["Lector 1"], row["Lector 2"]]) + +merged["Assessors Match"] = merged.apply(check_assessors, axis=1) + +# Save results +divergent_promotors.to_excel("divergent_promotors.xlsx", index=False) +merged.to_excel("merged_results.xlsx", index=False) + +print("Processing complete. Results saved.") \ No newline at end of file diff --git a/examen grote lokalen/main.py b/examen grote lokalen/main.py index a3ff496..e829334 100644 --- a/examen grote lokalen/main.py +++ b/examen grote lokalen/main.py @@ -2,7 +2,7 @@ import pandas as pd # Constants FILE_PATH = 'file.xlsx' -SHEET_NAME = 'ps (32)' +SHEET_NAME = 'ps (53)' OUTPUT_FILE_PATH = 'filtered_grote_lokalen.xlsx' EXAM_FORM_COLUMN = 'Examenvorm' REGISTRATION_COLUMN = 'Aant. inschr.' @@ -10,6 +10,7 @@ BEGIN_TIME_COLUMN = 'Beginuur S+' END_TIME_COLUMN = 'Einduur S+' TEACHERS_COLUMN = 'Docenten' LOCATION_COLUMNS = ['Datum S+', BEGIN_TIME_COLUMN, END_TIME_COLUMN, 'Studiegidsnr.', 'Omschrijving', TEACHERS_COLUMN, REGISTRATION_COLUMN] +AANTAL_STUDENTEN = 65 # Read the Excel file def read_excel(file_path, sheet_name): @@ -18,7 +19,7 @@ def read_excel(file_path, sheet_name): # Filter DataFrame def filter_dataframe(df): df = df[df[EXAM_FORM_COLUMN] == 'Schriftelijk'] - df = df[df[REGISTRATION_COLUMN] > 65] + df = df[df[REGISTRATION_COLUMN] > AANTAL_STUDENTEN] return df[LOCATION_COLUMNS] # Format time strings diff --git a/link-weaver-dashboard-view b/link-weaver-dashboard-view new file mode 160000 index 0000000..846d0f6 --- /dev/null +++ b/link-weaver-dashboard-view @@ -0,0 +1 @@ +Subproject commit 846d0f6fb41ee880bef7acae427f744c2fffc8df diff --git a/random/archief/examenrooster pre-syllabus (2).xls b/random/archief/examenrooster pre-syllabus (2).xls new file mode 100644 index 0000000..9694617 --- /dev/null +++ b/random/archief/examenrooster pre-syllabus (2).xls @@ -0,0 +1,231 @@ + + + +
Studiegidsnr. | Omschrijving | Docenten | SP | Aant. inschr. | Examenvorm | Tijdslots aanvr.SSS | Examen groep | Aant. stdnt. gr. | Datum S+ | Beginuur S+ | Einduur S+ | Facilitieit S+ | Code examenrooster | Extra info voor studenten |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2002FLWGES | +Historisch atelier | +Titularis Beyen,Marnix | +6,00 | +2 | +Mondeling | +N | +1 | +2 | +22/08/2025 | +09:00 | +13:00 | ++ | 2002FLWGES7852_224003_M1_1 | ++ |
2004FLWGES | +Theorie van de hist. kennis | +Titularis De Munck,Bert | +6,00 | +8 | +Mondeling | +N | +1 | +8 | +25/08/2025 | +08:30 | +12:30 | ++ | 2004FLWGES8023_224003_M1_1 | ++ |
2013FLWGES | +Landschapsgeschiedenis | +Titularis Soens,Tim - Titularis Jongepier,Iason | +6,00 | +2 | +Mondeling | +N | +1 | +2 | +21/08/2025 | +14:00 | +17:00 | ++ | 2013FLWGES1238_224003_M1_1 | ++ |
2064FLWGES | +Politieke Geschiedenis: thema | +Titularis de Smaele,Henk | +6,00 | +3 | +Mondeling | +N | +1 | +3 | ++ | + | + | + | 2064FLWGES16077_224003_M1_1 | +niet roosteren, studenten vragen docenten te contacteren | +
2041FLWGES | +Theorie en gesch stedenbouw | +Titularis De Block,Greet | +6,00 | +2 | +Mondeling | +N | +1 | +2 | +01/09/2025 | +09:30 | +12:00 | ++ | 2041FLWGES15506_224003_M1_1 | ++ |
2066FLWGES | +War and Occupation Middle East | +Co-Titularis Sayim,Burak Titularis Shaery-Yazdi,Roschanack Titularis Beyen,Marnix |
+6,00 | ++ | Mondeling | +N | +1 | ++ | + | + | + | + | 2066FLWGES16110_224003_M1_2 | ++ |
2046FLWGES | +Stage Cultureel Erfgoed | +Titularis Delsaerdt,Pierre | +6,00 | ++ | Mondeling | +N | +1 | ++ | + | + | + | + | 2046FLWGES15618_224003_M1_1 | ++ |
2053FLWGES | +Urban History and Theory | +Titularis Van Damme,Ilja | +6,00 | +1 | +Mondeling | +N | +1 | +1 | +02/09/2025 | +09:00 | +12:30 | ++ | 2053FLWGES15754_224003_M1_1 | ++ |
2063FLWGES | +Cultureel erfgoed | +Titularis Shaery-Yazdi,Roschanack - Titularis De Roo,Bas | +6,00 | +1 | +Mondeling | +N | +1 | +1 | +04/09/2025 | +10:00 | +12:30 | ++ | 2063FLWGES16071_224003_M1_1 | ++ |
2066FLWGES | +War and Occupation Middle East | +Co-Titularis Sayim,Burak Titularis Shaery-Yazdi,Roschanack Titularis Beyen,Marnix |
+6,00 | ++ | PC examen | +N | +1 | ++ | + | + | + | + | 2066FLWGES16110_224003_D1_1 | ++ |
2065FLWGES | +Cultureel erfgoed | +Titularis Delsaerdt,Pierre | +6,00 | ++ | Schriftelijk | +N | +1 | ++ | + | + | + | + | 2065FLWGES16091_224003_S1_1 | ++ |
2045FLWGES | +Masterproef | +Co-Titularis Vermoesen,Reinoud - Titularis NNB,- - Medewerker NNB, | +18,00 | +18 | +Schriftelijk | +N | +1 | +18 | +18/08/2025 | +09:00 | +16:00 | ++ | 2045FLWGES15597_224003_S1_1 | ++ |
2023FLWGES | +Hist Body, Gender, Sexuality | +Titularis de Smaele,Henk | +6,00 | +3 | +Schriftelijk | +N | +1 | +3 | +28/08/2025 | +13:30 | +16:30 | ++ | 2023FLWGES15226_224003_S1_1 | ++ |
2073FLWGES | +Joodse Geschiedenis NT | +Titularis Dunkelgrün,Theodor | +6,00 | +1 | +Schriftelijk | +N | +1 | +1 | +26/08/2025 | +08:00 | +12:00 | ++ | 2073FLWGES16177_224003_S1_1 | ++ |