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

Filterfunktion optimieren #87

Open
jmenzi opened this issue Feb 8, 2021 · 7 comments
Open

Filterfunktion optimieren #87

jmenzi opened this issue Feb 8, 2021 · 7 comments

Comments

@jmenzi
Copy link
Collaborator

jmenzi commented Feb 8, 2021

Ziel: Für uns dient die die Filterfunktion nicht der direkten Navigation im Strukturbaum, sondern zur Abfrage vor allem zu bestimmten Kulturen, Herkünften oder Sammlungen (siehe auch Issue 88).

Die Filterfunktion bietet viele Möglichkeiten und ist im Vergleich zum Filter der AP-Flora sehr umfangreich und vielseitig kombinierbar. Was wir uns als Verbesserung wünschen ist die Anzeige der Filterresultate. Wir haben uns zur bestehenden Filterumgebung ^deshalb einige Gedanken gemacht:

  • Die Abfrage müsste teilweise etwas offener sein können. Z.B. suche nach Jahr und nicht nach Datum, suche nach Gemeinde, Flurname oder Herkunftsnummer nicht nach Gesamtherkunft.

  • Die Filterresultate sind teilweise etwas verwirrend, da sie nur bei demjenigen Zugang für welche der Filter gesetzt wird angezeigt werden. Filtere ich beispielsweise eine bestimmte Kultur, finde ich diese über den Zugang Kulturen (hier wird nur die gesuchte Kultur angezeigt), jedoch bei anderen Zugängen z.B. über Gärten stehen dann noch 80 Gärten mit leeren Kulturen (man hat dann z.T. den Eindruck, hier seien keine Kulturen vorhanden, dabei wurden diese nur weggefiltert). Hier wäre es allenfalls sinnvoll, wenn die Gärten ohne eine entsprechende Kultur auch weggefiltert werden, damit man schön nur diejenigen Gärten in der Übersicht hat, welche auch die gesuchte Kultur enthalten.

  • Damit besser klar ist, dass man sich in einer Filteransicht befindet, könnte der Hintergrund des Strukturbaumes hellorange werden - das ist dann quasi die Filteransicht des Strukturbaumes (Zuerst hatten wir uns ein separates Filter-Fenster mit den Filter-Resultaten überlegt - die Lösung mit der orangenen Hintergrundfarbe im Strukturbaum ist aber einfacher und die bessere Lösung, da kein spezielles Zusatzfenster implementiert werden muss). Eine weitere Möglichkeit ist es zudem das Filtersymbol in der Leiste oben zusätzlich zum Güsel-Symbol orange einfärben, wenn Filter gesetzt.

Vor Änderungen bitte auch Issue 88 beachten, da Zusammenhang - Synergien/Konflikte seitens Programmierung möglich.

@barbalex
Copy link
Owner

barbalex commented Feb 8, 2021

Vor Änderungen bitte auch Issue 88 beachten, da Zusammenhang - Synergien/Konflikte seitens Programmierung möglich

richtig

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

suche nach Jahr und nicht nach Datum

Ziel

Flexibler Filtern. Macht in meinen Augen viel Sinn, weil Filtern ein zentrales Instrument ist, um mit grossen Datenmengen umzugehen. Die es hier durchaus gibt.

Ich bin nicht 100% sicher, ob gelegentliche Benutzer die Vorteile einer mächtigen Filterung ebenso gut nutzen werden, wie regelmässige. Aber: Das zu lösende Problem stellt sich kaum dem einfachen Gärtner, weil dieser nicht vor einer Flut von Daten steht. Vorteilhaft ist dies also v.a. für:

  • Topos-MitarbeiterInnen
  • AV's
  • Gärtner aus sehr grossen Gärten (GAW)

Ich sehe zwei Varianten:

  • wie von dir gesagt: nach Jahr. Vorteil: der Filter ist schnell zu setzen (und entspricht oft dem gewünschten Resultat?)
  • von - bis: Zwei Datum-Felder, um zu bestimmen, zwischen welchen zwei Daten ein Datum liegen soll. Vorteil: sehr flexibel. Nachteil: aufwändiger zu setzen

Man könnte auch beide Varianten ergänzen. Wie unten dargelegt ist der zusätzliche Aufwand nicht mehr besonders gross, wenn man es gleichzeitig macht, weil der Erst-Aufwand am höchsten ist.

