Bug 24388 - Widget in UMC2-System Setup bei der Locale-Auswahl fehlerträchtig
Widget in UMC2-System Setup bei der Locale-Auswahl fehlerträchtig
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - Basic settings
UCS 3.0
Other Linux
: P3 normal (vote)
: UCS 3.1
Assigned To: Alexander Kläser
Jascha Geerds
: interim-1
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-11-04 12:53 CET by Moritz Muehlenhoff
Modified: 2012-12-12 21:08 CET (History)
5 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional): Usability
Max CVSS v3 score:


Attachments
setup.log mit nur de_DE.UTF-8 ohne en_US.UTF-8 (49.59 KB, text/plain)
2012-04-03 15:20 CEST, Arvid Requate
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2011-11-04 12:53:04 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.
Comment 1 Stefan Gohmann univentionstaff 2012-03-12 16:09:55 CET
Das Widget sollte wie bei der Gruppenauswahl für Benutzer sein.
Comment 2 Arvid Requate univentionstaff 2012-04-03 15:20:03 CEST
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.
Comment 3 Alexander Kläser univentionstaff 2012-06-28 15:11:10 CEST
(In reply to comment #1)
> Das Widget sollte wie bei der Gruppenauswahl für Benutzer sein.

→ MultiObjectSelect
Comment 4 Florian Best univentionstaff 2012-08-28 10:12:41 CEST
(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).
Comment 5 Florian Best univentionstaff 2012-08-31 10:20:33 CEST
nochmal auf, weil die "Default system locale"-Auswahl nicht mehr richtig funktioniert. Das sollte bei der QA dann mitgetestet werden.
Comment 6 Florian Best univentionstaff 2012-09-04 11:05:35 CEST
(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
Comment 7 Dirk Wiesenthal univentionstaff 2012-09-11 17:49:57 CEST
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
Comment 8 Alexander Kläser univentionstaff 2012-09-12 10:14:09 CEST
(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).
Comment 9 Alexander Kläser univentionstaff 2012-09-14 12:36:21 CEST
(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.
Comment 10 Jascha Geerds univentionstaff 2012-09-17 16:11:26 CEST
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.
Comment 11 Alexander Kläser univentionstaff 2012-09-18 10:52:32 CEST
(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.
Comment 12 Jascha Geerds univentionstaff 2012-09-18 11:07:09 CEST
(In reply to comment #11)
> Habe ich ergänzt.

Verified!
Comment 13 Stefan Gohmann univentionstaff 2012-12-12 21:08:21 CET
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".