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

Planbare Präsenzzeiten #13

Open
sheepyhollow opened this issue Sep 30, 2015 · 11 comments
Open

Planbare Präsenzzeiten #13

sheepyhollow opened this issue Sep 30, 2015 · 11 comments

Comments

@sheepyhollow
Copy link
Contributor

HiWis, die z.B. in regelmäßigen Tutorien arbeiten, könnten sich feste Präsenzzeiten einrichten, in denen sie automatisch geclockt werden.

Das setzt dann entsprechende Einträge in die Shift-List (müsste dann eben aber für die Zukunft erlaubt sein... uh...), die natürlich bei der Überarbeitung geändert werden können (habe überzogen, war krank...)

@sheepyhollow sheepyhollow changed the title Auto-clock für planbare Präsenzzeiten feature-request: Auto-clock für planbare Präsenzzeiten Sep 30, 2015
@sheepyhollow sheepyhollow reopened this Sep 30, 2015
@mimischi
Copy link
Owner

Wäre ein tolles Feature für die Zukunft! So etwas lässt sich sicherlich per cron lösen. Dafür gibt es mindestens eine Django Library (z.b. django-celery).

@sheepyhollow
Copy link
Contributor Author

Muss gar nicht Echtzeit sein. Kann ja auch im Vorfeld gebucht werden - allerdings muss man dann vllt. die Plausibilitätsprüfung in Bezug auf Uhrzeit umwerfen (keine Buchungen in der Zukunft)

@mimischi mimischi modified the milestones: 0.5, 0.6 Nov 23, 2015
@mimischi mimischi modified the milestones: 0.8, 0.6 Mar 1, 2016
@mimischi mimischi modified the milestones: 1.1, 0.8 Jun 9, 2016
@mimischi
Copy link
Owner

[...] - allerdings muss man dann vllt. die Plausibilitätsprüfung in Bezug auf Uhrzeit umwerfen (keine Buchungen in der Zukunft)

Das ist tatsächlich das große Problem. Aktuell erlaubt das System gar keine Schichten in der Zukunft zu erstellen. Entweder wir hebeln die Restriktion ganz raus und alle müssen darauf achten, dass die Schichten stimmen - oder es muss irgendwie rumgetrickst werden.

@mimischi mimischi removed this from the 1.1 milestone Sep 22, 2017
@mimischi
Copy link
Owner

mimischi commented Jan 2, 2018

@sheepyhollow Wie sollen wir das Problem lösen?

Beim manuellen hinzufügen einer Schicht kann ein Haken gesetzt werden "Wiederkehrende Schicht", nachdem die Periode gewählt wird (monatlich, wöchentlich, jeder 02. des Monats, ..). Praktisch wie bei den gängigen Kalender-Anwendungen.

Aber was macht das System nun? Wie ich es vom Kalender kenne, werden die Termine (Schichten) bis in die Unendlichkeit erstellt. Das ist nicht sinnvoll, wenn wir die Datenbank dadurch fluten lassen könnten, auch wenn nur bis zum Vertragsende. Wie gehen wir also vor?

  1. Schichten periodisch bis zum Vertragsende anlegen.
  2. Automatisch am 1. jedes Monats anlegen lassen.
  3. Automatisch am jeweiligen Tag der Schicht anlegen lassen.
  4. Beim Besuch des Users anlegen lassen.

Jetzt wie ich es gerade geschrieben habe, ist eventuell Methode 1 die eleganteste. Allerdings: dem User sollte es leicht möglich sein noch "geplante" Schichten auch wieder löschen zu können (sprich zukünftige, aber nicht schon vollendete Schichten).

@mimischi mimischi changed the title feature-request: Auto-clock für planbare Präsenzzeiten Planbare Präsenzzeiten Jan 2, 2018
@sheepyhollow
Copy link
Contributor Author

Das sind irgendwie zwei Fragen: Grundsätzlich ist eine Eintragung über das Vertragsende hinaus nicht sinnvoll. Was aber möglich sein sollte, wäre, bereits angelegte regelmäßige Termine im nächsten Vertrag als Template zu nutzen.

Im Konkreten (wann wird die Schicht eingebucht) habe ich keine Präferenzen. Mit der gleichen Argumentation wie beim Beenden zu langer Schichten würde ich 4. okay finden, wobei mir 1. besonders logisch erscheint. Da müsste man vllt. auch überlegen, welche typischen Szenarien es gibt (Tutorien, Labor-Schichtbetrieb, Blockpraktika, Groupmeeting....)

Da stellt sich auch die Frage, wie das "Dashboard" aussieht/aussehen könnte. Wenn es eine Kalenderansicht gibt, dann würde ich dort natürlich gerne die vor-eingetragenen Schichten sehen können.

@mimischi
Copy link
Owner

