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

Filter Refacturing #221

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

JohannMaierhofer
Copy link

@JohannMaierhofer JohannMaierhofer commented Apr 29, 2024

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:

  • Die Such Input Elemente von MitgliedControl nach FilterControl verschoben und MitgliedControl erbt von FilterControl
  • Die Elemente in den Views habe ich von addLabelPair in addInput geändert. Dann muss man den angezeigten Namen nicht extra eingeben.
  • Im MitgliedQuery habe ich den batch Parameter entfernt da er geregelt hat welche Elemente nur im Auswertung View vorkommen und umgekehrt. Durch das is...active() ist das nicht mehr nötig.
  • Beim Auswertung View für NichtMitglieder habe ich auch den generischen suchAddressTyp verwendet obwohl der Report nur einen selektierten Mitgliedstyp unterstützt und nicht alle. Das fange ich im PDF Report ab und gebe die Meldung aus, dass ein Mitgliedstyp ausgewählt werden muss wenn keiner ausgewählt wurde.
  • Dem EigenschaftenAuswahlDialog wird der Control übergeben. Sonst kann er nicht richtig aus die Settings zugreifen wegen der setting Prefixe. Die MitgliedEigenschaftenZuordnungAction und der MailEmpfängerAuswahlDialog nutzen die Settings nicht und können weiter einen neuen MitgliedControl übergeben.
  • Im MailEmpfängerAuswahlDialog habe ich den Verknüpfungs Button ausgeblendet weil er wie bei der MitgliedEigenschaftenZuordnungAction nicht verwendet wird.

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.

@dippeal dippeal added the enhancement New feature or request label May 4, 2024
@JohannMaierhofer
Copy link
Author

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
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants