######################################## # -- Python Script für UCS Import -- # # -- by Patrick vom Hagen 2024 -- # ######################################## ############################################################### # IMPORT - standard Python imports für benötigte Bibliotheken # from src import step1, step3 import pandas as pd # pandas für Datenmanagement import chardet # chardet erkennt Formatierung - Umwandlung des erkannten Formats in UTF-8 import csv # zur Verarbeitung von .csv Dateien import uuid # zur Generierung von neuen UUIDs ############################# # Flags / globale Variablen # del_zeros = False # Boolean, ob führende Nullen bei Klassen entfernt werden sollen get_typos = False # Boolean, ob geringe Unterschiede zwischen den Listen ausgegeben werden sollen test_user = [] # Array in dem Spezialuser gespeichert und wieder eingefügt werden school_id = 'HL' # HL-Tag für Klassen ox_context = 0 # OX Context pro Schule mail_quota_lul = 2048 # MailUserQuota LuL ox_quota_lul = 20480 # oxUserQuota LuL mail_quota_sus = 1024 # MailUserQuota SuS ox_quota_sus = 5120 # oxUserQuota LuL ####################### # MAIN FUNCTION START # if __name__ == "__main__": print("Schul-IT UCS-Import Tool:") dev = True # ----------------------------------------------------------------- # # Step 1 - Dateien wählen, formatieren, einlesen | Variablen setzen # # ToDo Daten mit UI einlesen # lehrer_liste_neu = "./Data/SaM/export_lehrer_SaM.csv" lehrer_liste_neu = "./Data/Test/export_lehrer_202402121146.CSV" lehrer_liste_system = "./Data/SaM/sys_lehrer_SaM.csv" schueler_liste_neu = "./Data/SaM/export_schueler_SaM.csv" schueler_liste_system = "./Data/SaM/sys_schueler_SaM.csv" # Variablen füllen: if not dev: school_id = "HL070" + input("Schul-ID eingeben HL070:") ox_context = input("OX-Context der Schule eingeben:") if input("Klassen mit führenden Nullen? (y/n) ").lower() == "y": del_zeros = False else: del_zeros = True print("Schul ID:", school_id, "OX-Context:", ox_context, "Nullen:", del_zeros) lul_new = step1.check_export_file(lehrer_liste_neu) print("Spalten der Import Liste - Lehrer:", lul_new.columns) lul_sys = step1.create_dataframe_system(lehrer_liste_system) sus_new = step1.check_export_file(schueler_liste_neu) print("Spalten der Import Liste - Schüler:", sus_new.columns) sus_sys = step1.create_dataframe_system(schueler_liste_system) # Test- und Funktionsuser auslagern keywords = 'Test' lul_testuser_df = step1.extract_testusers(lul_sys, keywords) # sus_testuser_df = step1.extract_testusers(sus_sys, keywords) # in Datasets aufteilen - Testuser, Abgleich, UUIDs # ---------------------------------------------------- # # Step 2 - auf name, vorname reduzieren und abgleichen # # 2.1 Data Frames für Abgleich erstellen # 2.2 Datei mit gesamten Anzahlen generieren und füllen # 2.3 Nicht zuordnungsbare bzw. neue Einträge nach Abweichung zur Bestandsliste prüfen und ausgeben # UUIDs zwischenspeichern? # Step 3 - Import Data generieren - klasse, uuids, weiteres in einer Liste zusammenführen # Lul: Namen + UUIDs + Testuser lul_import = step3.add_school_data(lul_sys, school_id, ox_context, mail_quota_lul, ox_quota_lul) # SuS: Namen + UUIDs + Klassen + Testuser sus_import = step3.add_school_data(sus_sys, school_id, ox_context, mail_quota_sus, ox_quota_sus)