changes after own review

This commit is contained in:
Claus-Peter Hübner 2022-08-17 22:10:49 +02:00
parent f79b1032b7
commit 2f9244c965

View File

@ -13,11 +13,11 @@ In diesem Dokument werden alle zu dem Thema besprochenen und angedachten Anforde
* **[AS-1]** Eine Contribution bekommt zu den aktuell implementierten drei Status-Werten (eingereicht, bestätigt und abgelehnt) noch einen vierten Status (in Arbeit) hinzu
* eingereicht (pending): Die Contribution wurde vom User bzw. vom Moderator neu erfasst und wartet auf Bearbeitung der Moderatoren
* in Arbeit (inprogress): Die Contribution wurde von einem Moderator in Bearbeitung genommen, in dem er eine Rückfrage als Nachricht an den User erfasst hat und wartet auf Beantwortung vom User, dem die Contribution zugeordnet ist
* bestätigt (confirmed): Die Contribution wurde von einem Moderator genehmigt und der Betrag ist dem User der Contribution schon gutgeschrieben. Dies ist eine Ende-Zustand auf den keine weitere Bearbeitung mehr folgt. **[AS-x]** Es kann selbst nach einer Bestätigung der Contribution noch eine neue Nachricht dazu erfasst werden.
* in Arbeit (inprogress): Die Contribution wurde von einem Moderator in Bearbeitung genommen, in dem er diese im AdminInterface zur Anzeige gebracht hat. Dies dient der Verhinderung der parallelen Bearbeitung von mehreren Moderatoren. Dieser Status bleibt auch erhalten, wenn der Moderator eine Rückfrage als Nachricht an den User erfasst und auf auf Beantwortung vom User wartet, dem die Contribution zugeordnet ist
* bestätigt (confirmed): Die Contribution wurde von einem Moderator genehmigt und der Betrag ist dem User der Contribution schon als Transaktion gutgeschrieben. Dies ist ein Ende-Zustand auf den keine weitere Bearbeitung mehr folgt. **[AS-x]** Es kann selbst nach einer Bestätigung der Contribution noch eine neue Nachricht dazu erfasst werden.
* abgelehnt (denied): die Contribution wurde vom Moderator abgelehnt und es hat keine Gutschrift des Betrages auf dem Konto des Users stattgefunden. Dies ist ein Ende-Zustand auf den keine weitere Bearbeitung mehr folgt. **[AS-x]** Es kann selbst nach einer Ablehnung der Contribution noch eine neue Nachricht dazu erfasst werden.
* **[AS-1]** Sobald ein Moderator eine Contribution zur Bearbeitung anzeigt, wird sofort die ModeratorId und/oder der neue Status in die Contribution gespeichert, um diese für andere Moderatoren zu sperren. Dies ist notwendig, um fälschlicherweise ein paralleles Bearbeiten einer Contribution durch mehrere Moderatoren zu verhindern.
* **[AS-1]** Bei der Bestätigung einer Contribution wird neben der Status-Änderung auf *confirmed* eine neue Nachricht erzeugt. Diese Nachricht enthält einen Bestätigungstext, der im Frontend als Standard-Bestätigungstext vorbelegt ist und vom Moderator für eine individuelle Bestätigung überschrieben werden kann. Das Speichern der Contribution-Bestätigung erfolgt nach dem die zugehörige Schöpfung als Transaktion erfolgreich gespeichert ist. Falls es beim Speichern der Gutschrift und/oder der Contribution inkl. Message zu einem Fehler kommt, darf weder die Contribution noch die Transaktion gespeichert werden, sondern es muss eine Fehlermeldung ohne Änderungen der Datanbankdaten erfolgen.
* **[AS-1]** Sobald ein Moderator eine Contribution im AdminInterface zur Bearbeitung anzeigt, wird sofort die ModeratorId und der Status "in Arbeit" in die Contribution gespeichert, um diese für andere Moderatoren zu sperren. Dies ist notwendig, um fälschlicherweise ein paralleles Bearbeiten einer Contribution durch mehrere Moderatoren zu verhindern. Somit wird im Normalfall, bei dem der Moderator ohne Rückfrage die Confirmation bestätigt, immer allein durch die Anzeige der Confirmation der Status "in Arbeit" in die Confirmation geschrieben. Erst danach erfolgen die Schreibvorgänge der Transaktion und Contribution-Bestätigung.
* **[AS-1]** Bei der Bestätigung einer Contribution wird neben der Status-Änderung auf *confirmed* eine neue Nachricht erzeugt. Diese Nachricht enthält einen Bestätigungstext, der im Frontend als Standard-Bestätigungstext vorbelegt ist und vom Moderator für eine individuelle Bestätigung überschrieben werden kann. Das Speichern der Contribution-Bestätigung erfolgt nach dem die zugehörige Schöpfung als Transaktion erfolgreich gespeichert ist. Falls es beim Speichern der Gutschrift und/oder der Contribution inkl. Message zu einem Fehler kommt, darf weder die Contribution, noch die Nachricht, noch die Transaktion gespeichert werden, sondern es muss eine Fehlermeldung ohne Änderungen der Datenbankdaten erfolgen.
* **[AS-1]** Bei der Ablehnung einer Contribution wird neben der Status-Änderung auf *denied* eine neue Nachricht erzeugt. Diese Nachricht enthält einen Ablehnungtext, der im Frontend als Standard-Ablehnungstext vorbelegt ist und vom Moderator für eine individuelle Begründung überschrieben werden kann.
* **[AS-1]** Zu einer Contribution können nur der besitzende User und die Moderatoren eine Nachricht erfassen. **[AS-x]** Für evtl. Bemerkungen, Kritik und Anregungen kann ein beliebiger User über die *Gemeinschaft*-Anzeige auch Nachrichten zu Contributions anderer User erfassen.
* **[AS-1]** Eine Contribution kann vom User der Contribution oder einem Moderator gelöscht werden, egal ob an der Contribution schon Nachrichten zugeordnet sind oder nicht. Beim Löschen muss der User bzw. Moderator eine Begründung formulieren, die beim Löschen dann als Nachricht an die Contribution noch angehängt wird. Dies dient der besseren Nachvollziehbarkeit im Falle von nachträglichen Rückfragen bzw. Analysen.
@ -26,9 +26,10 @@ In diesem Dokument werden alle zu dem Thema besprochenen und angedachten Anforde
* noch keine Nachrichten existieren (graue Sprechblase)
* mindestens eine Nachricht existiert (blaue Sprechblase)
* **[AS-x]** Gesamtsanzahl der existierenden Nachrichten (z.B. Zahl im bzw. neben Sprechbalsen-Icon)
* **[AS-x]** Anzahl der ungelesenen Nachrichten (z.B. Zahl/Zahl im bzw. neben Sprechblasen-Icon)
* **[AS-1]** Das Bearbeiten einer Contribution ist im Status *eingereicht* möglich. Solange noch keine Nachrichten anhängig sind, wird nach dem Bearbeiten keine weitere Aktion notwendig, es erfolgt noch keine Historisierung. Sobald aber schon mindestens eine Nachricht anhängig ist, muss eine Historisierung der Contribution-Bearbeitung erfolgen. Das bedeutet, dass beim Starten der Bearbeitung der original Contributiontext und -Betrag als Nachricht mit besonderer Kennzeichnung als Historisierungsnachricht (*Messages.createdAt = Contribution.createdAt*) erzeugt und angehängt wird. Der geänderte bzw. neue Inhalt der Contribution wird in der Contribution selbst gespeichert und das updatedAt und updatedBy der Contribution wird aktualisiert. Die Reihenfolge der Historisierung ergibt sich aus dem Zeitstempel an dem die Historisierungs-Nachricht erzeugt wurde.
* [AS-1] Folgende Status-Übergänge sind für eine Contribution möglich:
* **[AS-x]** Anzahl der neuen sprich ungelesenen Nachrichten (z.B. Zahl/Zahl im bzw. neben Sprechblasen-Icon)
* **[AS-x]** Sobald die Detailansicht einer Contribution mit den angehängten Nachrichten zur Anzeige gebracht wird, erfolgt in allen bisher noch nicht angezeigten Nachrichten - Attribut presented_at = null, ein Update in dem das prsented_at = current date gesetzt wird.
* **[AS-1]** Das Bearbeiten einer Contribution ist im Status *eingereicht* möglich. Solange noch keine Nachrichten anhängig sind, wird nach dem Bearbeiten keine weitere Aktion notwendig, es erfolgt noch keine Historisierung. Sobald aber schon mindestens eine Nachricht anhängig ist, muss eine Historisierung der Contribution-Bearbeitung erfolgen. Das bedeutet, dass beim Starten der Bearbeitung der original Contributiontext und -Betrag als Nachricht mit besonderer Kennzeichnung - *type* = 'HISTORY' und *Messages.createdAt = Contribution.createdAt -* erzeugt und angehängt wird. Der geänderte bzw. neue Inhalt der Contribution wird in der Contribution selbst gespeichert und das *updatedAt* und *updatedBy* der Contribution wird aktualisiert. Die Reihenfolge der Historisierung ergibt sich aus dem Zeitstempel, an dem die Historisierungs-Nachricht erzeugt wurde.
* **[AS-1]** Folgende Status-Übergänge sind für eine Contribution möglich:
![img](./image/ContributionStates.png)
@ -43,7 +44,7 @@ In diesem Dokument werden alle zu dem Thema besprochenen und angedachten Anforde
* **[AS-1]** Analog zur Detailansicht einer Contribution in der Wallet wird auch eine Detailansicht der Contributions im Admin-Bereich eingebaut.
* **[AS-1]** Die Länge einer Nachricht wird auf maximal 2000 Zeichen begrenzt
* **[AS-1]** Die Nachrichten werden als einfach verkettete Liste an die Contribution angehängt. Es wird keine Untertützung von Nachrichten an Nachrichten geben
* **[AS-1]** Eine Nachricht unterscheidet sich im Typ, ob es eine vom User/Moderator manuell erstellte oder ob es eine vom System automatisierte Nachricht -z.B. Contribution-Versionierung, Nachricht über Confirmation, etc. - ist
* **[AS-1]** Eine Nachricht unterscheidet sich im Typ, ob es eine vom User/Moderator manuell erstellte oder ob es eine vom System automatisierte Nachricht -z.B. Contribution-Versionierung, Nachricht über Confirmation, etc. - ist (type: HISTORY, DIALOG)
* **[AS-1]** Ist die letzte, sprich jüngste Nachricht eine manuell erstellte Nachricht, kann diese vom Ersteller der Nachricht - `Messages.userId` - nachträglich bearbeitet werden. Neben dem geänderten Nachrichtentext wird der Zeitpunkt der Änderung im Feld `updatedAt `erfasst. Die Einsortierung in der Nachrichtenliste bleibt auch bei einer nachträglichen Änderung auf dem Feld `createdAt`.
## Contribution Ansichten