Automatische Benachrichtigungen aus dem Schichten-Tool

15.04.2019, 4 Minuten Lesezeit

Das Schichten-Tool vom Sommerfest hat ein paar kleine Updates bekommen, zudem wurden ein paar Fehler gefixt.

Neue Features

Bei den Optionen für den Schichtplan gibt es nun zwei neue Optionen: “Keine Eintragungen vor …” und “Eintragungen bis dahin deaktivieren”. An sich sind die beiden Funktionen selbsterklärend, trotzdem noch eine kurze Erläuterung, wieso und was überhaupt.

Um allen aus dem Team gleiche Chancen auf gute Schichten zu geben, sollen Schichten mit etwas Vorlauf angekündigt werden und die Eintragungen auch dann erst möglich sein. Da das mit dem Ankündigen immer nicht so richtig gut geklappt hat, gibt es nun zwei zusätzliche Optionen im Schichten-Tool. Die erste Option “keine Eintragungen vor” ermöglicht einen Unix-Zeitstempel1 anzugeben, ab wann sich Staffler (wieder) für Schichten eintragen können. Basierend darauf wird auch ein Hinweis im Schichtplan mit diesem Datum & Uhrzeit angezeigt.

Die zweite Option “Eintragungen bis dahin deaktivieren” ermöglicht zusätzlich den Schichtplan für jegliche Eintragungen durch Staffler zu deaktivieren. Bis zum gegebenen Datum (s.o.) sind keinerlei Eintragungen von Schichten im Plan möglich. Diese lassen sich erst wieder ab dem zuvor definierten Zeitpunkt eintragen. Durch diese zusätzliche Option soll die Eintragung in zwei Wellen ermöglicht werden, wie z.B. erste Schicht, dann zweite Schicht. Vor der ersten Eintragung ist die Option aktiv und nach der zweiten dann nicht mehr.

Die Optionen sollten auch ruhig direkt bei der Erstellung genutzt werden, damit Staffler, die im Schichten-Tool vorbeischauen, direkt wissen, dass der Plan noch in Arbeit ist und Eintragungen erst später möglich sein werden.

Durch das erste Feature sind nun auch automatische Benachrichtigungen mittels Webhook im Slack-Channel #announcements möglich. Hierbei erfolgen Benachrichtigungen zwei Tage, drei Stunden und zum Beginn der Eintragung (bzw. zu beginnenden Eintragungen im Laufe der nächsten Stunde). Diese Zeiten sind erst einmal willkürlich festgelegt und können einfach angepasst werden. Sie sind aber hoffentlich ausreichend, um den Schichtvergabeprozess fairer und transparenter darzustellen. Nachfolgend ein Beispiel, wie das ganze dann in Slack aussieht:

heute, 09:00 Uhr
Vorankündigung: Ab Montag, 15.04.2019 12:00 könnt ihr euch in den Schichtplan VoFi 2019 - Plakatieren & Flyern eintragen.

heute, 12:00 Uhr
Ihr könnt euch jetzt in den Schichtplan VoFi 2019 - Plakatieren & Flyern eintragen. (Zugangsdaten: Benutzer …)

Das ganze ist über einen Cronjob gelöst, der jeweils zur vollen Stunde prüft, ob für einen Schichtplan benachrichtigt werden muss. Daher empfiehlt es sich, immer Schichten zur vollen Stunde freizuschalten. Sofern Schichten aber erst später in der Stunde freigeschaltet werden, wird die Zeit in Minuten bis zur Freischaltung angegeben. Eine zusätzliche Benachrichtigung zum finalen Zeitpunkt erfolgt dann nicht mehr.

Und wo ich gerade dabei war, habe ich das Layout des Neu/Bearbeiten-Dialogs auch noch fix etwas überarbeitet.

Die Tage eines Schichtplans können nun sortiert werden. Dafür kann jedem Tag eine Sortierung zugewiesen werden. Diese Sortierung ist einfach eine Nummer und es wird absteigend sortiert; der Tag mit der höchsten Nummer kommt also als erstes. Standardmäßig ist die Sortierung für alle Tage 1, sodass diese dann nach dem Erstellungsdatum sortiert werden. Die Sortierung kann nur nachträglich per Bearbeitung angepasst werden.

Fixes

Beim Abmelden gab es im ersten Versuch immer eine Fehlermeldung, dass keine Schichten mehr frei sind. Die Ursache war ein Features, das im letzten Jahr neu implementiert wurde und jeweils nach dem ersten Absenden prüft, ob in der angegebenen Schicht überhaupt noch Plätze frei sind. Somit soll sichergestellt werden, dass bei parallelen Eintragungen nicht mehr als die “zulässige” Anzahl an Schichten eingetragen wird. Allerdings ist die Abmeldung ein Sonderfall, für welche diese Begrenzung nicht gilt. Dieser Fall wurde allerdings nicht ausgeklammert, wodurch weiterhin immer abgefragt wurde, ob in der Schicht noch was frei ist … ist jetzt behoben.

Es gab in einigen Fällen ein paar unschöne Darstellungen, wenn irgendwo noch Werte fehlten. Das ist durch einige zusätzliche isset()-Checks ebenfalls behoben.


  1. Das sind die Sekunden seit dem 01.01.1970, 00:00. Für Programmierer eine einfachere Weise, um mit Datum & Zeit zu rechnen. Für die Konvertierung eines Datums & Uhrzeit in Unixtime gibt es entsprechende Webseiten, z.B. unixtime.de. zurück

Eike Broda · dev@ebroda.de

Powered by Hugo & Kiss.