mimischi commented Mar 8, 2018

Ich denke wir werden das so etablieren:

Beim erstellen einer neuen Schicht kann man auswählen, dass diese sich wiederholen soll. Dann kann der User auswählen in welchem Interval dies geschehen soll. Die späteste planbare Schicht ist dann am jeweiligen Vertragsende. Beim Speichern werden die Schichten direkt alle angelegt.

Man könnte dann noch eine extra Übersicht anbieten: "geplante Schichten". Diese zeigt einfach alle in der Zukunft liegenden Schichten an.

Problematisch wird es aktuell (mit dem jetztigen Django Frontend) mit dem simplen löschen von mehreren Schichten am Stück. Aktuell muss man das ja ziemlich tedious per Hand machen. Eventuell müsste ich mal kurzfristig doch was mit AJAX machen, damit man solche Dinge direkt aus der Tabellenübersicht löschen kann.

Die große Frage: welche Intervalle bieten wir an? Ein Beispiel aus dem aktuellen Google Calendar Interface:

2018-03-08-130037_442x328_scrot

@sheepyhollow
Copy link
Contributor Author

Täglich und wöchentlich sollte für's Erste genügen. Es wäre aber hilfreich, mittelfristig filigranere, benutzerdefinierte Wiederholung zu erlauben.

Was das Löschen mehrerer Schichten angeht - wenn es um das manuelle Löschen durch den Benutzer geht, könnte ich mir Checkboxen und einen Löschbutton auch vorstellen. Dynamisch (mit Mülleimer-Symbol oder so) ist natürlich noch schöner.

mimischi added a commit that referenced this issue Mar 8, 2018
* Shifts can now be created periodically for the following days, weeks and months.
* TODO: Add a way to choose the ending date.
* We still need to check if there are collisions with other Shifts.

Resolves #13.
mimischi added a commit that referenced this issue Mar 8, 2018
* Shifts can now be created periodically for the following days, weeks and months.
* TODO: Add a way to choose the ending date.
* We still need to check if there are collisions with other Shifts.

Resolves #13.
@mimischi
Copy link
Owner

mimischi commented Mar 8, 2018

Der Commit e0d8bdc bringt die erste Version der planbaren Präsenzzeiten mit. Aktuell kann man beim Erstellen einer Schicht auswählen ob diese täglich, wöchentlich oder monatlich wiederholt werden soll.

Das ist alles sehr statisch (die Anzeige im Dropdown Feld ist unabhängig von der aktuellen Datums-Auswahl). Man könnte sich überlegen das ähnlich wie Google zu handhaben und etwas dynamisches einzuführen: Wöchentlich am Donnerstag bzw. Monatlich am zweiten Donnerstag sind nette Gimmicks (sowohl von der Darstellung, als auch in der Auswahl von einer Wiederholung an bestimmten Wochen -- aktuell geht es ja nur "wöchentlich").

@mimischi
Copy link
Owner

mimischi commented Mar 8, 2018

@sheepyhollow Eine Frage habe ich aber noch, bezieht sich auch einigermaßen auf die Diskussionen aus #461: was macht die geplante Schicht-Erstellung, wenn es Kollisionen gibt? Also wenn ich im März schon Schichten habe und dann für die nächsten zwei Wochen täglich Schichten generieren lasse.

Erstelle ich einfach nur die Schichten, für die es keine Kollision gibt oder lösche ich die Schichten, mit denen ich sonst kollidiere? Eine Auswahl zur Konfliktlösung stellen wir jetzt mal nicht in den Raum :)

@sheepyhollow
Copy link
Contributor Author

sheepyhollow commented Mar 8, 2018

Es ist schwierig, abzuwägen, wer in dem Fall "gewinnt" - vor allem, wenn es 'automatisierte' Schichten sind, mit denen es Kollisionen gibt.

Aber wir hatten in #464 schon einmal über das Problem von Überlappungen diskutiert. Im Prinzip kommt das doch aufs Gleiche hinaus?

Eine Auswahl zur Konfliktlösung ist auch hier natürlich wieder die sauberste Variante. Aber wichtiger ist das Reporting. Ich würde in dem Fall vorschlagen, dass die Schichten nicht erstellt werden, das aber gemeldet wird.

@mimischi mimischi mentioned this issue Apr 26, 2018
3 tasks
@mimischi
Copy link
Owner

@sheepyhollow Aktuell werden die Schichten einfach so erstellt, ohne großes Feedback.

Ich würde vorschlagen, dass wir den User beim Erstellen von sich wiederholenden Schichten auf eine Bestätigungsseite weiterleiten. Hier würde man dann sehen, welche Schichten erstellt werden und welche (durch eine Kollision) nicht erstellt werden.

Ist zwar ein extra Schritt, bringt dem User aber einen großen Informationsgehalt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants