Moodle: Profilbasiertes Einschreiben und Zuordnung zu Gruppen

Hallo.
Alle Jahre wieder … wir nutzen das profilbasierte Einschreiben und die Zuordnung zu globalen Gruppen (eigentlich seit Jahren und eigentlich funktioniert es auch so wie es soll).
Dennoch taucht hier immer wieder ein seltsames Problem auf:
Wenn ich eine beliebige Klasse aufrufe, sieht das dort z.B. so aus

Das was falsch/seltsam ist: Alle Lehrer sind AUCH als Schüler eingetragen – das darf so nicht sein und mir ist nicht klar, welches Script das falsch macht?!

Offensichtlich kommen sich da im Hintergrund irgendwie zwei der Synchronisations-Scripte gegenseitig ins Gehege, denn es kann gut sein, dass die Anzeige kurze Zeit später wieder stimmt und dann die Lehrer nur als Lehrer eingeschrieben sind :thinking: :interrobang:

Kennt jemand das Problem oder hat jemand eine Idee, welcher Cronjob das machen könnte? Danke für einen Tipp.
Michael

Hier noch ein Crosslink auf den anderen Beitrag:

zum verständnis:
kommt der screenshot aus der teilnehmerliste und die teilnehmer im klartext sind vorne aus dem screenshot abgeschnitten?
wenn das so ist, und nur bei den Lehrern die drei Rollen stehen sollte das eigentlich so korrekt sein. hast du das mal gestestet ob alles geht. wichtig ist das bei den schuelern nicht lehrer und kursverwalter drinstehen.
der lehrer besitzt alle diese rollen, weil er die rollen ja auch im kurs annehmen kann.
oder hab ich da was falsch verstanden?
(in meiner Moodle installation sind es die Standardbezichnungen Kursverwalter, Trainer und Teilnehmer)
selbst wenn du einen kurs manuell als lehrer anlegst… passiert das so… also ist das wohl kein skript?

Hallo Michael,

was machst Du genau: Profilbasiertes Einschreiben in einen Kurs oder profilbasierte Zuordnung zu globalen Gruppen (die dann wiederum in einen Lurs eingeschrieben sind)?

Wie sind denn die Einstellungen dazu?

Beste Grüße

Jörg

Hallo
@sucher : Ja, das hast Du richtig verstanden. Die Lehrernamen hatte ich weggeschnitten.

Das Problem mit diesen Einstellungen ist aber, dass man auf diese Weise keine Mitteilung an die Gruppe „Schüler“ schicken kann, da ja auch immer alle Lehrer automatisch mit drin sind.

@jrichter Bei den Klassen mache ich das über die profilbasierten Felder: Sobald „5a“ im Home-Verzeichnis auftaucht, soll der Schüler auch in der 5a eingeschrieben werden. Daher können die Lehrer über diesen Weg nicht dort rein gelangt sein, denn bei deren Home-Dir steht kein Klassenname sondern „teachers“ :man_shrugging:
Die Zuweisung der globalen Gruppen (Fachlehrer) zu den Klassen mache ich über CSV-Dateien und das Plugin „Upload course enrolment methods from a CSV file“. Dort steht dann beispielsweise drin:

operation,method,shortname,metacohort,disabled,group,role
add,cohort,10a,Fachlehrer_10a_2025,0,Fachlehrer_10a,editingteacher

Daher sollten die Lehrer auf diesem Weg eigentlich auch nicht als Schüler sondern als Lehrer eingeschrieben werden.

Mein Verdacht ist, dass da noch etwas altes im Hintergrund herumspukt, das zwischendurch auch „erfolgreich“ durchläuft.

Viele Grüße,
Michael

ich bin mir ziemlich sicher, dass die standardeinstellung von moodle ist und so moodle funktioniert. Es ist völlig normal dass ein Lehrer die Rolle Kursersteller, Lehrer und Schüler hat die er dann in den Aktivitäten Quizzes Tests usw wechseln kann.
Hast du mal probiert manuell als Kursersteller einen Kurs zu erzeugen?
Das alles zu ändern greift ziemlich tief in die Rollenstruktur von Moodle hinein…
Das ist halt der Nachteil wenn man einen Kurs anlegt, in dem alle Lehrer einer Klasse eingeschrieben sind gemeinsam mit den Schülern. Alles hat seine vor und Nachteile…

Was du möchtest wäre, dass es für jeden Lehrer eine Gruppe gäbe, wo er und die andern Schülern drin ist und keine Lehrer sonst… Dann gibt das ziemlich viele Gruppen…

ok hab bei mir nachgeschaut… ja bei mir sindn die kursersteller tatsächlich keine schueler. sorry… fuer die falsche faehrte

Hallo @sucher – ja, das klingt in der Tat auch logisch … aber hier kommt mal ein Screenshot von einem Kurs, bei dem die globale Gruppe nicht profilbasiert eingeschrieben wurde, sondern einfach über eine CSV-Datei … da sieht das ganze dann so aus:


… und so soll es ja auch sein! In diesen Kursen ist es kein Problem, dass der Lehrer eine Nachricht an die Gruppe „Schüler“ schickt und diese Nachricht dann auch nur an die Schüler geht.

die zeile

add,cohort,10a,10a,0,10a,students

ist dann in der csv auch drin?

Also bei uns gilt das nicht bei Klassen. Nur bei Kursen …

