Filter für Gruppen hinzugefügt
This commit is contained in:
parent
2a45988156
commit
d45fe67b49
2 changed files with 37 additions and 8 deletions
|
@ -26,7 +26,7 @@ email | IServ-Mailadresse | i.d.R. username@iserv-instanz
|
|||
profile_field_Klasse | Klasse (oder Kollegium) | hieraus wird die globale Gruppe
|
||||
profile_field_Lehrer_in | 0 oder 1 | für Lehrer*innen 1
|
||||
idnumber | Import-ID | nicht notwendig, oft leer
|
||||
password | oauth2 | WICHTIG, sonst kein Login möglichMoodle | IServ | Kommentar
|
||||
password | oauth2 | WICHTIG, sonst kein Login möglich
|
||||
course1..X | Gruppen | In Moodle eine Spalte je Kurs, in IServ kommasepariert in einer Spalte
|
||||
role1..X | n.V. | Rolle im Kurs, i.d.R. *editingteacher* oder *student*
|
||||
sysrole1..X | n.V. | Rolle im System evtl. sinvoll für Lehrkräfte: *coursecreator*
|
||||
|
|
43
convert.py
43
convert.py
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# Konvertiere IServ-Gruppenlisten in Moodle-Importdateien
|
||||
# 2022 by Daniel Spittank, daniel.spittank@gymsedan.de
|
||||
# 2022-2024 by Daniel Spittank, daniel.spittank@gymsedan.de
|
||||
# Lizenz: GPLv3
|
||||
|
||||
# Importe
|
||||
|
@ -10,8 +10,31 @@ from pprint import pprint
|
|||
import csv
|
||||
|
||||
# Schuljahr
|
||||
schuljahr='22'
|
||||
categoryid='17'
|
||||
schuljahr='24'
|
||||
categoryid='2'
|
||||
|
||||
# Gruppenfilter
|
||||
filter_gruppen_entfernen = ['11','12','13','14','15','16','17','18','19','20','21','22','23']
|
||||
|
||||
gruppen_vorgeben = True
|
||||
filter_gruppen_ausschliesslich = [
|
||||
'Klasse_08C',
|
||||
'Klasse_08C_PK',
|
||||
'Kurs_10_IFR2',
|
||||
'Kurs_09_IFR2',
|
||||
'Kurs_EF_IF_G1',
|
||||
'Kurs_EF_IF_G2',
|
||||
'Kurs_Q2_IF_G1',
|
||||
'Kurs_Q2_IF_G2',
|
||||
'Klasse_09A_E5',
|
||||
'Klasse_09B_E5',
|
||||
'Klasse_09C_E5',
|
||||
'Kurs_07_ER1',
|
||||
'Kurs_09_ER1',
|
||||
'Kurs_10_ER1',
|
||||
'Kurs_Q1_ER_G1',
|
||||
'Klasse_06A_IF'
|
||||
]
|
||||
|
||||
# Ergebnisspeicher
|
||||
members = []
|
||||
|
@ -21,7 +44,7 @@ allekurse = []
|
|||
# Kollegium einlesen
|
||||
with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
|
||||
# CSV einlesen
|
||||
cr = csv.DictReader(f, delimiter=';', lineterminator='\n')
|
||||
cr = csv.DictReader(f, delimiter=',', lineterminator='\n')
|
||||
|
||||
for row in cr:
|
||||
# Person erstellen
|
||||
|
@ -40,7 +63,10 @@ with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
|
|||
gt = row['Alle Gruppen'].split(',')
|
||||
|
||||
# Gruppen filtern
|
||||
gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_'), gt))
|
||||
if gruppen_vorgeben:
|
||||
gruppen = list(filter(lambda g: g in filter_gruppen_ausschliesslich, gt))
|
||||
else:
|
||||
gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_') and not any(fg in g for fg in filter_gruppen_entfernen), gt))
|
||||
|
||||
# Gruppen ins Format von Moodle bringen und Gruppen sammeln
|
||||
for i, g in enumerate(gruppen):
|
||||
|
@ -60,7 +86,7 @@ with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
|
|||
# SuS einlesen
|
||||
with open('Export_SuS.csv', 'r', encoding='utf-8-sig') as f:
|
||||
# CSV einlesen
|
||||
cr = csv.DictReader(f, delimiter=';', lineterminator='\n')
|
||||
cr = csv.DictReader(f, delimiter=',', lineterminator='\n')
|
||||
|
||||
for row in cr:
|
||||
# Person erstellen
|
||||
|
@ -79,7 +105,10 @@ with open('Export_SuS.csv', 'r', encoding='utf-8-sig') as f:
|
|||
gt = row['Alle Gruppen'].split(',')
|
||||
|
||||
# Gruppen filtern
|
||||
gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_'), gt))
|
||||
if gruppen_vorgeben:
|
||||
gruppen = list(filter(lambda g: g in filter_gruppen_ausschliesslich, gt))
|
||||
else:
|
||||
gruppen = list(filter(lambda g: g.startswith('Kurs_') or g.startswith('Klasse_') and not any(fg in g for fg in filter_gruppen_entfernen), gt))
|
||||
|
||||
# Gruppen ins Format von Moodle bringen und Gruppen sammeln
|
||||
for i, g in enumerate(gruppen):
|
||||
|
|
Loading…
Reference in a new issue