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

Skalierbarkeit des Systems für viele Gegenstände / Bibliotheken der Dinge #507

Open
danielappelt opened this issue Feb 8, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@danielappelt
Copy link
Contributor

danielappelt commented Feb 8, 2021

EDIT VOM ORIGINAL:
Die Infrastruktur für die Zuweisung von einem Artikel auf mehrere Zeitrahmen ist in der feature/holiday-timeframe-multiselect #1296 schon gelegt. Alle Codezeilen, die aktuell noch verhindern in Zukunft einen Zeitrahmen auf mehrere Timeframes zuzordnen sind dort mit #507 gekennzeichnet.

ORIGINAL:
Das ist ein sehr schönes Projekt! Das aktuelle Konzept mit Artikeln, Standorten und Zeitrahmen scheint für große Leihbestände wie zum Beispiel eines Leihladens / einer Bibliothek der Dinge aber unhandlich zu sein. Es wäre gut, wenn im README und auf der Webseite genauer dargestellt werden könnte, welche Schritte erfolgen müssen, um einen ersten Artikel ausleihbar zu machen und was dann für jeden weiteren Artikel nötig wäre (oder auch nicht). Darüber hinaus wäre es für eine Einsatzentscheidung hilfreich, von welcher Menge ausleihbarer Artikel ausgegangen wird oder etwas ähnliches.

Ein Leihladen wird im Allgemeinen recht viele Artikel vorhalten (vermutlich eine drei- oder vierstellige Anzahl). Die Ausleihzeiten (abgesehen vielleicht von der möglichen Ausleihdauer) bestimmen sich am ehesten über die Öffnungszeiten des Leihladens wären für die meisten Artikel also identisch. Grundsätzlich ist dies mit dem aktuellen System fast vollständig abbildbar. Im Detail ergeben sich aber einige Herausforderungen:

  • Für jeden Artikel muss mind. auch ein Zeitrahmen angelegt werden. Das macht bei vielen Artikeln vermutlich irgendwann keinen Spaß mehr. Die Auswahl einer Zeitrahmen-Vorlage bei Anlage eines Artikels könnte unter Beibehaltung des Datenmodells die Erfassung vereinfachen.
  • Wenn Zeitrahmen ein Startdatum haben, müssen sie auch ein Enddatum haben, damit sie ausleihbar sind. Vor Ablauf des Enddatums, muss dieses im Zeitrahmen i.A, wieder angefasst werden, um weitere Ausleihen zu ermöglichen. In diesem Fall wäre es sinnvoll, ein leeres Enddatum zu akzeptieren und den entsprechenden Test dann nicht durchzuführen.
  • Bei Zeitrahmen mit Einstellung wöchentliche Wiederholung / ohne ganzen Tag / für gesamten Slot und Überbuchung geblockter Tage beim Standort (für die Konfiguration von Öffnungszeiten) kann man Buchungscodes zwar aktivieren, diese werden aber nicht erzeugt. Im Code wird fest geprüft, ob Zeitrahmen mit ganzen Tagen konfiguriert sind - nur dann werden Buchungscodes erzeugt. Bei einer Zeitrahmen-Konfiguration mit ganzen Tagen bzw. "ohne Öffnungszeiten" müsste man für jede Ausleihe separat kommunizieren, wann der Artikel abgeholt werden kann.
  • Eine schnelle Übersicht über den aktuellen Bestand mit Filtern der Art "Rückgabe überfällig", "ausgeliehen", "ausleihbar" wären bei einem großen Bestand hilfreich.
@danielappelt danielappelt added the enhancement New feature or request label Feb 8, 2021
@chriwen
Copy link
Member

chriwen commented Feb 12, 2021

@danielappelt Vielen Dank für deine Rückmeldung und deine Anmerkungen. Wir werden deine Themen noch einmal intern intensiver besprechen, hier aber schon mal ein erstes Feedback:

a) globale Zeitrahmen: Das könnten wir uns durchaus vorstellen. Vom Datenmodell ist das prinzipiell möglich. Wir melden uns dazu zurück, wenn es konkrete Planungen gibt.

b) Das prüfen wir ebenfalls und schauen, was möglich. Grundsätzlich sollte es funktionieren

c) Das Verhalten ist erstmal so von uns vorgehesehen. Da die Codes derzeit ja pro Tag vorgeneriert, damit die Standorte sich diese Liste ausdrucken können. Für kürzere Intervalle macht das unserer Meinung nach keinen Sinn mehr. Hier würde man dann automatisch generierte Codes verwenden wollen. Diese Funktion werden wir auch in einer der nächsten Releases (bei entsprechender Nachfrage) implementieren. Hier müssten die Standorte den Code dann aber anhand der Mail bzw. am Rechner nachprüfen.

d) im nächsten Release wird zunächst eine Buchungsliste im Frontend verfügbar sein. Diese könnten wir entsprechend um solche Filter erweitern. Nehmen wir mit auf die Liste.

Viele Grüße,
Christian

@danielappelt
Copy link
Contributor Author

Zu b): Ich vermute es liegt an diesem Code-Block und an #508.

hansmorb added a commit that referenced this issue Feb 8, 2024
* Frontend of multi-select timeframes
* multiselect logic
* migrated over more from experiment branch
* added tests for multi-tfs
* fixed unit tests
* fixed multi-select js (now exclusively for holidays)
* added hooks to update multi selection on dynamic selections
* added deprecation warning
* removed unused function
* fixed confusing wording
* added methods  & tests to get multiple items & locations from one tf
* more tests for timeframes with multi-assigned items / locations
* modified export to support multiply applied timeframes
* fixed caching issues for tfs with multiple assignments
* marked what needs to be done before #507
* moved upgrade function & added test (failing)
* added selection mode to tf creation in tests
* Adds also a test for the location taxonomy query
* add hook to trigger update on term deletion
* make sure, that multi-ids are always deleted for all non-holiday tfs
* added check for getLocations() with just one location
* use getter function for postID instead of magic property

---------

Co-authored-by: markus-mw <markus@mach-websites.de>
Co-authored-by: Chris <datengraben@gmx.de>
Co-authored-by: Chris <105302830+datengraben@users.noreply.github.com>
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

No branches or pull requests

2 participants