Skip to content

Bemerkungen bei Anlässen, Kursen und Lager löschen #2129

@Michael-Schaer

Description

@Michael-Schaer

Bei Kursen werden manchmal Essgewohnheiten (vegetarisch, vegan) im Bemerkungsfeld erfasst. Da es sich dabei um heiklere Benutzerdaten handeln könnte, sollen diese nur solange gespeichert werden, wie sie auch vom Küchenteam benötigt werden.

Als Ergänzung von #1060 soll deshalb die Bemerkung von Kursen, Lagern und Anlässen regelmässig gelöscht werden. Dies soll ebenfalls 3 Monate nach Durchführung des Kurses, Lagers oder Anlasses passieren.

Der Hilfetext für das Feld existiert bereits. Dort können wir informieren, dass die Daten nicht persistent sind:
grafik

Ergänzungen

  • Es darf nur das letzte Datum für die Löschung berücksichtigt werden (Events können mehrere Daten haben).
  • Es ist nicht nötig, die Daten im Backup zu löschen. Das Backup ist etwas träger im Vergessen. Das ist in diesem Fall ok so.
  • Die Funktion soll wenn möglich im Core umgesetzt werden
    • Dauer bis zur Löschung konfigurierbar
    • Per Config aktivierbar

Tech-Spec

  • Umsetzung im Core, aber standardmässig "deaktiviert" via eine extrem lange Frist
  • Dauer via settings.yml setzbar
  • Vorläufig scheint es den Aufwand nicht wert, eine extra Datumsspalte auf dem Event einzufügen, sodass der Event nur einmal verarbeitet wird. Daher iterieren wir einfach täglich über sämtliche alten Participations.
  • Sollte vor dem produktiv schalten mal noch mit einem PBS-DB-Dump durchgetestet werden, um festzustellen ob das Aktualisieren derart vieler Participations in sinnvoller Zeit machbar ist

ToDo

  • In settings.yml eine neue Einstellung event.participations.delete_additional_information_after_months, default sehr hoch wählen, z.B. 1200 Monate
  • Im PBS Wagon diese Einstellung auf 3 Monate setzen
  • Wieder im Core: Neuer täglich laufender Delayed::Job (Beispiel siehe hier)
    • Job sucht nach Event::Participations, bei denen das letzte event_date des Events seit mehr als x Monaten beendet ist (wobei x die neue Einstellung aus settings.yml ist)
    • Bei all diesen Participations die Spalte additional_information auf nil oder leeren String setzen
    • Falls das Setzen in Rubyland passiert, unbedingt find_in_batches o.ä. verwenden. Falls ein direktes DB-Statement möglich ist, umso besser
  • Mit einem PBS-DB-Dump testen, um herauszufinden wie lange der Job braucht und ob man trotzdem besser eine "erledigt_am" Spalte auf die Events-Tabelle machen würde
  • Specs schreiben
  • Mit angemessener Rolle "durchklicken"
  • CHANGELOG-Eintrag unter "unreleased" unten hinzufügen

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions