Skip to content

Releases: listiges-kaenguru/auslagenflow

v3.4.0 – Versionsprüfung gegen GitHub

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 16 Oct 22:29
8a50b8d

Hinzugefügt

  • Versionsprüfung gegen GitHub: Das Profil zeigt unter „App-Version“, ob auf GitHub eine neuere Version von AuslagenFlow erschienen ist („Neue Version auf GitHub“, für Admins mit Link zum Release). Bisher meldete „Die App ist auf dem neuesten Stand“ nur, dass der Browser die auf dem Server installierte Version nutzt.
  • Die Abfrage stellt der Server, nicht der Browser (neue Route GET profil/version, über cURL oder allow_url_fopen). Er merkt sich das Ergebnis 12 Stunden in va_meta und fragt nach einem Fehlschlag frühestens nach einer Stunde erneut. Daten des Vereins oder der Mitglieder werden dabei nicht übertragen.

Geändert

Kein neues Datenbankschema.

Hinweise zum Update

Dateien per FTP über die alten laden, api/config/config.php dabei nicht löschen. Die Browser der Mitglieder zeigen danach „Aktualisierung verfügbar“.

v3.3.1 – Code aufgeräumt

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 16 Oct 09:28
2beb7d6

Reines Refactoring ohne sichtbare Änderung (gleiche Oberfläche, gleiches Verhalten, gleiche API):

  • Entfernt: ungenutzte Funktion neueId(), Konstante STATUS_WERTE, CSS für die frühere
    Status-Knopfleiste (.status-leiste, .status-btn*, --offen-aktiv) und .beleg-knoepfe--einzeln
  • Frontend: gemeinsamer Helfer mitFehlerToast() (Ladezustand + Fehler-Toast) statt eigener
    Varianten in Profil, Anmeldung, Übersicht und Kasse; MIN_PASSWORT nur noch in sitzung.js;
    Beleg-Anzeige im Detail-Fenster in einer Funktion; Kommentare nutzen formatiereBetrag()/plural();
    Kasse gruppiert pro Darstellung nur noch einmal; Export ohne doppelte ZIP-Optionen/Beleg-Namen
  • Backend: Helfer inTransaktion(), platzhalter(), istDoppelterEintrag(), fuehreBlobAus()
    (lib/db.php), anfrageTyp() (lib/http.php), hatKassenrolle()/ladeBenutzerFuerClient()
    (lib/sitzung.php); dbEingabe() nach lib/db.php und auch für die Ersteinrichtung genutzt;
    die Kassen-Abfrage verwendet AUSLAGEN_SPALTEN/AUSLAGEN_JOINS statt einer Kopie von AUSLAGEN_SELECT

AuslagenFlow v3.3.0

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 15 Oct 10:48
955f2d5

Neuer Name: AuslagenFlow

Von der Auslage bis zur Erstattung. Die App hieß bisher „VereinsAuslagen“, das Repository AuslagenVerwaltung. Alte Links auf GitHub leiten automatisch weiter.

  • Neuer Name überall, wo er sichtbar ist: Titel, App-Name auf dem Startbildschirm, Lizenzhinweis, PDF-Fußzeile, Dateinamen von Exporten, Einreichungen und Wiederherstellungscodes.
  • Neue Einträge in der Authenticator-App und neue Passkeys tragen den Namen „AuslagenFlow“. Bestehende Einträge und Passkeys funktionieren unverändert weiter und behalten ihren alten Namen.
  • Datenbank, Backups und gespeicherte Daten bleiben unverändert gültig.

Keine Schemaänderung. Zum Aktualisieren die geänderten Dateien hochladen; die App bietet das Update im Profil an. Bei installierten Apps ändert sich der Name auf dem Startbildschirm je nach System erst nach dem Update oder einer Neuinstallation.

VereinsAuslagen v3.2.1

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 14 Oct 15:46
e380954

Lizenz AGPL-3.0

  • Lizenzwechsel: VereinsAuslagen steht jetzt unter der GNU AGPL v3 statt der GPL v3. Wer die App übers Netz nutzt, kann den Quelltext beziehen.
  • Quelltext-Link in der App: Die Anmeldeseite und das Profil (unter „App-Version“) zeigen einen Lizenzhinweis mit Link zur AGPL und zum Repository.
  • Für Betreiber: Für den unveränderten Betrieb ist nichts zu tun. Wer die App verändert betreibt, stellt QUELLTEXT_URL in js/hilfen.js auf den eigenen geänderten Quelltext um (siehe README → Lizenz).

Keine Schemaänderung. Zum Aktualisieren die geänderten Dateien hochladen; die App bietet das Update im Profil an.

