Development #86092
Development #75387: qrcode: ticket chapeau
qrcode: pointage
Début:
24 janvier 2024
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Les lecteurs gagne un flag "pointage". Ça active la machinerie suivante :
- on crée/ouvre une base de donnée IndexedDb à l'ouverture du lecteur (https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB)
- on crée un objectstore pointage, trois clés indexés "certificate_uuid":str / "event_uuid":str / "sent":bool
- à chaque lecture on :
- on cherche un évènement de pointage dans l'objectsore "pointage" pour l'UUID du certificat
- si on en trouve un:
- on affiche une popup
- si on en trouve pas on enregistre un évènement de pointage :
- on génère un uuid d'évènement (https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID)
- on stocke {certificate_uuid:.., event_uuid:.., sent:0, timestamp:...}
- en tâche de fond (serviceworker):
- on contacte régulièrement passerelle sur /pointage/?uuid=uuid-lecteur on y poste:
- l'ensemble des évènements sent:0
- le timestamp de la dernière réponse de passerelle ou 0
- passerelle répond avec:
- tous les évènements postérieurs au timestamp ou si 0 des dernières 24h de tous les lecteurs
- le timestamp antérieur au listing
- sur une réponse "Ok" le lecteur marque tous les évènements envoyés sent:1 et intègre les nouveaux évènement (event_uuid inconnu de la base) avec sent:1 aussi
- passerelle intègre les nouveaux évènement dans un modèle
Event(type="seen", timestamp_reception, lecteur_timestamp, lecteur, certificat, event_uuid)
- on contacte régulièrement passerelle sur /pointage/?uuid=uuid-lecteur on y poste:
On peut afficher dans l'interface un rappel de la dernière synchro ("Dernière synchronisation il y a 1 minute.").
Révisions associées
qrcode: add tally service worker (#86092)
Historique
Mis à jour par Robot Gitea il y a 3 mois
- Statut changé de Nouveau à En cours
- Assigné à mis à Corentin Séchet
Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/450
- Titre : WIP: qrcode: add tally management (#86092)
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/450/files
Mis à jour par Robot Gitea il y a 3 mois
- Statut changé de Solution proposée à Solution validée
Benjamin Dauvergne (bdauvergne) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 3 mois
- Statut changé de Solution validée à Résolu (à déployer)
Corentin Sechet (csechet) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/passerelle/pulls/450
- Titre : qrcode: add tally management (#86092)
- Modifications : https://git.entrouvert.org/entrouvert/passerelle/pulls/450/files
Mis à jour par Transition automatique il y a 3 mois
- Statut changé de Résolu (à déployer) à Solution déployée
qrcode: add tallying support (#86092)