Wie kann ich die Verfügbarbeit von Personen checken?
am 26.04.2019 - 13:46 Uhr in
Hi,
ich nutze D8.15 und bin auf der Suche nach einer Möglichkeit die Verfügbarkeit von Personen in einem kleinen Team bei Planungseinträgen zu checken.
Dazu habe ich ein Inhaltstyp Job mit einem Referenz Inhalt Feld auf Kontkate und einem Datum/Zeit (von-bis) Feld angelegt.
Unter Kontakte sind 8 Personen aufgelistet.
Mein Ziel ist es bei der Eingabe feststellen zu können, ob eine Person aus dem Team noch buchbar ist oder schon gebucht worden ist. Und somit nicht mehr verfügbar ist. Eigentlich sowas wie unter D7 das Modul https://www.drupal.org/project/resource_conflict gemacht hat.
Hat jemand einen Tipp wie so etwas in D8 ginge - ohne ein eignes Modul zu schreiben?
danke!
- Anmelden oder Registrieren um Kommentare zu schreiben
Zuerst mussst Du mal genau
am 27.04.2019 - 09:38 Uhr
Zuerst mussst Du mal genau überlegen:
1. Wer sind Akteuere
Also wer legt die Personen an, wer darf sie buchen
2. Was machen sie genau anlegen, deaktivieren ect.
Buchen, Buchung zurück nehmen ect.
3. Gibt es feste Zeiteinheiten, die pro Person Buchbar sind? (Stundenblöcke)
4. Kann eine Person gleichzeitig von mehreren Personen gebucht werden? (Workshop mit mehreren Teilnehmern)
5. Kann eine Person gleichzeitig mehrere Personen buchen (Termin mit mehreren Tutoren)
Da würde ich mir als erstes mal ein Diagramm mit Objekten, Events ect. aufzeichnen, um Klarheit rein zu bringen.
Dann überlegen, wie viele Inhaltstypen mit Referenzen Du benötigst.
Ich unterstelle: Es gibt einen Administrator, der Personen anlegen und löschen darf.
Er kann auch Zeiteinheiten anlegen, die mit den Personen verknüpft sind (auf Stundenbasis).
Dann gibt es einen Gast oder angemeldeten User, der einen neuen Inhalt vom Typ Buchung erstellen darf.
Die Buchung zeigt Referenzen auf Zeitblöcke der gewünschten Personen, aber natürlich nur auf freie Zeit(Stunden-)blöcke (eines gewählten Tages)
Dann kannst Du vermutlich Einiges über Berechtigungen regeln.
Darf die Rolle, die Buchungen machen darf, auch eigene Buchungen löschen u.s.w.?
Einiges wird über Views gehen, also eine ÜBersicht über Personen, deren freien Zeitblöcke, eigene Buchungen ect.
Bevor wir im Detail überlegen, ob und was ohne oder mit Programmierung wie funktioniert, wäre gut, wenn Du mal über meine Annahmen schaust, ob das so passt, oder wo nicht?
Spannend wird das ganze auch durch den Anspruch, in Echtzeit zu funktionieren.
Also wenn jemand eine Buchung aufgeben möchte und die Liste freier Zeitblöcke für die Person sieht, muss sicher gestellt sein, dass die auch noch im Moment des Absendens frei sind, ect.
Also alles nicht ganz trivial.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
feedback Teambuchung
am 27.04.2019 - 10:30 Uhr
Hallo,
dank dir für dein Feedback.
Hier die kurze Antwort:
- Ein Teamleiter darf beliebige Jobs (Inahltstyp Job) mit einer bestimmten Zeitdauer (Date/Time Feld) für alle Team-Personen (Referenz auf Inhaltstyp: Team-Person) erstellen, bearbeiten und löschen. - Bevor jedoch der Job gespeichert wird, soll das CMS checken, ob die jeweilige Team-Person, die den Job erledigen soll nicht schon vorher gebucht wurde. In dem Fall darf das speichen nicht möglich sein.
Hier die Antworten auf deine Fragen:
1. Wer sind Akteuere
-> der Teamleiter (Rolle Teamleiter) darf die buchen, bearbeiten und löschen
2. Was machen sie genau anlegen, deaktivieren ect.
-> siehe 1.
3. Gibt es feste Zeiteinheiten, die pro Person Buchbar sind? (Stundenblöcke)
-> nein, Tag und Uhrzeit soll offen sein
4. Kann eine Person gleichzeitig von mehreren Personen gebucht werden? (Workshop mit mehreren Teilnehmern)
-> nein, ein Teammitglied kann nur einmal für eine bestimmte Zeit mit bestimmte Datum gebucht werden (keine Doppelbuchung)
5. Kann eine Person gleichzeitig mehrere Personen buchen (Termin mit mehreren Tutoren)
-> derjenige mit der Rolle "Teamleiter" kann alle buchen
dank dir!
Also dann müsste es so sein,
am 27.04.2019 - 15:30 Uhr
Also dann müsste es so sein, dass die Person ein Inhaltstyp ist und die Rolle Teamleiter darf neue Buchungen mit Referenz auf diese Person absetzen.
Es gibt eine View über alle Personen mit einem Ausschnitt der aktuellen Buchungen für diese Person, damit man einen gewissen Überblick hat.
In dieser View gibt es auch einen Link auf Termin Buchen.
Der Link führt auf eine Seite node/add/buchung.
Auf dieser Seite wird oben eine Blockview eingefügt mit den bereits getätigten Buchungen als View-Block. Ein übergebener Filter liefert die nid, damit nur die Buchungen für diese Person angezeigt werden.
Der Inhalt vom Typ Buchung hat ein Referenzfeld auf die Person (könnte mit kleiner Programmierung vorbelegt sein mit der übergebenen nid der Person).
Und es gibt ein Feld datum/zeit von bis.
Der Teamleiter hat zwar oben den Block mit den bereits gebuchten Terminen dieser Person und kann sich einen Zeitraum dazwischen raus suchen, aber natürlich muss beim Absenden noch geprüft werden, ob es nicht bereits eine Buchung für diese Person mit ÜBerschneidung im Zeitraum gibt.
Für Letzteres braucht man auf jeden Fall ein kleines Modul mit form_alter und validierung.
Je mehr Programmierung Du aufwendest, desto schöner kannn man das machen.
Z.B. könnte man den Block mit den Buchungen für diese person dynamisch mit Ajax nachladen, je nachdem, welches Datum der Teamleiter auswählt.
Natürlich braucht es dann auch eine View mit Buchungen, die dieser Teamleiter gemacht hat und wo er einen Link zum Editieren, Löschen der Buchung findet.
Idealerweise gibt es noch eine Email-Benachrichtigung an die Person, die gebucht wird, bzw. die braucht natürlich auch noch einen Report über die Buchungen auf sie.
Das ist alles kein Hexenwerk mit kleinen Hilfsfunktionen im Modul. Ganz ohne Programmieren wird es nicht gehen.
Allerdings ist da viel Bewegung drinnen und ich habe nicht immer den Überblick über die Module, die Dir da noch Arbeit ab nehmen.
Vielleicht schreibt ja noch jemand was.
Evt. könnte das (stabil vorliegende) Modul Workflow was bringen:
https://www.drupal.org/project/workflow
Die Buchungen haben ja auch bestimmte Stati und es benötigt BEnachrichtigungen, wenn sie den Status ändern.
Wichtig ist, das ganze Prozedere vorher mit den betroffenen Personen abzusprechen und viel Hirnschmalz in die Benutzerfreundlichkeit zu stecken, damit auch gerne damit gearbeitet wird.
Ich habe mir unter Drupal 8 ein Tool zur Abrechnung meiner Projekt-Aufträge gemacht, also Zeiterfassung und Rechnungsstellung und es macht wirklich Spaß, sich Zeit zu sparen, wenn die Prozesse sauber abgebildet sind.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Validierung
am 29.04.2019 - 06:00 Uhr
Ja, der Weg mit Typen und Referenzierung ist mir klar.
Da wo ich scheiter ist das hier "natürlich muss beim Absenden noch geprüft werden, ob es nicht bereits eine Buchung für diese Person mit ÜBerschneidung im Zeitraum gibt. Für Letzteres braucht man auf jeden Fall ein kleines Modul mit form_alter und validierung."
Ich schau mir mal das Workflow-Modul an.
Danke nochmal.
Ich fürchte, das Workflow
am 29.04.2019 - 07:47 Uhr
Ich fürchte, das Workflow Modul wird Dir dieses Problem mit der Validierung nicht lösen.
Eher so in der Richtung, BEnachrichtigung bei Status-Wechsel: Buchung aufgegeben, gelöscht ect.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de