Umsetzung

vermehrung müsste im Filterformular bei Datum-Feldern mehrere Varianten anbieten. Daher müssten Datum-Felder optisch abgehoben werden, d.h. einen einzigen Bereich bilden, dem man gut ansieht, dass die zwei bis drei Varianten darin sich auf dasselbe Feld beziehen während sie sich gegenseitig ausschliessen, d.h. es kann nur eine der drei Varianten gleichzeitig gesetzt werden. Das bedingt den Bau eines in allen betreffenden Formularen einzusetzenden etwas komplexen Moduls.

Ich schätze den Aufwand für eine der beiden Varianten:

  • Planung: 2 h
  • Filter-Store ergänzen (5x): 2 h
  • Filter-Anwendung anpassen: 3 h (ist wenig, da heute schon modularisiert)
  • Formulare anpassen (zwei bis vier Felder, optisch abheben, Code um den Filter anzuwenden) in 5 Formularen: 5 Stunden

Wenn wir im selben Arbeitsgang beide Varianten ergänzen (nach Jahr und von-bis) kämen wohl ca. 2 h dazu.

Total also rund 12 bis 14 Stunden.

Wenn es noch weitere Anpassungen am Filter gibt, sollten die auch gleichzeitig erfolgen, um den Aufwand zu minimieren.

Dieselbe Methode könnte auch in apflora eingeführt werden. Mit etwas reduziertem Aufwand, wenn es hier schon geschah (oder umgekehrt). In apflora müssen die Filter aber ganz anders angewandt werden. Dieser Teil ist hier deutlich einfacher, dank der offline-Fähigkeit. Darum hält sich der Vorteil in Grenzen.

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

suche nach Gemeinde

Das müsste präzisiert werden. Die Gemeinde wird nur an zwei Orten explizit erfasst: Herkunft und Person. Daneben gibt es die Möglichkeit, Koordinaten zu erfassen (Garten, Herkunft, Sammlung).

Ich sehe diese Möglichkeiten:

  • Filtern nach Gemeinden in den existierenden Feldern: Ist heute schon möglich. Also vermutlich nicht gemeint
  • Filterung von Gärten, Herkünften und Sammlungen, deren Koordinaten in der betreffenden Gemeinde liegen?
  • Filterung von Daten, die via den Garten ,Herkunft oder Sammlung verortet sind, dessen Koordinaten in der betreffenden Gemeinde liegen? Also: Kultur, Teilkultur, Zählung, Lieferung, Event oder gar Art?
  • Müsste auf einer Karte ein Umriss gezeichnet werden können?

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

Flurname

Ähnliche Fragestellung wie bei den Gemeinden: Der Lokalname ist nur bei den Herkünften erfasst. Erwartet ihr, dass:

  • Sammlungen und Kulturen gefunden werden aufgrund des Lokalnamens ihrer Herkunft?
  • Oder dass gefunden wird aufgrund der Koordinaten und der Flurnamen aus der LK?

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

Herkunftsnummer nicht nach Gesamtherkunft

Guter Punkt.

Ziel

Um es anders zu formulieren:

Viele Felder stellen in Auswahllisten verknüpfte Datensätze dar. Beispiele: Kultur.Art, Kultur.Herkunft, Kultur.Garten, Garten.Person
Im Filtermodus kann daher jeweils genau wie im normalen Formular ein Eintrag gewählt werden. Bloss möchte man ev. flexibler sein können.

Umsetzung