VereinsAuslagen v3.2.0

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 05 Oct 12:29
76815a8

Rückfragen direkt in der App: Zu jeder Einreichung gibt es jetzt einen Verlauf, in dem Mitglied, Kassenwart und Vorstand schreiben – und in dem jede Statusänderung festgehalten wird.

Neu für Mitglieder

  • 💬 Verlauf bei jeder Einreichung: Fragen der Kasse beantworten oder selbst etwas mitteilen („Beleg folgt per Post“), auf Wunsch mit Bezug auf eine bestimmte Auslage. Jede Statusänderung steht mit Person und Uhrzeit darin.
  • Neues auf einen Blick: roter Punkt an „Übersicht“, „💬 neu“ an der Einreichung.
  • Aufgeräumte Übersicht: Einreichungen lassen sich auf- und zuklappen. Erstattete wandern nach 5 Minuten in den Bereich Abgeschlossen, zurückgezogene und abgelehnte stehen unter Abgebrochen – mit PDF und Verlauf.
  • Kommentare lassen sich nicht bearbeiten; den eigenen kannst du 5 Minuten lang löschen, solange niemand geantwortet hat.

Neu für Kassenwart und Vorstand

  • Rückfragen im Verlauf jeder Einreichung, Filter 💬 Ungelesen in der Kasse (auch für neu eingegangene Einreichungen).
  • ✖ Nicht genehmigen verlangt jetzt eine Begründung; sie erscheint beim Mitglied im Verlauf.

Für alle

  • Aktualisieren oben in der Kopfzeile, in jeder Ansicht.
  • Breitere Darstellung am Laptop, Filter brechen um statt seitlich zu scrollen.

Für Betreiber

  • Vorher die Datenbank sichern. Beim ersten Aufruf wird sie automatisch auf Schema 6 umgestellt. Bereits erstattete Einreichungen gelten danach sofort als abgeschlossen.
  • Die Datensicherung in der App (Backup speichern/einspielen) ist jetzt standardmäßig ausgeschaltet und ausgeblendet, weil alle Daten in der Datenbank liegen. Für Tests oder den Umstieg von der Einzelplatz-Version: 'datensicherung' => true in api/config/config.php ergänzen.

Details im CHANGELOG und im Benutzerhandbuch.

Full Changelog: v3.1.1...v3.2.0

VereinsAuslagen v3.1.1

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 05 Oct 09:58
d30a6d3

Neue Rollen Kassenwart und Vorstand, ein neuer Status „Erstattung veranlasst“ und Einreichungen, die als Ganzes bearbeitet werden – samt gespeichertem Einreichungs-PDF.

Neu für Mitglieder

  • Einreichungen bleiben zusammen. In der Übersicht stehen offene Auslagen einzeln, darunter jede Einreichung als eigener Kasten. Der Status gilt immer für die ganze Einreichung: ↩ Einreichung zurückziehen, ● Als erstattet markieren, ↩ Doch noch nicht erstattet.
  • Eingereichte Auslagen lassen sich einzeln nicht mehr ändern oder löschen. Zum Ändern die Einreichung zurückziehen – das geht, solange der Kassenwart die Erstattung noch nicht veranlasst hat.
  • 📄 Einreichungs-PDF: Das PDF wird beim Einreichen gespeichert und lässt sich jederzeit wieder öffnen.

Neu für Kassenwart und Vorstand

  • Neuer Bereich Kasse (Alt+5) mit den Einreichungen aller Mitglieder, ihren Belegen und dem Einreichungs-PDF. Offene Auslagen bleiben privat.
  • Kassenwart: 💸 Erstattung veranlasst (und Rücknahme), IBAN des Mitglieds sichtbar. Den Eingang bestätigt das Mitglied selbst mit „Erstattet“.
  • Kassenwart und Vorstand: ✖ Nicht genehmigen gibt eine Einreichung zurück; die Auslagen sind beim Mitglied dann wieder offen.
  • Nach „Erstattung veranlasst“ ist eine Einreichung zur Nachvollziehbarkeit festgeschrieben.

Für Administratoren

  • Die Kassenrolle (Keine / Kassenwart / Vorstand) wird in der Benutzerverwaltung vergeben. Administratoren sehen weiterhin keine fremden Auslagen, außer sie haben selbst eine Kassenrolle.
  • Konten mit veranlassten Erstattungen lassen sich nur noch sperren, nicht löschen.

