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_Klasse | Klasse (oder Kollegium) | hieraus wird die globale Gruppe
|
||||||
profile_field_Lehrer_in | 0 oder 1 | für Lehrer*innen 1
|
profile_field_Lehrer_in | 0 oder 1 | für Lehrer*innen 1
|
||||||
idnumber | Import-ID | nicht notwendig, oft leer
|
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
|
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*
|
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*
|
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
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
# Konvertiere IServ-Gruppenlisten in Moodle-Importdateien
|
# 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
|
# Lizenz: GPLv3
|
||||||
|
|
||||||
# Importe
|
# Importe
|
||||||
|
@ -10,8 +10,31 @@ from pprint import pprint
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
# Schuljahr
|
# Schuljahr
|
||||||
schuljahr='22'
|
schuljahr='24'
|
||||||
categoryid='17'
|
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
|
# Ergebnisspeicher
|
||||||
members = []
|
members = []
|
||||||
|
@ -21,7 +44,7 @@ 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:
|
||||||
# CSV einlesen
|
# CSV einlesen
|
||||||
cr = csv.DictReader(f, delimiter=';', lineterminator='\n')
|
cr = csv.DictReader(f, delimiter=',', lineterminator='\n')
|
||||||
|
|
||||||
for row in cr:
|
for row in cr:
|
||||||
# Person erstellen
|
# Person erstellen
|
||||||
|
@ -40,7 +63,10 @@ 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))
|
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
|
# Gruppen ins Format von Moodle bringen und Gruppen sammeln
|
||||||
for i, g in enumerate(gruppen):
|
for i, g in enumerate(gruppen):
|
||||||
|
@ -60,7 +86,7 @@ with open('Export_Kollegium.csv', 'r', encoding='utf-8-sig') as f:
|
||||||
# SuS einlesen
|
# SuS einlesen
|
||||||
with open('Export_SuS.csv', 'r', encoding='utf-8-sig') as f:
|
with open('Export_SuS.csv', 'r', encoding='utf-8-sig') as f:
|
||||||
# CSV einlesen
|
# CSV einlesen
|
||||||
cr = csv.DictReader(f, delimiter=';', lineterminator='\n')
|
cr = csv.DictReader(f, delimiter=',', lineterminator='\n')
|
||||||
|
|
||||||
for row in cr:
|
for row in cr:
|
||||||
# Person erstellen
|
# Person erstellen
|
||||||
|
@ -79,7 +105,10 @@ 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))
|
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
|
# Gruppen ins Format von Moodle bringen und Gruppen sammeln
|
||||||
for i, g in enumerate(gruppen):
|
for i, g in enumerate(gruppen):
|
||||||
|
|
Loading…
Reference in a new issue