Skip to content

Compteur temps

Raphael Odini edited this page Jun 12, 2023 · 7 revisions

En quelques mots

Chaque compte-membre a un compteur temps. Il récapitule tous les créneaux effectués par cycle.

Récapitulatif sur son espace membre En détails
image image

Comment ca se passe

Code : voir surtout TimeLogEventListener

Les paramètres

Le comportement du compteur temps peut varier en fonction des paramètres choisis par l'épicerie.

Paramètre Détail Exemple de valeur
due_duration_by_cycle Le nombre d'heures de bénévolat nécessaires par cycle 180 (3h)
use_card_reader_to_validate_shifts Les créneaux sont-ils validés par une badgeuse (ou similaire) ? Si true, un créneau est considéré comme validé si il a bien été effectué true false
use_time_log_saving La possibilité de mettre du "temps" de côté (épargne). Voir l'issue #684 true false

Les actions

Si l'épicerie ne valide pas les créneaux

use_card_reader_to_validate_shifts = false

Action Effet Détails techniques
Réservation d'un créneau (par un membre ou un admin) le compteur temps est incrémenté de la durée du créneau 1. shift_book ou shift_book_admin
2. ShiftBookedEvent
3. TimeLogEventListener:onShiftBooked
4. TimeLog::TYPE_SHIFT_VALIDATED
Libération d'un créneau le log de temps correspondant au créneau initialement réservé est supprimé du compteur temps 1. shift_free ou shift_free_admin
2. ShiftFreedEvent
3. TimeLogEventListener:onShiftFreed
4. suppression du log de temps correspondant
Suppression d'un créneau
Fin de cycle

Si l'épicerie valide les créneaux

use_card_reader_to_validate_shifts = true

Comment s'effectue la validation ?

  • par une badgeuse (voir le fichier CardReaderController)
  • et/ou via un bouton qui apparait coté admin sur chaque créneau passé (image)
  • via un système développé à part (exemple des 400 coops)
Action Effet Détails techniques
Réservation d'un créneau (par un membre ou un admin) pas d'action sur le compteur temps 1. shift_book ou shift_book_admin
2. ShiftBookedEvent
3. TimeLogEventListener:onShiftBooked
Libération d'un créneau le créneau n'a pas encore été effectué, pas d'action sur le compteur temps 1. shift_free ou shift_free_admin
2. ShiftFreedEvent
3. TimeLogEventListener:onShiftFreed
Validation d'un créneau le compteur temps est incrémenté de la durée du créneau 1. shift_validate_admin (ou CardReaderController)
2. ShiftValidatedEvent
3. TimeLogEventListener:onShiftValidated
4. TimeLog::TYPE_SHIFT_VALIDATED
Invalidation d'un créneau (ça peut arriver) le compteur temps est décrémenté de la durée du créneau 1. shift_validate_admin
2. ShiftInvalidatedEvent
3. TimeLogEventListener:onShiftInvalidated
4. TimeLog::TYPE_SHIFT_INVALIDATED
Suppression d'un créneau
Fin de cycle