Added edit mode
This commit is contained in:
38
README.md
38
README.md
@@ -81,6 +81,40 @@ il n'est pas publié avec l'application.
|
||||
Les tests couvrent notamment les clôtures oubliées, les reprises, les appels
|
||||
concurrents, les retours d'horloge, les échecs transactionnels et la conservation.
|
||||
|
||||
## Corriger les postes et les journées terminées
|
||||
|
||||
Le **Total journée** mesure la durée entre le début et la fin, repas compris.
|
||||
Le récapitulatif et le texte copié distinguent aussi le travail hors repas et le
|
||||
déjeuner. Les totaux suivent le réglage d'arrondi existant ; les éventuels trous
|
||||
importés restent inclus dans l'amplitude de la journée.
|
||||
|
||||
Dans **Journée**, touchez un poste dans **Postes de la journée** pour modifier
|
||||
son début, sa fin, sa tâche, son client ou son type (travail, transport, repas).
|
||||
Les horaires sont saisis à la minute, avec leur date, et enregistrés ensemble
|
||||
avec le bouton **Enregistrer**. Annuler ne modifie rien. Le début du premier
|
||||
poste et la fin du dernier définissent les bornes de la journée. Modifier une
|
||||
limite intermédiaire ajuste la limite du poste voisin, sans chevauchement.
|
||||
La fin d'un poste encore en cours reste pilotée par les boutons de changement
|
||||
de tâche ou de clôture.
|
||||
|
||||
**Ajouter un poste oublié** permet de choisir une plage existante puis les
|
||||
horaires du poste à insérer dans cette plage. Les portions avant et après sont
|
||||
conservées avec leur tâche et leur client. Par exemple, un poste 08:00–12:00
|
||||
peut devenir 08:00–09:00, une tâche oubliée 09:00–10:00, puis 10:00–12:00.
|
||||
Le type **Repas** permet aussi d'ajouter une pause oubliée et de renseigner
|
||||
panier ou restaurant. Pour ajouter juste après une frontière existante,
|
||||
choisissez le poste qui commence à cette frontière.
|
||||
|
||||
Dans **Récap**, choisissez la date puis **Corriger cette journée** : les mêmes
|
||||
actions sont disponibles sans réouverture, même si une autre journée est en
|
||||
cours. Le récapitulatif et son texte à copier sont recalculés après chaque
|
||||
enregistrement. La suppression d'un poste demande confirmation ; le voisin
|
||||
absorbe sa durée, et le dernier poste d'une journée ne peut pas être supprimé.
|
||||
|
||||
Chaque correction est transactionnelle. Les horaires inversés, les insertions
|
||||
hors de la plage choisie et les formulaires devenus périmés après une autre
|
||||
modification sont refusés sans écriture partielle.
|
||||
|
||||
In dev the console exposes `timelog.seed()` to generate 20 days of realistic history
|
||||
(useful for exercising the suggestion engine) and `timelog.wipe()` to clear it.
|
||||
|
||||
@@ -138,8 +172,8 @@ Two decisions shape everything else.
|
||||
**Raw timestamps are stored; rounding is applied only at render.** Changing the rounding
|
||||
setting therefore corrects past days too. Adjacent entries share one stored instant —
|
||||
entry *N*'s end *is* entry *N+1*'s start — so rounding can never open a gap between
|
||||
them. Times a worker sets by hand are snapped to the grid on write, so a chosen value
|
||||
reads back exactly as chosen.
|
||||
them. The quick time picker follows the rounding grid. The detailed entry editor
|
||||
stores minute-level corrections; summaries apply the selected rounding at render.
|
||||
|
||||
**Suggestions are derived from history, not from counter tables.** There is nothing to
|
||||
keep in sync; the model is rebuilt in memory from the entries. The tradeoff is that a
|
||||
|
||||
Reference in New Issue
Block a user