Univention Bugzilla – Bug 24388
Widget in UMC2-System Setup bei der Locale-Auswahl fehlerträchtig
Last modified: 2012-12-12 21:08:21 CET
Das bei der Softwareauswahl verwendete Widget macht es sehr einfach versehentlich die bestehenden Locales zu löschen: Installiert war DE. Ich hatte testweise albanisch ausgewählt und dabei nicht auf die Select-Box geklickt, sondern auf die Zeile Albanian. Klickt man auf die Zeile wird _nur_ der ausgewählte Bereich ausgewählt und alle anderen Select-Boxen deaktiviert. Aufgrund der sehr langen Auswahlliste der Locales kriegt man davon als Benutzer nichts mit. Beim Klick auf Speichern wird dann die deutsche Locale entfernt. Das Widget sollte so angepasst werden, dass ein Klick auf den Namen der Locale behandelt wird wie ein Aktivieren/Deaktivieren der Select Box.
Das Widget sollte wie bei der Gruppenauswahl für Benutzer sein.
Created attachment 4311 [details] setup.log mit nur de_DE.UTF-8 ohne en_US.UTF-8 Dieser Fehler provoziert potentiell Fehler/Abbrüche in diversen Python-Skripten während der Ausführung der Joinskripte, siehe z.B. Bug 26694.
(In reply to comment #1) > Das Widget sollte wie bei der Gruppenauswahl für Benutzer sein. → MultiObjectSelect
(In reply to comment #3) > (In reply to comment #1) > > Das Widget sollte wie bei der Gruppenauswahl für Benutzer sein. > > → MultiObjectSelect Das Widget für die locale wurde auf MultiObjectSelect geändert. Die Fehleranfälligkeit des MultiSelect widgets ist Bug #28198 (In reply to comment #2) > Created an attachment (id=4311) [details] > setup.log mit nur de_DE.UTF-8 ohne en_US.UTF-8 > > Dieser Fehler provoziert potentiell Fehler/Abbrüche in diversen Python-Skripten > während der Ausführung der Joinskripte, siehe z.B. Bug 26694. Das gehört nicht zu diesem Bug?! Wenn das relevant ist sollte dafür ein eigener Bug erstellt werden (z.B. dass englisch nicht abgewählt werden kann).
nochmal auf, weil die "Default system locale"-Auswahl nicht mehr richtig funktioniert. Das sollte bei der QA dann mitgetestet werden.
(In reply to comment #5) > nochmal auf, weil die "Default system locale"-Auswahl nicht mehr richtig > funktioniert. Das sollte bei der QA dann mitgetestet werden. Ok, das wurde behoben. Das MultiObjectSelect widget wurde hierfür angepasst: Löschen und Hinzufügen von Werten benutzt nun die set('value', value) funktion, dadurch können Änderungen mitbekommen werden. univention-system-setup 6.0.17-1 univention-management-console-frontend 2.0.19-1
Folgende Probleme sind jetzt vorhanden: 1. Die Werte werden nicht mehr als "en_US de_DE" ans Backend gesendet, sondern (eigentlich korrekter) als ["en_US", "de_DE"]. Das ist ein Problem, weil das Backend davon ausgeht, dass alle gesendeten Werte schon schick für ucr vorgekaut wurden. locale bricht jetzt aus. 2. Die Werte werden initial als [{id:'en_US', label:'English'}] gesendet und so von uns als orgVals gespeichert. Dadurch schlägt ein Test newVal == orgVal immer fehl, auch wenn nichts geändert wurde. Ich habe einen Workaround geschrieben, der beide Probleme angeht. Auch wenn man argumentieren kann, dass das Senden von ["en_US", "de_DE"] korrekter ist, sollten wir keinen Mix aus vorprozessierten und noch zu prozessierenden Werten schicken. Bitte also fixen und meine Änderungen (in setup.js/save() und util.py/pre_save()) rückgängig machen. univention-system-setup 6.0.24
(In reply to comment #7) > Folgende Probleme sind jetzt vorhanden: > 1. Die Werte werden nicht mehr als "en_US de_DE" ans Backend gesendet, sondern > (eigentlich korrekter) als ["en_US", "de_DE"]. Das ist ein Problem, weil das > Backend davon ausgeht, dass alle gesendeten Werte schon schick für ucr > vorgekaut wurden. locale bricht jetzt aus. > 2. Die Werte werden initial als [{id:'en_US', label:'English'}] gesendet und > so von uns als orgVals gespeichert. Dadurch schlägt ein Test newVal == orgVal > immer fehl, auch wenn nichts geändert wurde. Eine Alternative wäre es, in der LanguagePage eine Liste aller Locales anzufordern (als Deferred) und in der Formatter-Funktion des MultiObjectSelect die entsprechenden IDs in ID-Label-Paare umwandeln (hier kann auch ein Deferred zurückgegeben werden, dann in Abhängigkeit des initialen Requests für alle Locales).
(In reply to comment #8) > ... > Eine Alternative wäre es, in der LanguagePage eine Liste aller Locales > anzufordern (als Deferred) und in der Formatter-Funktion des MultiObjectSelect > die entsprechenden IDs in ID-Label-Paare umwandeln (hier kann auch ein Deferred > zurückgegeben werden, dann in Abhängigkeit des initialen Requests für alle > Locales). Das wurde noch einmal dahingehend angepasst.
Das hier zuletzt beschriebene Verhalten wurde umgesetzt. Die locales lassen sich wie gewünscht entfernen, hinzufügen und die default locale lässt sich auch konfigurieren. Die neuen Einstellungen werden auch korrekt in UCR gesetzt. Soweit ist also alles gut! Es fehlt jedoch der Changelog-Eintrag.
(In reply to comment #10) > Das hier zuletzt beschriebene Verhalten wurde umgesetzt. > Die locales lassen sich wie gewünscht entfernen, hinzufügen und die default > locale lässt sich auch konfigurieren. Die neuen Einstellungen werden auch > korrekt in UCR gesetzt. Soweit ist also alles gut! > > Es fehlt jedoch der Changelog-Eintrag. Habe ich ergänzt.
(In reply to comment #11) > Habe ich ergänzt. Verified!
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".