Hallo.
Ich wüsste gerne, ob es (relativ einfach) möglich ist, die AD-Struktur um eine Gruppe zu erweitern, die die Möglichkeit bietet, sämtliche Fachlehrer einer Klasse abzurufen? Diese Information steht über das Stundenplanprogramm (bei uns Untis) ja zur Verfügung und es wäre für viele Anwendungen (sei es moodle, MDM etc.) extrem hilfreich. Unter Untis könnte man problemlos eine txt-Datei exportieren, die dann auf dem v7-Server wieder importiert werden müsste … ist etwas in diese Richtung angedacht? Das wäre wirklich eine super Sache…
und gleiches dann auch für Oberstufenkurse (mit nur einem Lehrer).
Wenn man das kombinieren und abrufen könnte, wäre das super, meine ich…
Nachtrag … ich habe etwas mit ldapsearch gesucht und z.B. dies gefunden: ldapsearch -b ... '(cn=5a)' liefert imho immerhin schon mal alle User, die sich via WebUI in die 5a eingetragen haben, richtig?
Schüler als sophomorixMembers und eingetragenen Lehrer als sophomorixAdmins – gleiches liefert übrigens auch sophomorix-class -c 5a -v -i
Damit könnte man notfalls klar kommen, doch eine automatische Zuweisung wäre zweifellos eleganter…
Das Problem ist, dass diese Gruppe (bzw dieses Objekt) auch im MDM abgerufen werden muss. Die Klassenräume sollen da fertig vorbereitet sein
Es muss also ein eine Abfrage per LDAP Gruppe möglich sein
Könnten sie können. Können aber manche nicht. Und viele (bei uns die meisten), die könnten, machen es nicht.
Es wäre schon geschickt, durch einen Import aus Untis diese Zuordnung jährlich aktuell zu haben.
Genau – so sehe ich das auch! Ein Import aus Untis (was vermutlich eh die meisten verwenden?) und man hätte die Zuordnung, die man sehr gut weiterverwenden kann!
Untis macht den Export in der Datei GPU001.txt. Darin befinden sich Zeilen wie: 1;"5d";"Smb";"EN";"K5a";1;4;;
Der Aufbau dieser Datei ist sogar dokumentiert – und zwar z.B. hier:
Man hätte damit also die Zuordnung: Alle Fachlehrer → Klasse in einer Textdatei!
Ein Problem dabei ist aber, dass hier nur die Abkürzungen der Lehrer stehen! In der Datei GPU004.txt wird dieses Problem „gelöst“, da sich dort die Zuordnung Lehrerkürzel ↔ Lehrername befindet. Damit hat man aber immernoch nicht den eindeutigen Login des Kollegen …
Das ganze kommt mir relativ einfach lösbar vor, aber ich weiß nicht, wie man das AD sinnigerweise ergänzen könnte, damit z.B. eine neue Gruppe „Fachlehrer“ oder so zur Verfügung steht und per ldapsearch bzw MDM → LDAP abgerufen werden kann?
aus diesem Export kannst Du mithilfe einer Tabellenkalkulation recht simpel Sophomorix-Befehle generieren, die für jede Klasse ein Projekt mit allen LuL anlegen. Für die Zuordnung Kürzel<->Login legst Du eine eigene Tabelle an und verwendest dann die Lookup-Funktionen.
Hi. Also ganz konrket … mir geht es dabei um unser MDM. Hier siehst du einen Screenshot für die Lehrerkonsole:
Dort ist es möglich, Schüler und Lehrer einzutragen – ersteres ist ein LDAP/AD-Objekt aber letzteres nicht (und müsste daher in jedem Schuljahr neu für jede Klasse/Gruppe mühsam manuell zusammengeklickt werden). Du siehst es unter Unterrichtssteuerung → 2. Screenshot.
Jetzt klar, warum die Fachlehrer einer Klasse für so einen Fall getrennt abgerufen werden müssen?
Weitere Filter sind dort also nicht möglich … es würde also nur funktionieren, wenn die Gruppe bereits vorhanden wäre. Dann jedoch würde so eine (einmalige) Einstellung die Versetzung zum neuen Schuljahr überleben, weil die Gruppe mit anderen Benutzern gefüllt wurde.
Schritt 1: Aus GPU001.txt und GPU004.txteine neue Datei erzeugen mit diesem Python3-Script: cat create_csv.py:
import csv
import codecs
ENCODING = 'ISO-8859-14'
def findName(short, longs):
for long in longs:
if short == long[0]:
longname = long[1].replace(' ', '').replace('-', '')
longname = longname.split(';')
if len(longname) <= 1:
longname = longname[0]
else:
longname = longname[1] + ' ' + longname[0]
return longname.replace("ä", "ae").replace("Ä", "Ae").replace("ö", "oe").replace("Ö", "oe").replace("ü","ue").replace("Ü", "ue").replace('ß', 'ss')
return ''
with codecs.open('GPU004.TXT', 'r', ENCODING) as csvfile:
with codecs.open('GPU001.TXT', 'r', ENCODING) as coursefile:
with open('teachers.csv', 'w') as final:
courses = list(csv.reader(coursefile, delimiter=';'))
names = list(csv.reader(csvfile, delimiter=';'))
li = []
for course in courses:
longname = findName(course[2], names)
li.append(course[1] + ';' + longname + ';' + course[3])
li = list(set(li))
for l in li:
final.write(l + '\r\n')
Das legt die Datei teachers.csv an, mit der man weiterarbeiten kann! In dieser Datei steht dann nicht mehr das Kürzel sondern der volle Lehrername, den man nun wiederum auf dem v7-Server suchen kann.
Das ist dann Schritt 2
Schon mal ein kurzer Nachtrag: Der Weg über die Projekte könnte doch funktionieren! Ich habe es gerade im MDM nachgesehen und festgestellt, dass man dort bei den o.g. Gruppen per LDAP/AD auch die Projekte findet. Also diesen Weg verfolge ich mal weiter … to be continued.