Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sortierung in View nach Bearbeitung einer Institution #4

Closed
oschihin opened this issue Jan 30, 2014 · 20 comments
Closed

Sortierung in View nach Bearbeitung einer Institution #4

oschihin opened this issue Jan 30, 2014 · 20 comments
Assignees
Labels

Comments

@oschihin
Copy link

Problem

Die Sortierung einer Instititution in der View richtet sich nach dem Wert im Feld 'position' im entsprechenden json-File:

{
id": 2392,
"bib_code": "A100",
"sys_code": "A100",
"position": "638",
"favorite": true,
...
}

Bearbeitet man eine Institution, wird sie in libadmin in der Ansicht "View -> Institutionen sortieren" bei allen Views an erster Stelle angezeigt. Im json-File erhält sie einen Wert position=0

{
id": 2392,
"bib_code": "A100",
"sys_code": "A100",
"position": "0",
"favorite": true,
...
}

Weswegen nach Bearbeitungen in libadmin in jeder View die Institutionen neu sortiert werden müssen. (siehe letzten Kommentar von @mschwendener hier: swissbib/sbvf2#107)

Lösung

  1. Analyse: Wieso wird der Sortierwert auf 0 gesetzt, wie entsteht er und wie bleibt er erhalten?
  2. Lösung: Der Sortierwert bleibt beim speichern einer Institution erhalten und wird korrekt ausgegeben über die Schnittstelle
@maechler
Copy link
Member

Das Problem ist, dass beim Bearbeiten einer Institution die View- und Gruppenzugehörigkeit geändert werden kann. Das kann dazu führen, dass zwei Institutionen den selben Sortierwert erhalten.

Wir haben das so gelöst, dass jetzt nur noch wenn die View- oder Gruppenzugehörigkeit geändert wird, die Sortierung gelöscht wird. Andere Änderungen (Name, Adresse, etc.) haben keinen Einfluss auf die Sortierung.

@oschihin
Copy link
Author

@mmchler @guenterh
Die Lösung hat offenbar einen gröberen Bug zur Folge:

  1. Bearbeiten einer Institution (z.B. Adresskorrektur)
  2. Speichern
  3. Im Tab "Gruppen und Views" der Institution sieht's dann so aus:
    a196_nderung

Hier sieht man auch schon die Folge in den Daten:
4. In den Views > "Institutionen sortieren" erscheint die Institution nur noch bei green, und zwar zuoberst (Sortierwert 0)
5. Prüfung der Datenausgabe via JSON: Die bearbeitete Institution ist aus allen Views verschwunden, mit Ausnahme von green.json

Aktuell ist der neueste Stand auf libadmintest installiert. Wir können dies unter keinen Umständen produktiv schalten. Korrektur dringend!

@maechler
Copy link
Member

@oschihin @guenterh

Das sieht gar nicht gut aus! Ich werde mich so bald wie möglich darum kümmern.
Ich habe bei mir noch alte Testdaten mit nur wenigen Views und konnte eben den Fehler nicht reproduzieren.
Gibt es irgendwo einen aktuellen DB-Dump, oder könnt ihr vielleicht einen machen ?
Ich schaue aber ob ich auch so schon einen Fehler finde.

@maechler
Copy link
Member

@oschihin @guenterh

Vielen Dank für die aktuellen Daten!
Ich konnte den Fehler leider immer noch nicht reproduzieren. Ich vermute deshalb, dass es evtl mit unterschiedlichen Datenbankkonfigurationen zusammenhängen könnte.
Ich habe die Änderung gemacht, bei der ich denke es könnte das Problem lösen.

Bitte teste doch den aktuellen Stand nochmals auf eurem development Host.

@oschihin
Copy link
Author

Das Problem besteht weiterhin, Einträge zu Views im "Institutionen > Gruppen & Views"
werden vervielfacht, mit dem Titel "This label will be changed (by the app)". Aktiviert
man eine Gruppe, so bleibt das Häkchen nicht bestehen.

Eine Änderung in der Adresse einer Institution führt dazu, dass die Institution aus der
View fällt (geprüft mit A154 > ../orange.json)

Nachprüfbar unter admin.swissbib.ch/libadmintest

-------- Original-Nachricht --------
Betreff: Re: [libadmin] Sortierung in View nach Bearbeitung einer Institution (#4)
Von: Markus Mächler notifications@github.com
An: swissbib/libadmin libadmin@noreply.github.com
Kopie (CC): Oliver Schihin oliver.schihin@unibas.ch
Datum: 27.03.2014 09:56

@oschihin https://github.com/oschihin @guenterh https://github.com/guenterh

Vielen Dank für die aktuellen Daten!
Ich konnte den Fehler leider immer noch nicht reproduzieren. Ich vermute deshalb, dass es
evtl mit unterschiedlichen Datenbankkonfigurationen zusammenhängen könnte.
Ich habe die Änderung gemacht, bei der ich denke es könnte das Problem lösen.

Bitte teste doch den aktuellen Stand nochmals auf eurem development Host.


Reply to this email directly or view it on GitHub
#4 (comment).

maechler pushed a commit that referenced this issue Mar 28, 2014
@maechler
Copy link
Member

maechler commented Apr 3, 2014

Fazit:
Das Problem ist ein ZF2 Bug, der ab Version 2.2.6 auftritt. Ich konnte keine schnelle Lösung finden. Am Besten gehen wir zurück auf ZF 2.2.5 und hoffen, dass der Bug in einer nächsten Version behoben wird.

@mschwendener
Copy link

Ok für mich, ist kein grosser Mehraufwand.

@ToVie muss einfach auch daran denken, wenn er an libadmin etwas ändert ;)

@guenterh
Copy link
Member

guenterh commented Apr 3, 2014

@mmchler
Hallo Markus,

kannst Du auf
https://github.com/zendframework/zf2/issues
einen issue erfassen? Du hast es Dir angesehen und kannst es am besten kurz beschreiben
Wenn das niemand weiss, haben wir schlechte Chancen, dass der Bug behoben wird.

Danke und Grüsse!

Günter

@maechler
Copy link
Member

maechler commented Apr 3, 2014

@guenterh @oschihin
Um Fehler zu vermeiden, könnte ich noch das composer.json auf Version 2.2.5 fixieren, was meint ihr?

@guenterh
Es ist etwas schwierig da ich den Fehler nicht auf ein paar Code-Zeilen einschränken kann. Ich werde aber versuchen ein brauchbares Issue zu erfassen!

@oschihin
Copy link
Author

oschihin commented Apr 3, 2014

composer.json freezen finde ich gut

-------- Original-Nachricht --------
Betreff: Re: [libadmin] Sortierung in View nach Bearbeitung einer Institution (#4)
Von: Markus Mächler notifications@github.com
An: swissbib/libadmin libadmin@noreply.github.com
Kopie (CC): Oliver Schihin oliver.schihin@unibas.ch
Datum: 03.04.2014 15:25

@guenterh https://github.com/guenterh @oschihin https://github.com/oschihin
Um Fehler zu vermeiden, könnte ich noch das composer.json auf Version 2.2.5 fixieren, was
meint ihr?

@guenterh https://github.com/guenterh
Es ist etwas schwierig da ich den Fehler nicht auf ein paar Code-Zeilen einschränken kann.
Ich werde aber versuchen ein brauchbares Issue zu erfassen!


Reply to this email directly or view it on GitHub
#4 (comment).

@guenterh
Copy link
Member

Meine aktuelle Analyse ergibt folgendes:
Durch den Wechsel von ZF 2.2.5 zu 2.2.6 hat es unter anderem in der Implementierung der add - Element Methode eines Fieldset Elements eine Änderung gegeben.
https://github.com/swissbib/libadmin/blob/feature/nextMaster_mergedWithDevelop_moreCode/module/Libadmin/src/Libadmin/Form/InstitutionFieldset.php#L227

In 2.2.5 gab es noch folgendes Stückchen code zum Vorbereiten eines Fieldset Elements

    if ($elementOrFieldset instanceof FieldsetInterface) {
        if ($elementOrFieldset instanceof FieldsetPrepareAwareInterface) {
            $elementOrFieldset->prepareFieldset();
        }

prepareFieldset ist in 2.2.6 weggefallen.

Vor allem bei eingebundenen Collections führt das dazu, dass die Collectionobjekte nicht mehr gebunden werden. Das kann man möglicherweise selber steuern, indem man die prepare Methode selber aufruft (was ich an dieser Stelle im Controller mache: https://github.com/swissbib/libadmin/blob/feature/nextMaster_mergedWithDevelop_moreCode/module/Libadmin/src/Libadmin/Controller/InstitutionController.php#L95

Der dahinter stehende Mechanismus verlangt die Implemenierung von bestimmten Schnittstellen (Traversable und ArrayAccess) was ich mal testweise für das ModelItem InstitutionRelation gemacht habe.
Ein Aufruf ist nun ohne Fehler möglich, die Werte werden aber immer noch nicht gebunden ....

Weitere Hinweise zu Anpassungen durch den ZF Releaseupdate:
http://framework.zend.com/changelog/2.2.6/
zendframework/zendframework#5502

@maechler: any ideas?

@oschihin z.K.

Der Branch, auf dem die aktuellen Anpassungen implementiert sind:
https://github.com/swissbib/libadmin/tree/feature/nextMaster_mergedWithDevelop_moreCode

@mschwendener
Copy link

Aktueller Stand testlibadmin:

  • Änderung an Bibliotheksname: die geänderte Bibliothek steht bei den Views nicht mehr zuoberst - aber die Sortierung wird nicht aktualisiert!! D.h. im Gegensatz zur Produktion merke ich jetzt nicht mehr, dass die Sortierung falsch ist. Bsp: Alexandria umbenannt zu TEST Alexandria - sortiert weiterhin unter Al.. & Nationalbibliothek umbenannt zu Schweizerische ..., sortiert weiterhin unter Na..

test

nb

@oschihin
Copy link
Author

oschihin commented Dec 1, 2015

@maechler @mschwendener @guenterh
Im Issue (ganz weit oben ;-) steht als Lösung: "Der Sortierwert bleibt beim speichern einer Institution erhalten und wird korrekt ausgegeben über die Schnittstelle." Das neue Verhalten entspricht dem offenbar. Was heisst das:

  • Ein Bearbeiten einer Institution ändert den Sortierwert nicht (z.B. ändern der Telefonnummer, Notiz hinzu). Super!
  • Ein Ändern des Bibliotheksnamens (also des Sortierwerts) hat denselben Effekt, der Sortierwert bleibt erhalten. Schade.

Nun könnte man natürlich (theoretisch, die Frage der Machbarkeit überlasse ich @maechler) nach dem Ändern dieses Felds eine Sortieraktion in allen Views auslösen. Ev. ist das etwas dick aufgetragen. Bibliotheksnamen ändern nicht alle Tage, ich könnte auch mit der Anleitung leben: Ändert man den Namen, muss man manuell neu sortieren.

@mschwendener
Copy link

Längerfristig gedacht müsste es eine Lösung sein, die auch dann noch funktioniert, falls wir eine Weboberfläche haben, auf der die Bibliotheken ihre eigenen Angaben ändern können. Den Anzeigenamen in swissbib sollen sie aber sowieso nicht ändern können, d.h. Feld "Display Namen" würden wir weiterhin selbst verwalten und können Sortierung von Hand auslösen.

@guenterh
Copy link
Member

guenterh commented Dec 1, 2015

@maechler @mschwendener @oschihin

Hallo zusammen,
Manu: wenn ich Deine Comments richtig interpretiere, entspricht die getestete Funktionalität der der produktiven Instanz. Konkret: Es gehen keine Informationen bei Mutationen mehr verloren (wie in diesem issue zu Anfang beschrieben) und Du kannst Informationen korrekt hinzufügen oder bewusst löschen.

an alle: ich bin dagegen, jetzt die Machbarkeit von wünschbaren Sortierfunktionen zu prüfen. Mein Standpunkt:

  1. wir sollten uns darauf konzentrieren, jetzt wieder eine stabile Applikation auf Basis der ursprünglich von snowflake implementierten Funktionalität zu erhalten, die als Basis für weitere Ergänzungen dienen kann
  2. wenn 1) erreicht, können wir die Erweiterung von Eweiterung um zusätzliche Felder #7 angehen. Danach werde 'ich' vorerst keine Arbeit mehr für Libadmin investieren. Auch Markus sollte das nicht machen (müssen)

Morgen werde ich noch die API von libadmintest testen. Wenn das ok ist, bereite ich ein brauchbares Deployment vor, räume die bestehenden Branches auf (einschliesslich Merge einer Formeta-API für Metafacture) und verteile ein Release als produktive Version

Günter

@maechler
Copy link
Member

maechler commented Dec 1, 2015

Hallo Zusammen,

Zur Sortierung:
Die Sortierung ist nicht rein alphabetisch. Es hat zwar einen Knopf für die alphabetische Sortierung, man kann die Institutionen aber auch beliebig von Hand sortieren. Somit kann man bei der Änderung des Namens die Institution auch nicht einfach neu alphabetisch einsortieren.
Wäre eine rein alphabetische Sortierung gewünscht, könnte man das wohl ohne allzu viel Aufwand aus der View entfernen und die Institutionen einfach vor der Rückgabe an VuFind über die API sortieren.

@mschwendener
Copy link

"Wäre eine rein alphabetische Sortierung gewünscht"
Ja, wäre sie (also jeweils innerhalb einer Gruppe, s. https://www.swissbib.ch/Libraries) - inkl. korrekter Sortierung von Sonderzeichen.

"Es gehen keine Informationen bei Mutationen mehr verloren"
Situation auf dem Screenshot von osc (#4 (comment)) ist jedenfalls geflickt.

@guenterh
Copy link
Member

guenterh commented Dec 7, 2015

API auf testvf gegen admin.swissbib.ch/libadmintest gestetet
TestCase

  • Ändere link zu Bibliotheksinformationen im deutecsh Kontext auf www.woz.ch
  • wurde nach Import korrekt übernommen

@guenterh
Copy link
Member

guenterh commented Dec 7, 2015

Mapportal API gegen libadmintest ok
getestet auf sb-vf4

@guenterh
Copy link
Member

guenterh commented Dec 7, 2015

@guenterh guenterh closed this as completed Dec 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants