From 892449985183af48355727fc66c06142e7a57275 Mon Sep 17 00:00:00 2001 From: Patrick vom Hagen Date: Tue, 25 Jun 2024 16:04:31 +0200 Subject: [PATCH] small improvements --- main.py | 12 +++++++----- src/generate_commands.py | 12 ++++++++++++ src/merge_xlsx_sheets.py | 3 ++- src/step2.py | 8 ++++---- src/step3.py | 2 ++ 5 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 src/generate_commands.py diff --git a/main.py b/main.py index a0ea529..34dd086 100644 --- a/main.py +++ b/main.py @@ -39,24 +39,26 @@ if __name__ == "__main__": # Erstellt oder löscht Inhalte vorhandener Logdatei und loggt Konsolenausgaben log_file_path = 'output/log.txt' + import_command_path = 'output/import_command.txt' if os.path.exists(log_file_path): open(log_file_path, 'w').close() sys.stdout = Logger.Logger(log_file_path) print("Schul-IT UCS-Import Tool:\n") - dev = True # CHANGE to "False" FOR PRODUCTION RUN <------ + dev = False # CHANGE to "False" FOR PRODUCTION RUN <------ # ----------------------------------------------------------------- # # 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/GKS/exportLuL.csv" - lehrer_liste_system = "./Data//GKS/systemLuL.csv" + school_folder = "Lauerholz" + lehrer_liste_neu = f"./Data/{school_folder}/export_lul.csv" + lehrer_liste_system = f"./Data//{school_folder}/sys_lul.csv" lul_out_path = 'output/outputLehrer.csv' - schueler_liste_neu = "./Data/GKS/exportSuS.csv" - schueler_liste_system = "./Data/GKS/systemSuS.csv" + schueler_liste_neu = f"./Data/{school_folder}/export_sus.csv" + schueler_liste_system = f"./Data/{school_folder}/sys_sus.csv" sus_out_path = 'output/outputSchueler.csv' # Variablen füllen: diff --git a/src/generate_commands.py b/src/generate_commands.py new file mode 100644 index 0000000..a60b5ef --- /dev/null +++ b/src/generate_commands.py @@ -0,0 +1,12 @@ +def generate_commands(path, sid, context, short): + with open(path, 'w') as file: + file.write(f'sudo /usr/share/ucs-school-import/scripts/ucs-school-user-import --dry-run ' + f'--infile outputSchueler.csv --school HL070{sid} --source_uid hl070{sid}-student ' + f'--user_role student 2>&1 | tee schueler-import.log \n') + + file.write(f'/usr/share/ucs-school-import/scripts/ucs-school-user-import --dry-run ' + f'--infile outputLehrer.csv --school HL070{sid} --source_uid hl070{sid}-teacher ' + f'--user_role teacher 2>&1 | tee lehrer-import.log') + + file.write('# Ohne Dry Run ausführen') + file.write('# Summary kopieren (sudo cp .)') diff --git a/src/merge_xlsx_sheets.py b/src/merge_xlsx_sheets.py index f0b4fb3..cb0e7be 100644 --- a/src/merge_xlsx_sheets.py +++ b/src/merge_xlsx_sheets.py @@ -1,11 +1,12 @@ import pandas as pd # Laden Sie die Excel-Datei mit mehreren Seiten -excel_file = pd.ExcelFile('C:/Users/Patrick vom Hagen/Documents/Import/GKS/GKS_alle SuS.xls') +excel_file = pd.ExcelFile('C:/Users/Patrick vom Hagen/Documents/Import/Falkenfled/Schüler und Schülerinnen gesamt.xls') dfs = [] for sheet_name in excel_file.sheet_names: df = excel_file.parse(sheet_name, skiprows=1) # Überspringen Sie die ersten beiden Zeilen + df['SheetName'] = sheet_name dfs.append(df) # Zusammenführen der einzelnen DataFrames zu einem diff --git a/src/step2.py b/src/step2.py index 74a3cdd..062d1e6 100644 --- a/src/step2.py +++ b/src/step2.py @@ -3,8 +3,8 @@ from Levenshtein import distance def compare_data(new, sys, count_test): - print(f"\nEinträge in Import Liste: {len(new)}") - print(f"Einträge in System Liste: {len(sys)}") + print(f"\nEinträge in System Liste: {len(sys)}") + print(f"Einträge in Import Liste: {len(new)}") bool_class = 'klasse' in new.columns @@ -45,6 +45,6 @@ def search_typos(new, sys): def print_status(matches, new, old, count_test): - print("\nAnzahl Übereinstimmungen:", len(matches) + count_test) - print("Anzahl neuer Nutzer:", len(new)) + print("\nAnzahl neuer Nutzer:", len(new)) + print("Anzahl Übereinstimmungen:", len(matches) + count_test) print("Anzahl veralteter Nutzer:", len(old) - count_test) diff --git a/src/step3.py b/src/step3.py index bca6620..700fd3a 100644 --- a/src/step3.py +++ b/src/step3.py @@ -8,6 +8,7 @@ def create_uuid(): def add_hl_tag(sid, row): klasse = str(row['klasse']) + klasse = klasse.lstrip('0').lower() if klasse != 'nan': return sid + '-' + klasse @@ -34,6 +35,7 @@ def create_output_list(name, new, matched, dev, sid, oxc, mail_q, oxq, testuser, df = merch_uuids(new, matched, dev) df = add_school_data(df, sid, oxc, mail_q, oxq) df = pd.concat([df, testuser], ignore_index=True) + df = df[['name', 'vorname', 'klasse', 'schuelerid', 'mailUserQuota', 'oxUserQuota', 'oxContext']] print(f"\n{len(testuser)} Testuser angefügt - {len(df)} Einträge in {name} Liste") df.to_csv(out_path, sep=';', index=False) print(f"{name} Import CSV unter {out_path} erfolgreich erstellt!")