Update-Hinweise

  • Vorher die Datenbank sichern. Beim ersten Aufruf nach dem Update wird sie automatisch auf Schema 4 umgestellt. Bereits eingereichte und erstattete Auslagen werden dabei je Mitglied und Status zu „Übernommen aus früherem Stand“ zusammengefasst.
  • Einreichungs-PDFs enthalten alle Belege; ihre Größe ist durch post_max_size begrenzt. Bei großen Einreichungen ggf. den Wert erhöhen.
  • Ab dieser Version tragen Versionsnummern ein „v“.

Details im CHANGELOG und im Benutzerhandbuch.

Full Changelog: 3.0.6...v3.1.1

VereinsAuslagen 3.0.6

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 05 Oct 07:30

Neuer Bereich „App-Version“ ganz unten im Profil zeigt, welche Version gerade läuft. Gibt es eine neuere Version, erscheint dort „Aktualisierung verfügbar“ mit der neuen Versionsnummer und dem Knopf „🔄 Jetzt aktualisieren“.

Full Changelog: 3.0.5...3.0.6

VereinsAuslagen 3.0.5

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 04 Oct 22:09
36c2c55

What's Changed

New Contributors

Full Changelog: 3.0.4...3.0.5

VereinsAuslagen 3.0.4

Choose a tag to compare

@listiges-kaenguru listiges-kaenguru released this 04 Oct 18:35

Changelog – VereinsAuslagen

Aktueller Stand

App-Version (sw.js → VERSION) 3.0.4
Schema-Version (api/lib/db.php → SCHEMA_VERSION) 1
Tests keine automatisierten Tests

Der Funktionsumfang ist vollständig umgesetzt (siehe unten). Es gibt keine bekannten offenen Fehler.

Funktionen

Auslagen

  • Erfassen mit Datum, Händler, Betrag, Notiz, Beleg (Foto wird verkleinert, oder PDF, max. 15 MB)
  • Übersicht mit Status offen / eingereicht / erstattet, Detail-Bottom-Sheet zum Bearbeiten
  • Einreichen: offene Auslagen einzeln auswählen → PDF (Übersicht + Stammdaten + Belege)
  • Export (CSV/PDF/ZIP), Datensicherung als ZIP, Import von Backups der früheren Einzelplatz-Version
  • PWA: installierbar, App-Shell offline, Update-Hinweis; Hell/Dunkel/System-Farbschema

Mehrbenutzer / Server

  • Ersteinrichtung im Browser (DB-Zugang + erster Admin → api/config/config.php)
  • Login/Logout, Pflicht-Passwortwechsel beim ersten Login, Passwort ändern
  • TOTP-2FA mit 10 Wiederherstellungscodes; Passkeys (WebAuthn) als Alternative
  • Stammdaten (Name, IBAN, Ort) im Profil, gehen ins Einreichungs-PDF
  • Admin: Benutzer anlegen/sperren/löschen, Rolle ändern, Passwort und MFA zurücksetzen,
    Datenbank-Verbindung wechseln (mit optionaler Datenübernahme)
  • Sicherheit: CSRF (Header + Origin), Brute-Force-Sperre, Sitzungs-Generationen, strikte CSP

API-Routen (api/?r=…)

Datei Routen
einrichtung.php GET status, POST einrichtung
anmeldung.php POST anmeldung/passwort, anmeldung/mfa, anmeldung/passkey-optionen, anmeldung/passkey, abmeldung
profil.php GET profil, PUT profil/stammdaten, POST profil/passwort, profil/totp/{start,bestaetigen,deaktivieren,neue-codes}, POST/DELETE profil/passkey, POST profil/passkey-optionen
auslagen.php GET/POST/PUT/DELETE auslagen, POST auslagen/status, GET/PUT/DELETE beleg
admin.php GET/POST/PUT admin/benutzer, POST admin/benutzer/{passwort,mfa-zuruecksetzen,loeschen}, GET/POST admin/db, POST admin/db/test

Datenbank (Schema 1)

va_meta, va_benutzer, va_wiederherstellung, va_passkeys, va_auslagen, va_belege
(LONGBLOB), va_anmeldeversuche.

Versionen

Neueste zuerst.

3.0.4 – erste öffentliche Version

  • Mehrbenutzer-Version mit PHP-Backend und MySQL/MariaDB (Funktionsumfang siehe oben)
  • Benutzerhandbuch für Mitglieder und Admins (BENUTZERHANDBUCH.md)

Offene Punkte / Ideen

  • Automatisierte Tests zumindest für die API-Routen
  • Ende-zu-Ende-Test auf echtem Webhosting (Apache mit .htaccess, nginx-Regeln aus der README)

Full Changelog: https://github.com/listiges-kaenguru/AuslagenVerwaltung/commits/3.0.4