Schüler von Linuxmuster nach Webuntis exportieren

Hallo,
wie kann ich aus der Schulkonsole alle Schüler wieder auslesen als csv um sie danach in Webuntis zu importieren?
Ich benötige wie bei einlesen die Daten:
klasse;vorname;nachname;gebdat;id;username
Wie komme ich an den username/login heran für alle Schüler, damit ich in der Schulkonsole und in Webuntis die selben usernamen habe?
Grüße Ralf

Hallo Ralf,

schgulweit weiß ich nciht
klassenweise
sophomorix-print -c 8a

Ergebnis ist in
/var/lb/sophomorix/print-data/
schau dir die .csv Datei an

LG

Holger

die students.csv sieht doch so aus:

klasse;Nachname;Rufname;GebDatum;ID

da brauchst du nur noch den usernamen dahinter, oder?

Andererseits: warum brauchst du das GebDatum? Das hat in WebUntis nix verloren. Als identifikationsmerkmal könntest du username oder ID nehmen.

Egal, hier was du machen kannst mit Bordmitteln:

alleklassen=$(sophomorix-class -i | grep '^|' | awk '{print $2}' | sed '/^-/d;/AdminClass/d;$d'  | grep -vE "Class|attic|lehrer" | paste -s -d ",")

dann schau mal, welche klassen da drin sind in echo $alleklassen. Manche magst du sicher noch in die Ausschlussliste hinter „Class|attic|lehrer“ packen, mit | getrennt.

Dann:

sophomorix-print --class $alleklassen --caller kuechel --template /etc/linuxmuster/sophomorix/default-school/latex-templates/datalist-DE-36-template.tex

oder /usr/share/sophomorix/lang/latex/templates/datalist-DE-36-template.tex wenn das bei dir in /etc nicht liegt.

Und dann hast du folgende DAtei hier liegen:

less /var/lib/sophomorix/print-data/multiclass-kuechel_WebUntis-unix.csv

Was da jetzt wiederum fehlt ist das Geburtsdatum. Entweder du killst das aus deinen Anforderungen, weil warum überhaupt?

Oder du musst sophomorix-print „hacken“, damit es das Geburtsdatum noch rauslässt. Das hab ich auch schon gemacht, hier in einer Kopie sophomorix-print:

sub create_csv_files {
    @{ $ref_printlist } = sort @{ $ref_printlist };
    foreach my $item ( @{ $ref_printlist } ){
        my @data=split(/;/,$item);
        my $csv=$data[1]." ".$data[0].";".$data[5].";".$data[2].";".$data[3].";".$data[10].";";
        print CSV $csv."\l\r";
        print UNIXCSV $csv."\n";
        my $webuntis=$data[5].";".$data[0].";".$data[1].";".$data[2].";".$data[6].", ".$data[7].";".$data[10].";";
        print WEBUNIXCSV $webuntis."\n";
        print WEBCSV $webuntis."\l\r";
        my $examplix=$data[0].", ".$data[1].":---:---:".$data[5]."==".
                     $data[0].", ".$data[1].":---:---:".$data[5];
        print EXAMPLIX $examplix."\n";
    }
}

würde ich mal bei my $webuntis probieren, welche daten in $ref_printlist tatsächlich stehen, vermutlich ist das GebDatum auch dabei. Weiter oben finden sich Anhaltspunkte, bevor du raten musst:

