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

Einschränkung Heavy-User Funktion integriert #697

Closed
chriwen opened this issue Jul 17, 2021 · 2 comments · Fixed by #1161
Closed

Einschränkung Heavy-User Funktion integriert #697

chriwen opened this issue Jul 17, 2021 · 2 comments · Fixed by #1161
Assignees
Labels
enhancement New feature or request

Comments

@chriwen
Copy link
Member

chriwen commented Jul 17, 2021

Anforderungen:

  • Prüfe Anzahl A von Buchungen von Nutzer X im Zeitraum Y (Tagen)
  • Wenn Schwellenwert (einstellbar) von A im Zeitraum Y (gerechnet ab dem heutigen Tag zurück) überschritten ist, wende folgende Regeln an:
    • Blockiere Buchungen im Zeitraum von B Tagen ab dem End-Datum der letzten Buchung von X
    • und/oder Begrenzung des Vorausbuchungszeitraums auf C Tage (setze advance_bookinkdays dynamisch auf den eingestellten werden)

Optional:

  • Mehrere Schwellenwerte mit entsprechenden Abhängigkeiten einstellbar (z.B. 3 feste Schwellenwerte)

Verortung der Einstellungen am Zeitrahmen mit folgenden Feldern:

  • Zu betrachtender zurückliegender Zeitraum für Buchungen eines einzelnen Nutzenden in Tagen (Y):
  • Schwellenwert für maximale Anzahl Buchungen (A) im Zeitraum Y (Zahl)
  • Buchungen erst wieder möglich ab B Tagen gerechnet von letzter Buchung (Buchungspause) in Tagen
  • Maximaler Vorausbuchungszeitraum in Tagen
@chriwen chriwen created this issue from a note in commonsbooking (> v2.0.0) (Backlog) Jul 17, 2021
@chriwen chriwen moved this from Backlog to To do in commonsbooking (> v2.0.0) Sep 3, 2021
@chriwen chriwen self-assigned this Sep 3, 2021
@hanneskasimir hanneskasimir moved this from To do to Backlog in commonsbooking (> v2.0.0) Jan 6, 2022
@RalphBike
Copy link

RalphBike commented Feb 15, 2022

Wir haben hierfür ebenfalls Verwendung, da wir mit einigen Intensiv-Ausleihern zu tun haben.

Konkrete Problem-Fälle, die verhindert werden sollen:

  1. Eine Person reserviert ein Rad mit aufeinanderfolgenden Buchungen für einen längeren Zeitraum, am Stück oder mit Pausen, z. B. 20 Tage am Stück
  2. Eine Person reserviert mehrere Räder gleichzeitig oder verteilt oft innerhalb eines Fensters von z. B. 30 Tage innerhalb von 90 Tagen

Gewünschtes Verhalten:
Ein Ausleiher kann maximal n Geschäftstage pro Interval von m Tagen ausleihen, über ALLE Räder. Z.B. 3 Tage innerhalb von 30 Tagen. Geschlossene Tage können evtl. ignoriert werden. n und m können konfiguriert werden, entweder

  1. global
  2. pro Item
  3. beides: global plus spezisch pro Item (spezifische Einstellungen überschreiben globale Einstellung, andernfalls wird vererbt)

Die Begrenzung sollte den Nutzern nicht explizit kommuniziert oder visualisiert werden, sondern nur dann, wenn das Limit erreicht wurde und auch dann nur wenige Infos rausgeben, um ein Ausnutzen eines maximalen Werts zu erschweren. Es soll nicht kommuniziert werden, ab wann das Interval zu Ende ist und der Nutzer wieder ausleihen darf. Stattdessen soll der Buchungsversuch scheitern und eine Meldung erscheinen, dass der Nutzer das Angebot wegen vorherigen Buchungen nicht wieder buchen kann. Admin-Buchungen sollen nicht betroffen sein.

Optional: Das ganze könnte kollidieren mit ausleihbarem Zubehör (da mehrere Buchungen). Außerdem könnte es sinnvoll sein, nur bestimmte Nutzer damit zu beschränken, über eine Whitelist und eine Blacklist.

@chriwen
Copy link
Member Author

chriwen commented Feb 15, 2022

@RalphBike Danke für die Ergänzungen. Wir nehmen eure Anregungen in die Planung für diese Funktion mit auf. Das mit dem Zubehör sollte sich auch regeln lassen, in dem wir ggf. Buchungen verknüpfen und das so festhalten können.

@hansmorb hansmorb added the enhancement New feature or request label Jun 6, 2022
@chriwen chriwen moved this from Backlog to In progress in commonsbooking (> v2.0.0) Jul 3, 2022
@hansmorb hansmorb added this to the Heavy User Funktionen milestone Oct 22, 2022
@hansmorb hansmorb linked a pull request Jan 4, 2023 that will close this issue
3 tasks
@hansmorb hansmorb self-assigned this Jan 4, 2023
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
Development

Successfully merging a pull request may close this issue.

3 participants