Dazu könnte man im Filterformular zusätzlich zum Auswahlfeld ein normales Textfeld anbieten. Dieses setzt dann mit der Benutzereingabe den Filter nach verschiedenen Möglichkeiten:

  • Filterwert kommt im Label vor
    Der Label ist der Text, der den Datensatz im Navigationsbaum und in der Auswahlliste kennzeichnet - wobei das nicht immer genau gleich ist. Aber es könnte diejenige Version verwendet werden, die im Navigationsbaum dort verwendet wird, wo nur dieser Typ Datensätze aufgelistet wird. Für Kultur z.B. im Ast Kulturen. Dann ist ja in der Regel im Label alles drin, was am wichtigsten ist, um den Datensatz zu kennzeichnen. Z.B. die Herkunfts-Nummer
  • Filterwert kommt in irgend einem Feld des betreffenden Datensatzes vor. Das kann (muss nicht) dazu führen, das unerwartet viele Ergebnisse erscheinen, z.B. wenn es Bemerkungsfelder gibt mit viel Text. Oder wenn es neben der Herkunftsnummer im gleichen Formular diverse andere Nummern gäbe. Ist aufwändig umzusetzen und ressourcenhungrig. Aber vermutlich die am einfachsten zu verstehende Methode
  • Filterwert kommt in einem der als dafür wichtig beurteilten Felder vor. Damit ist die Filterung gezielter (ähnlich dem Label). Dafür wird nicht aus allen Feldern gefiltert. Je nach Situation kann das immer noch recht aufwändig umzusetzen sein
  • Häufig werden mit viel Aufwand Felder nach ihrer Bedeutung gewichtet. Und die Suche/Filterung tolerant auf Schreibfehler gemacht. Ist alles möglich aber relativ aufwändig und ressourcenhungrig

Das Doppel-Feld-Kombo muss sich wie im Fall des Datums (siehe oben) optisch abheben, damit die Benutzerin die Übersicht bewahrt.

Der Aufwand hängt nicht nur von der gewählten Variante ab. Sondern ganz praktisch auch davon, ob die App danach immer noch schnell genug auf Filtereingaben reagiert. Auch wird der beanspruchte lokale Speicher erhöht werden, weil die kombinierten Daten aus den zu berücksichtigenden Feldern zusätzlich zwischengespeichert werden müssen. Diese Wirkungen sind leider nur schlecht voraus zu schätzen. In diesem Sinne besteht ein gewisses Risiko unerwünschter Nebenwirkungen.

Ich rechne mit drei bis vier Tagen Aufwand.

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

Die Filterresultate sind teilweise etwas verwirrend, da sie nur bei demjenigen Zugang für welche der Filter gesetzt wird angezeigt werden. Filtere ich beispielsweise eine bestimmte Kultur, finde ich diese über den Zugang Kulturen (hier wird nur die gesuchte Kultur angezeigt), jedoch bei anderen Zugängen z.B. über Gärten stehen dann noch 80 Gärten mit leeren Kulturen (man hat dann z.T. den Eindruck, hier seien keine Kulturen vorhanden, dabei wurden diese nur weggefiltert). Hier wäre es allenfalls sinnvoll, wenn die Gärten ohne eine entsprechende Kultur auch weggefiltert werden, damit man schön nur diejenigen Gärten in der Übersicht hat, welche auch die gesuchte Kultur enthalten

Ganz guter Punkt.

Aber leider nicht simpel zu lösen. Jedenfalls ist es mir auch schon aufgefallen aber ich habe mich nicht getraut, es anzugehen, weil es ganz bestimmt diverse Situationen gibt, an die wir noch nicht denken. Die dann entweder kaum zu lösen sind oder von den Benutzern nicht verstanden werden.

Beispiel: In deinem Beispiel der Kulturen in Gärten macht es glaube ich 100% Sinn. Weil: Gärten enthalten im Navigationsbaum nur Kulturen und nichts anderes.

Bei den Kulturen selbst ist es schon viel schwieriger: Setzt man einen Filter auf Zählungen, den eine Kultur nicht erfüllt, soll dann die Kultur noch angezeigt werden? Vielleicht fragt sich ein Benutzer dann, wieso die Kultur nicht angezeigt wird, wenn sie doch immer noch existiert und z.B. Lieferungen hat.

Anderes Beispiel: Sollen alle Arten verschwinden, wenn alle ihre Kulturen weggefiltert wurden? Dabei gibt dort auch Sammlungen, die somit auch nicht mehr zugänglich sind.

Ähnliche Problem gibt es in den meisten Ästen des Navigationsbaums.

Auch gibt es Tabellen, in denen Beziehungen in mehrere Richtungen laufen, was die Weitergabe von Filterkriterien kompliziert. Beispiel Lieferungen: wird eine Kultur weggefiltert. Sollen dann alle Lieferungen verschwinden, welche von ihr ausgehen? Oder zu ihr hin führen? Und alles, was ausschliesslich an diesen Lieferungen hängt?