Zum Hintergrund (weiß nicht, ob Du den kennst??):
Klassen konnten ja daaaaamals mal über ein Plugin namens „Openlml enrolment plugin“ direkt vom v7-Server zu moodle rübergeholt werden.
Als das nicht mehr richtig lief, sind hier viele auf das Plugin „Profile field based cohort membership“ gewechselt, was im Prinzip das gleiche macht.
Daher werden die Klassen direkt über das Profilfeld abgeglichen, während bei Kursen (gesamte Oberstufe) doch noch Handarbeit nötig ist (sofern man nicht gut genug mit der REST-API vertraut ist und alles darüber steuert → vgl @thoschi )

villeicht lieg es daran? ist es das plugin das du verwendest das am ende auch einschreibt mit den cohorts oder?

Hallo Michael,

Du hast nicht zufällig noch die „LDAP-Syncing-Scripts“ aktiviert? Damit kommen gerne auch mal Lehrer/innen in die Klassengruppen.

Beste Grüße

Jörg

Das kann sein. Checke ich morgen. Ist es denn da auch änderbar??

Eine andere Sache, die in diesem Jahr auffällig ist: ein Kollege wurde in einer Klasse „aus Gründen“ übersehen. Daher habe ich ihn über die manuelle Einschreibung einzeln in eine Klasse geholt und eingeschrieben. Ich habe das auch geprüft und er wurde korrekt angezeigt.
Später am Tag meldet sich der Kollege und behauptet, dass er nicht mehr in dem Kurs sei. Ich habe das geprüft und er hatte Recht. Durch welche Aktion werden denn manuelle Einschreibungen rückgängig gemacht?? Das kommt mir völlig neu vor :man_shrugging:t2::man_shrugging:t2::thinking::interrobang:

Ja, sie sind aktiviert … ich nehme an, dass das die Default-Settings sind?
Muss das anders eingestellt werden?

Hallo Michael,

damit können diejenigen Lehrer/innen, die sich in der Schulkonsole in eine Klasse eingeschrieben haben, in der entsprechenden Globalen Gruppe landen - und somit als Schüler/innen in dem Kurs. Schau doch mal, ob sie nur im Kurs sind oder auch in der Globalen Gruppe.

Beste Grüße

Jörg

Hallo Jörg (@jrichter ) ,
ja, das wird es sein … wir kommen der Sache näher!
Für die Klasse 8c sieht das z.B. so aus:


39 Personen beinhaltet natürlich Schüler und Lehrer.
Dann ist die Frage: Kann man dem Plugin beibrigen, dass es nur die Schüler in die Globale Gruppe holt und nicht die Lehrer?
Hast Du da auch noch eine passende Idee?

Viele Grüße,
Michael

Lieber Michael,

Du verwendest ja die profilbasierte Zuordnung zu den Gruppen. Dann brauchst Du den LDAP-Sync ja eigentlich gar nicht mehr und kannst ihn deaktivieren.

Außer, Du willst nicht nur die Klassen, sondern auch weitere Gruppen aus dem LDAP syncen wie Projekte etc. Zu diesem Zweck habe ich den LDAP-Sync so modifiziert, dass man die üblichen LDAP-Filter verwenden kann – wir haben dann nur Gruppen gesynct, die mit p_ anfingen. Für die Klassen und die Lehrer haben wir die profilbasierte Zuweisung verwendet. Das hatte ich mal hier beschrieben:
https://wiki.linuxmuster.net/community/anwenderwiki:webapps:moodle:moodle_extern_ldap:start

Dort ist auch noch die modifizierte Version 3.11.1 hinterlegt. Aktuell ist die aber nicht mehr. Der Autor wollte die Änderungen leider nicht in den Code aufnehmen, obwohl sie eigentlich minimal sind, man müsste das also für die aktuelle Version nachbilden.

Beste Grüße

Jörg

Hallo.
Ja, ich erinnere mich, dass ich Deine modifizierte Version daaaamals eingerichtet hatte — sehr wahrscheinlich mit dem Hintergedanken, um auch alle Projekte p_* vom v7-Server direkt nach moodle synchronisieren zu können.

Aktuell blicke ich selbst nicht ganz durch, welcher Prozess was anstößt und was da evtl. parallel läuft. Aber evtl sollte ich wirklich mal ein paar Cronjobs stoppen um Dinge ausschließen zu können.

Hast Du denn eine brauchbare Idee bzgl der manuellen Einschreibungen, die automatisch wieder rückgängig gemacht wurden? Was kann das gewesen sein?

Viele Grüße,
Michael

Hallo Michael,

vermutlich hast Du:

  • Abgleich der User mit dem LDAP (beim Anmeldeversuch und alle per Cron)
  • Profilbasierte Zuordnung zu Gruppen (beim Anmelden – der Cronjob hat einen Bug, dazu hatte ich auch schon mal was geschrieben, das kann man sehr einfach im Code korrigieren)
  • Die LDAP-Syncing-Skripts – hier funktioniert der Cronjob

Bei Deinem Problem vermute ich, dass eine der beiden letzten Methoden der Ansicht war, dass der Lehrer nicht in die Gruppe gehört, und ihn deshalb gelöscht hat. Dabei wurde die Einschreibemethode nicht geprüft (wie es eigentlich sein sollte).

Beste Grüße

Jörg

1 „Gefällt mir“