Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Wie kann ich die Verfügbarbeit von Personen checken?

Eingetragen von inst (290)
am 26.04.2019 - 13:46 Uhr in
  • Module
  • Drupal 8.x

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!

‹ Profile und Pathauto für Taxonimies Colorbox Problem ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Zuerst mussst Du mal genau

Eingetragen von montviso (2085)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

feedback Teambuchung

Eingetragen von inst (290)
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!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also dann müsste es so sein,

Eingetragen von montviso (2085)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Validierung

Eingetragen von inst (290)
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.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich fürchte, das Workflow

Eingetragen von montviso (2085)
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

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal 10 und Thema Bartik
  • Wie in hook_views_query_alter() einen join auf Tabelle url_alias durchführen?
  • Strukturierte Daten Fehler
  • fbsmp\plugins Hilfe
  • Migration über feeds von D6 auf D8
  • Theme Classy sei installiert, ist aber nicht bei Themes
  • Composer 1 zu Composer 2
  • Bitte um Einschätzung: Upgrade von Drupal 7 auf 9
  • Scroll zu View-Ergebnissen nachdem Filter angewendet ist
  • SQL-Injection? User hat sich Zugriff aufs Admin-Konto geholt und Änderungen vorgenommen.
  • [gelöst] Persönliches Kontaktformular, oder interne User Nachrichten
  • Webform Progress Symbol (Loading icon)?
Weiter

Neue Kommentare

  • Superfish
    vor 3 Stunden 10 Minuten
  • Auch für superfish gibt es
    vor 6 Stunden 42 Minuten
  • Versuchs mal mit
    vor 6 Stunden 37 Minuten
  • Drupal 10 läuft
    vor 7 Stunden 38 Minuten
  • Da wirst Du den Bug wohl selbst beheben müssen
    vor 2 Tagen 2 Stunden
  • Gleiches Problem: bootstrap 4
    vor 4 Tagen 4 Stunden
  • Da wirst Du den Bug wohl
    vor 4 Tagen 7 Stunden
  • Immer noch composer 1 zu 2
    vor 4 Tagen 21 Stunden
  • Beziehung Branche Adresse!
    vor 3 Tagen 7 Stunden
  • Sorry, dann gab es das bei
    vor 5 Tagen 1 Minute

Statistik

Beiträge im Forum: 248398
Registrierte User: 19752

Neue User:

  • Aman_Musani
  • Dustinjex
  • Rickywap

» Alle User anzeigen

User nach Punkten sortiert:
wla9289
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 6 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association