Falls wir es jemals schaffen würden, dies kohärent und verständlich zu machen, zweifle ich daran, dass die Leistungsfähigkeit von vermehrung nicht stark darunter leiden würde. Es gäbe VIELE zusätzliche Kriterien zu filtern.

Wir könnten das nur im von dir genannten Beispiel machen. Aber ist es dann verständlich, wieso das nur in diesem Beispiel passiert? Könnte das nicht im Gegenteil verwirrend sein?

@barbalex
Copy link
Owner

barbalex commented Feb 9, 2021

Damit besser klar ist, dass man sich in einer Filteransicht befindet, könnte der Hintergrund des Strukturbaumes hellorange werden - das ist dann quasi die Filteransicht des Strukturbaumes. Eine weitere Möglichkeit ist es zudem das Filtersymbol in der Leiste oben zusätzlich zum Güsel-Symbol orange einfärben, wenn Filter gesetzt

Ziel

Der Benutzerin ist bewusst, wann und wo gefiltert wurde.

Aktuelle Situation

Heute ist das viel dezenter umgesetzt: Mit dem von dir erwähnten Güsel-Symbol in der Titel-Leiste.

Und: In den Listenformularen sieht man oben rechts immer die Anzahl Datensätze verglichen mit den gefilterten. Im Garten von Andreas Keel sind das z.B. ungefiltert 8/8. Filtert man aber nach Aristolochia, sind es 1/8. Will heissen: Es werden zwar jetzt gerade (wegen des Filters) nur 1 angezeigt. Es gibt aber deren 8.

Was man sich auch bewusst sein muss: Es ist immer ein Filter gesetzt. Das seht ihr auch, wenn ihr die Filter-Formulare öffnet:

  • aktiv = ja in den Tabellen, wo dieses Attribut existiert
  • gelöscht = nein (normalerweise nicht sichtbar)

Mit anderen Worten: Das Güsel-Symbol markiert, dass ein Filter gesetzt ist, der vom standard-Zustand abweicht.

Euer Vorschlag: Navigationsbaum farbig hinterlegen

Ich sehe folgende Nachteile, wenn der Navigationsbaum generell farbig hinterlegt wird:

  • Er ist schwieriger zu lesen, weil der Kontrast sinkt
  • Egal, wo und wie gefiltert wird - der ganze Baum wäre farbig hinterlegt. Auch Bereiche, in denen die Filterung keinen Einfluss hat
  • In der Mobil-Ansicht ist der Baum normalerweise gar nicht sichtbar. Dort braucht es andere Hinweise

Alternative zum Vorschlag

Was im Navigationsbaum verglichen mit den Listenformularen fehlt, ist das Entgegensetzen der Anzahl gefilterter Datensätze zu der totalen Anzahl.

So steht heute z.B. im Garten von Andreas Keel im Knoten "Kulturen" einfach die Anzahl Datensätze, die gerade angezeigt werden. Stattdessen könnte dort wie im Listenformular 8/8 bzw. 1/8 stehen.

Damit wäre die Filterung sehr präzise ausgedrückt. Ohne dass die Lesbarkeit sinkt. Und in derselben Weise wie in der Mobilansicht bzw. dem Listenformular.

Der Aufwand dafür ist geschätzt:

  • Zusätzliche Abfragen in ca. 60 der 91 Knoten des Navigationsbaums
  • Die Leistung leider ein bisschen aber vermutlich nicht spürbar (weil nur die Abfragen für die sichtbaren Knoten ausgeführt werden)
  • ca. 60 * 8 Minuten = 8 Stunden plus Planung

Eurer Vorschlag: Filter-Schaltfläche orange einfärben

Eine weitere Möglichkeit ist es zudem das Filtersymbol in der Leiste oben zusätzlich zum Güsel-Symbol orange einfärben, wenn Filter gesetzt

Vorteile:

  • gut sichtbar ohne die Lesbarkeit von sehr viel Text einzuschränken

Nachteile:

  • Ist nicht sehr gezielt. Was genau wurde denn gefiltert?

Alternative zum Vorschlag

Im Baum und in den Listen-Formularen wird die Anzeige der Filterung (z.B. 1/8) orange und fett hervorgehoben, sobald gefiltert ist.

Aufwand: ca. 2 Stunden.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants