openjverein / jverein

Open JVerein - Open Source Vereinsverwaltung
https://openjverein.github.io
GNU General Public License v3.0
42 stars 15 forks source link

Filter Refacturing #221

Closed JohannMaierhofer closed 3 months ago

JohannMaierhofer commented 4 months ago

In Zuge der Implementierung des Features von Spendenbescheinigungen per Mail versenden hätte ich gerne festgestellt welche Spendenbescheinigungen Mitglieder ohne Mail Adresse haben. Dazu würde ich einen Filter Bereich in den Spendenbescheinigung Liste View einbauen. So könnte man dann auch etwa nach Name oder Datum von/bis filtern.

Allerdings wollte ich jetzt die Suchfelder nicht nochmals implementieren und habe mir überlegt wie man die aus den Mitglieder Views wiederverwenden kann. Dazu habe ich jetzt alle Filter Inputs und deren Listener und Buttons in eine neue Klasse FilterControl.java verschoben. Das entschlackt auch den MitgliedControl.java. Für den User ändert sich damit erst einmal nichts, nur bis auf den Reset Button den ich jetzt auch in den Auswertung View für Mitglieder und NichtMitglieder platziert habe. Den Filter für die Spendenbescheinigung mache ich dann mit einem neuen Feature basierend auf diesem Refacturing.

Zur Erklärung der Änderungen:

Einen Fehler habe ich auch korrigiert. Im ZusatzfelderAuswahlDialog muss man beim Reset der Attribute bei Integer und Datum jeweils zwei Werte löschen, das von und bis.

Ich glaube ich habe nichts kaputt gemacht.

PS: Der fix aus #220 ist hier enthalten.

JohannMaierhofer commented 3 months ago

Ich habe bei den Auswertungs Views welche keinen Suchen Button haben noch einen Button eingefügt um die Filter zu speichern. Damit muss man nicht unbedingt auf Starten klicken um den Filter zu speichern.

JohannMaierhofer commented 3 months ago

Könntet ihr das bitte reviewen. Ich habe unter anderem bereits Filter für den Mail und Spendenbescheinigungen View auf Basis des neuen FolterControl implementiert und würde das auch gerne übergeben. Jetzt ist es ganz einfach die Filter zu implementieren. Der aktuelle Control erbt von FilterControl, man fügt die benötigten Inputs in den View ein und ergänzt das DB Query und schon funktioniert das Filter Reset, und Settings speichern. Und das Verhalten der Inputs ist überall gleich.

dippeal commented 3 months ago

Magst du mal ein paar vorher/nacher Screenshots machen. Ich versuche es dieses WE zu testen/reviewen.

JohannMaierhofer commented 3 months ago

Durch das Herausziehen der Filter Inputs sind die folgenden Views betroffen:

Bei den ersten beiden Views gibt es keine Änderung an der GUI. Es sind nur die Filter Inputs aus der Klasse MitgliedControl in die neue Klasse FilterControl verschoben worden. Bei den beiden anderen Views gilt das Gleiche, nur dass ich die beiden Buttons Filter-Reset und Filter-Speichern dazugefügt habe.

AuswertungMitgliedView alt: Screenshot_20240601_113151

AuswertungMitgliedView neu: Screenshot_20240601_113314

AuswertungNichtMitgliedView alt: Screenshot_20240601_113214

AuswertungNichtMitgliedView neu: Screenshot_20240601_114920

JohannMaierhofer commented 3 months ago

Im Mailempfänger Auswahldialog beim Button Eigenschaften die Gruppen-Verknüpfung entfernt da sie nicht verwendet wird. alt: Screenshot_20240601_121529

neu: Screenshot_20240601_121628