...
    # always APPEND to datablock                                                                                                                              
    my @list = @{ $ref_printlist };
    @list = sort @list;
    my $dataline_max=&dataline_max_from_template_path(); # max pp entries                                                                                     
    my $dataline_count=0; # counts pp entries                                                                                                                 
    my $last_count=$#list+1; # number of elements starting with 1,2,...                                                                                       
    foreach my $item (@list){
        my @data=split(/;/,$item);
        my $lastname= &string_to_latex($data[0]);
        my $firstname=&string_to_latex($data[1]);
        my $login=    &string_to_latex($data[2]);
        my $password= &string_to_latex($data[3]);
        my $school=   &string_to_latex($data[4]);
        my $role=     &string_to_latex($data[8]);
        my $workgroup=&string_to_latex($sophomorix_config{'samba'}{'smb.conf'}{'global'}{'workgroup'});
        my $class=&string_to_latex($data[5]);
...

Danke, das hört sich gut an.
Ja, das gebdat benötige ich hier nicht, ist halt aus der Vergangenheit ohne ID noch drin. Werde es also rausschmeissen.

Hallo Ralf,

warum exportierst du die Daten aus sophomorix? Wir exportieren die Daten für WebUntis (und auch alle anderen Programme der Schule) aus der Schulverwaltung ASV-BW. Unter Auswertungen / Exportformate gibt es eine sehr einfache, flexible Möglichkeit csv-Dateien zu erstellen. Die Auswahl der Schüler ist auch problemlos, geht schulweit oder klassenweise.

Viele Grüße
Uwe

Hallo Ralf,

ich würde dazu zwei Daten-Quellen nutzen: ASV und Schulkonsole:

Aus ASV kommt eine csv-Liste

  • Nachname
  • Vorname
  • Klasse
  • Geburtsdatum
  • ASV-ID

Aus der Schulkonsole (als global-admin angemeldet) > Passwörter drucken > Alle Klassen anhaken > Ausdrucken > Format csv mit

  • Vorname Nachname
  • Klasse
  • Loginname
  • Erstpasswort
  • ASV-ID

Beide Tabellen nach ASV-ID sortieren, sollten beide gleich lang sein. Dann die eine Tabelle neben die anderen kopieren und anschließend die nicht benötigten Daten löschen.
Zur Sicherheit noch ein Spalte ergänzen, die jeweils die zwei Zellen ASV-ID pro Zeile miteinander vergleicht und ggf. darauf aufmerksam macht, falls es Zeilen gibt, wo etwas schief ging.

Grüße
Sven

Hallo Sven,

benutzt du den pädagogischen Server auch zur Authentifizierung gegenüber WebUntis und brauchst du daher die Daten aus dem pädagogischen Netz?

Wir haben eigene Zugänge für WebUntis, daher brauchen wir keine Daten vom pädagogischen Server. Die csv-Datei aus ASV dient nur zur Einrichtung der Benutzer.

Viele Grüße
Uwe

Hallo zusammen,
ja, wir nutzen den pädagogischen Server als zentrale Instanz.
Dort werden alle Benutzer angelegt und bekommen ihren Usernamen und PW.
Von dort aus wird zu allen anderen Diensten authentifiziert.
Auch Webuntis.
Aktuell hatte ich das wie @Uwe schrieb:
Aus ASV die Daten exportiert.

  1. in die Schulkonsole
  2. in webuntis
    Folge: Viele Schüler können nicht zugeordnet werden.
    Somit sind für die Kollegen zwar alle Schüler in Webuntis drin, doch viele Schüler haben durch die Schulkonsole einen anderen Benutzernamen bekommen wie in Webuntis.
    Deshalb mein Wusch: Die Benutzernamen sollen auch in die CSV rein.

Oder noch einfacher:
Webuntis legt einfach bei der ersten Anmeldung einen Benutzer an (so wie in Moodle) aber laut Untis sei dies nicht vorgesehen.
Grüße Ralf

Hi Ralf,

in webuntis
Folge: Viele Schüler können nicht zugeordnet werden.

Wir haben das so gelöst, dass wir die von ASV erzeugte ID als Parameter mit an sophomorix übergeben. Die Eintrage in der students.csv sehen dabei so aus:

Klasse;Teron;Testos;23.10.1997;8a8b452b-7d03f572-017d-03fd1f57-7bf4

sophomorix liefert diesen Eintrag bei erfolgreicher anmeldung mit aus (das ldap feld heisst dann glaube ich unid)
Auch der Webuntisbetreuer (ist jemand anders deswegen kenn ich die Details nicht) liest diese ASV-ID mit ein so dass die Zuordnung Musterlösungsaccount ↔ Webuntisaccount über die ASV-ID laufen kann.

Dadurch ist der Arbeitsablauf nicht so ein Ping-Pong Sekretariat → Musterlösung → Webuntis sondern das Sekretariat gibt eine Liste sowohl an Webuntis - als auch an Musterlösungsbetreuer, jeder spielt die Liste ein und fertig ist.

Gruß
Sascha

Hallo,

Klasse;Teron;Testos;23.10.1997;8a8b452b-7d03f572-017d-03fd1f57-7bf4 |

so mach ich das auch.
Und auch bei den Lehrern: wobei die leider in webuntis kein Feld haben
für die ASVid: deswegen schreiben wir sie da (von Hand) in das „Text“
Feld des Lehrerprofils.
Nach dem ersten Anmelden muß der Lehrer trotzdem einmal zugewiesen werden.

LG

Holger

Schulweit sollte so tun:

sopomorix-print -p students

Das stimmt nicht ganz - oder ich verstehe dein Anliegen nicht ganz.
Authentifiziert man via LDAP gibt’s in WebUntis diese Option:
Unbekannten Benutzer nach erfolgreicher Anmeldung anlegen

Diese Option aktivieren.
Machen wir schon lange so:
Schülerstammdaten aus ASV importieren, inklusive ID.
Authentifizierung via LDAP. Bei den Schülern ist als Elementdaten ID Feld sophomorixUnid angegeben. In der LMN ist dort ebenfalls die ID aus ASV hinterlegt. Die Benutzernamen der LMN musst du in den Schülerstammdaten nicht haben.

Hallo zusammen,

hier noch einige Hinweise aus meiner Praxis:

Das haben wir an unserer Schule extra AUSGESCHALTET, weil man sonst in der LMN bei jedem Anlegen von Benutzern (auch kurzzeitigen, z.B. Externe für 1 Tages-Fortbildungen o.Ä.) oder bei tolerierten LMN-Benutzern, die im WebUntis schon gelöscht wurden, auch den Zugriff auf WebUntis zulässt. Das war uns zu unsicher.


Mein Kollege, der ASV und Untis/WebUntis betreut vergibt die Benutzernamen der SuS per Calc-Datei, die er dann in ASV/Untis/WebUntis importiert. Dabei bekommen nur die neuen SuS einen neuen Benutzernamen, die bestehenden bleiben (auch bei Namensänderungen).
Ich lege die Schüler in der LMN immer als Extra-Schüler mittels einem ASV-Export an und übernehme somit die Benutzernamen, der im ASV/Untis/WebUntis gespeichert sind.

Die Zuordnung Benutzer im WebUntis kann somit per Benutzername erfolgen. Das läuft seit Jahren gut. Es gab nur sehr wenige Probleme nach nachträglichen Änderungen im ASV.


Hoffe, es ist hilfreich

Stefan

Hallo @mschwab ,
genau so hatte ich mir das ursprünglich vorgestellt.

Unbekannten Benutzer nach erfolgreicher Anmeldung anlegen.
Ist bei mir aktiviert.
Schülerstammdaten aus ASV importieren, inklusive ID.
Authentifizierung via LDAP. Bei den Schülern ist als
LDAP ID Attribute: sophomorixUnid und als
Elementdaten ID Feld : externKey angegeben.

Evtl ist dies der Fehler, dass hier auch sophomorixUnid rein muss?
Grüße Ralf

Hallo Ralf,

Elementdaten ID Feld : externKey angegeben.

Evtl ist dies der Fehler, dass hier auch sophomorixUnid rein muss?

nein: das LDAP Feld in webuntis heißt externKey.
Das im lmn LDAP heißt sophomorixUnid

Der INhalt muss gleich sein: das Feld heißt unterschiedlich.

LG

Holger

Hallo Ralf,

so ist es bei mir auch erfasst.
Wichtig ist, dass bei den Schülerstammdaten dann das Feld Externe Id mit den gleichen Werten gefüllt ist, wie in LMN 7 das Feld sophomorixUnid - also die ASV-BW ID.

Gruß Manuel