Kursliste hinzugefügt

This commit is contained in:
Daniel Spittank 2023-01-22 20:20:31 +01:00
parent 7a13310703
commit 2a45988156

View File

@ -11,10 +11,12 @@ import csv
# Schuljahr # Schuljahr
schuljahr='22' schuljahr='22'
categoryid='17'
# Ergebnisspeicher # Ergebnisspeicher
members = [] members = []
maxgroups = 0 maxkurse = 0
allekurse = []
# Kollegium einlesen # Kollegium einlesen
with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f: with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
@ -38,14 +40,20 @@ with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
gt = row['Alle Gruppen'].split(',') gt = row['Alle Gruppen'].split(',')
# Gruppen filtern # Gruppen filtern
gruppen = list(filter(lambda g: g.startswith('Kurs') or g.startswith('Klasse'), gt)) gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_'), gt))
# Gruppen ins Format von Moodle bringen # Gruppen ins Format von Moodle bringen und Gruppen sammeln
for i, g in enumerate(gruppen): for i, g in enumerate(gruppen):
p['course' + str(i+1)] = schuljahr + '_' + g p['course' + str(i+1)] = schuljahr + '_' + g
p['role' + str(i+1)] = 'editingteacher' p['role' + str(i+1)] = 'editingteacher'
maxgroups = max(maxgroups, len(gruppen)) # Kurse sammeln
if g not in allekurse:
allekurse.append(g)
# Anzahl der maximalen Gruppen pro Person merken
maxkurse = max(maxkurse, len(gruppen))
# Person zur Liste hinzfügen # Person zur Liste hinzfügen
members.append(p) members.append(p)
@ -71,19 +79,24 @@ with open('Export_SuS.csv', 'r', encoding='utf-8-sig') as f:
gt = row['Alle Gruppen'].split(',') gt = row['Alle Gruppen'].split(',')
# Gruppen filtern # Gruppen filtern
gruppen = list(filter(lambda g: g.startswith('Kurs') or g.startswith('Klasse'), gt)) gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_'), gt))
# Gruppen ins Format von Moodle bringen # Gruppen ins Format von Moodle bringen und Gruppen sammeln
for i, g in enumerate(gruppen): for i, g in enumerate(gruppen):
p['course' + str(i+1)] = schuljahr + '_' + g p['course' + str(i+1)] = schuljahr + '_' + g
p['role' + str(i+1)] = 'student' p['role' + str(i+1)] = 'student'
maxgroups = max(maxgroups, len(gruppen)) # Kurse sammeln
if g not in allekurse:
allekurse.append(g)
maxkurse = max(maxkurse, len(gruppen))
# Person zur Liste hinzfügen # Person zur Liste hinzfügen
members.append(p) members.append(p)
# Moodle-Importdatei schreiben # Moodle-Importdatei für User schreiben
with open('import.csv', 'w', encoding='utf-8-sig') as f: with open('Import_Users.csv', 'w', encoding='utf-8-sig') as f:
# CSV DictWriter anlegen # CSV DictWriter anlegen
fieldnames = [ fieldnames = [
'username', 'username',
@ -95,7 +108,7 @@ with open('import.csv', 'w', encoding='utf-8-sig') as f:
'idnumber', 'idnumber',
'password'] 'password']
for i in range(1,maxgroups+1): for i in range(1,maxkurse+1):
fieldnames.append("course" + str(i)) fieldnames.append("course" + str(i))
fieldnames.append("role" + str(i)) fieldnames.append("role" + str(i))
@ -105,3 +118,24 @@ with open('import.csv', 'w', encoding='utf-8-sig') as f:
cw.writeheader() cw.writeheader()
for p in members: for p in members:
cw.writerow(p) cw.writerow(p)
# Moodle-Importdatei für Kurse schreiben
with open('Import_Courses.csv', 'w', encoding='utf-8-sig') as f:
# CSV DictWriter anlegen
fieldnames = [
'shortname',
'fullname',
'category',
'visible']
cw = csv.DictWriter(f, delimiter=';', fieldnames=fieldnames)
# Datei schreiben
cw.writeheader()
for c in allekurse:
cw.writerow({
'shortname' : schuljahr + '_' + c,
'fullname' : schuljahr + '_' + c,
'category' : categoryid,
'visible' : '1'
})