Aptli

Gestion des versions

Le système de gestion des versions d'Aptli vous permet de modifier des cartes et des schémas hors ligne — dans des tunnels de métro, des sites isolés ou des zones à faible connectivité — et de soumettre vos modifications lorsque vous êtes prêt. Le système détecte les conflits lorsque deux utilisateurs ont modifié la même zone, conserve un historique permanent des versions pour chaque validation et offre aux administrateurs une file d'attente de révision avant que les modifications terrain ne soient mises en ligne. Cette page explique comment utiliser les contrôles de version et résoudre les conflits.

Interface des contrôles de version

Les contrôles de version apparaissent directement dans la barre d'outils de la carte — sur ordinateur, ils se trouvent dans la première rangée d'icônes à côté du sélecteur de mode et du bouton Transfert de données, tandis que sur mobile, ils forment la première ligne de la barre de navigation inférieure. L'image ci-jointe illustre la disposition sur ordinateur ; si vous regardez la barre d'outils de la carte, vous remarquerez également le bouton Transfert de données à côté des contrôles (utilisé pour l'import/export).

Contrôles principaux :

  • Annuler — Revenir à la dernière modification de la session en cours
  • Rétablir — Réappliquer une modification qui a été annulée
  • Resynchroniser — Recharger les données depuis le serveur, abandonner les modifications locales non validées
  • Soumettre — Envoyer toutes les modifications non validées au serveur

Indicateur de modifications non validées :

  • Un indicateur orange sur le bouton SelectedFeatures affiche le nombre de modifications non validées
  • Se met à jour de façon réactive lorsque vous créez, modifiez ou supprimez des entités
  • Aide à suivre les travaux en attente avant la soumission

Fonctionnement du versionnement

(Imports serveur : les tâches d'arrière-plan telles que les flux de données automatisés créent et valident leurs propres versions. Les utilisateurs finaux n'ont pas besoin de les charger manuellement — les entités importées apparaissent simplement sur la carte une fois la tâche terminée.)

Le flux version/validation

1. Brouillon créé       → La modification existe dans le stockage du navigateur
   ↓                      L'entité possède l'indicateur _uncommitted

2. Édition hors ligne   → Modifier les propriétés, la géométrie, les relations
   ↓                      Toutes les modifications suivies localement

3. Soumettre            → Envoyer les modifications au serveur
   ↓                      Le serveur crée un enregistrement de version

4. Vérification         → Le serveur détecte les conflits spatiaux/d'ID
   ↓                      Option d'afficher les brouillons des autres

5. Fusion ou retour     → Accepter les modifications ou annuler
   ↓

6. Version compressée   → État historique préservé à jamais
                          La modification devient un enregistrement permanent

Trois systèmes de suivi des modifications

Aptli utilise différents schémas selon les besoins du flux de travail :

1. Modèles versionnés (entités cartographiques, couches, schémas) :

  • Modifications stockées dans le navigateur jusqu'à la soumission
  • L'indicateur _uncommitted suit l'état du brouillon
  • Conflits détectés par analyse spatiale
  • Historique permanent des versions (jamais supprimé)

2. Modèles en temps réel (attributions, rapports, transactions) :

  • Modifications enregistrées immédiatement sur le serveur
  • Pas de brouillons hors ligne (l'exécution requiert une confirmation)
  • Pas d'historique de versions (données opérationnelles)

3. Tâches (hybride) :

  • Versionnées pour la phase de planification (conception hors ligne)
  • Temps réel pour l'exécution (les attributions contournent les versions)
  • Voir le Guide d'exécution des travaux pour plus de détails

Utiliser les contrôles de version

Soumettre — Envoyer les modifications au serveur

Quand soumettre :

  • Fin d'une session de travail (sauvegarder l'avancement)
  • Avant de changer de projet (persister les modifications)
  • Après des modifications importantes (créer un point de contrôle)
  • Avant de passer complètement hors ligne (synchroniser les derniers éléments)

Ce qui est soumis :

  • Toutes les entités avec l'indicateur _uncommitted
  • Modifications de couches
  • Modifications de diagrammes schématiques
  • Mises à jour de propriétés, modifications de géométrie, nouvelles entités
  • Tous les fichiers joints à ces enregistrements (photos, documents)

Remarque : les tâches d'import côté serveur (par exemple les imports GeoJSON nocturnes) créent également des versions automatiquement ; celles-ci apparaissent sur la page Admin → Versions et leurs entités deviennent visibles par les utilisateurs dès que la tâche se termine, tout comme les validations normales.

Flux de travail :

1. Effectuer des modifications (dessiner, modifier, importer des entités)
2. Surveiller le compteur de l'indicateur non validé
3. Cliquer sur Soumettre lorsque prêt
4. Vérifier les conflits (le cas échéant)
5. Résoudre les conflits ou accepter la soumission

Demande de validation et révision admin

Pour les non-administrateurs, le bouton Soumettre agit initialement comme une demande de révision plutôt que comme une publication immédiate. Lorsque vous choisissez Demander une validation, la version est marquée submittedForReview et enregistrée sur le serveur ; elle ne devient pas visible par les autres utilisateurs tant qu'un administrateur ne l'a pas approuvée. Les administrateurs ouvrent la nouvelle page Admin → Versions (voir le guide d'administration) pour consulter une file d'attente des versions en attente ; ils peuvent soit valider la version (la mettre en ligne), soit la supprimer. Ce flux garantit que les modifications terrain sont contrôlées avant d'être appliquées au jeu de données partagé.

Pièces jointes

Tout fichier que vous joignez à un enregistrement (photos, documents, etc.) est mis en attente localement dans le cadre de votre version actuelle. Ces fichiers sont téléchargés automatiquement lors de la soumission de la version et inclus dans le processus de validation ; si vous annulez ou abandonnez les modifications, les fichiers en attente sont supprimés. Voir la documentation de développement pour les détails techniques sur la mise en attente des fichiers.

Résultat :

  • Modifications visibles par tous les utilisateurs
  • Enregistrement de version créé sur le serveur
  • Indicateur _uncommitted supprimé
  • Compteur de l'indicateur réinitialisé à 0

Annuler — Revenir à la dernière modification

Ce que ça fait :

  • Recule dans l'historique des modifications
  • Fonctionne sur les modifications locales non validées
  • Conserve la pile de rétablissement (on peut rétablir après avoir annulé)

Limitations :

  • N'affecte que les modifications de la session en cours
  • Impossible d'annuler les modifications soumises/validées (utiliser Resynchroniser à la place)
  • Historique effacé au rechargement de la page

Cas d'usage :

  • « Oups, j'ai supprimé la mauvaise entité »
  • « Je dois essayer une autre approche »
  • « J'ai déplacé une entité par accident »

Rétablir — Réappliquer une modification annulée

Ce que ça fait :

  • Avance dans l'historique des modifications
  • Disponible uniquement après une annulation
  • Effacé lorsqu'une nouvelle modification est effectuée

Flux de travail :

1. Annuler supprime la modification
2. Rétablir la restaure
3. Continuer à annuler/rétablir selon les besoins
4. Nouvelle modification → efface la pile de rétablissement

Résolution de conflits

Lorsque deux utilisateurs modifient la même entité/version simultanément, un avertissement de conflit apparaît en haut de la carte.

Cliquez sur Voir les détails du conflit pour ouvrir une vue comparative où vous pouvez accepter ou rejeter individuellement chaque modification. Le panneau d'historique met en évidence les versions ayant contribué à chaque modification.

Visionneuse de file d'attente hors ligne

Lors du travail hors ligne, les modifications sont mises en file d'attente localement ; la visionneuse de file d'attente hors ligne affiche les opérations en attente, l'état de synchronisation et permet une relance manuelle.

(captures d'écran de l'indicateur réseau : hors ligne et en ligne)

Resynchroniser — Recharger depuis le serveur

Quand l'utiliser :

  • Abandonner toutes les modifications non validées
  • Recharger la dernière version depuis le serveur (travail des autres)
  • Option nucléaire « tout annuler »
  • Résoudre un état local corrompu

⚠️ Avertissement :

  • Toutes les modifications non validées sont perdues
  • Action irréversible
  • Demande une confirmation avant de procéder

Alternative sûre :

  • Soumettre d'abord pour préserver le travail
  • Puis resynchroniser pour obtenir la dernière version

Flux de travail parallèles : direct vs staging

Aptli prend en charge deux flux de travail pour la manipulation des entités :

Manipulation directe (modifications simples)

Idéal pour :

  • Déplacer des entités individuelles
  • Mises à jour rapides de propriétés
  • Suppression d'entités
  • Ajustements simples de géométrie

Comment ça fonctionne :

1. Sélectionner l'entité sur la carte ou dans le tableau
2. Modifier directement (glisser, formulaire de propriétés)
3. Modification suivie automatiquement
4. Soumettre quand prêt

Avantages :

  • Rapide, sans étapes intermédiaires
  • Schéma familier (modification sur place)
  • Surcharge d'interface minimale

Staging Draw (opérations complexes)

Idéal pour :

  • Import de données externes (GeoJSON, fichiers ESRI)
  • Édition de géométrie complexe (remodelage de polygones)
  • Opérations par lots (création de nombreuses entités)
  • Révision avant validation

Comment ça fonctionne :

1. Charger les entités dans Draw (imports, bouton Load to Draw)
2. Modifier en mode Draw (remodeler, diviser, fusionner)
3. Sélectionner la couche cible
4. Valider vers les entités (suivies comme non validées)
5. Soumettre quand prêt

Avantages :

  • Zone de staging pour révision
  • Outils de géométrie avancés
  • Séparation des imports et des entités réelles
  • Annulation au niveau de Draw (avant validation)

Code couleur :

  • Bleu — Vos entités sélectionnées chargées dans Draw
  • Orange — Conflits d'autres utilisateurs (lecture seule)
  • Par défaut — Imports et entités dessinées manuellement

Résolution de conflits

Comment les conflits surviennent

Conflits spatiaux :

  • Deux utilisateurs ajoutent des entités au même endroit
  • Placement d'infrastructure qui se chevauche
  • Conceptions de réseau concurrentes

Conflits d'ID :

  • Même entité modifiée par plusieurs utilisateurs
  • Différentes modifications de propriétés
  • Modifications de géométrie

Visualiser les conflits

Bouton Load Conflicts (DrawToolbar) :

  • Récupère les modifications non validées des autres utilisateurs
  • S'affichent sous forme d'entités orange dans Draw
  • Lecture seule — impossible de valider les brouillons des autres
  • Aide à coordonner avant la soumission

Flux de travail :

1. Cliquer sur « Load Conflicts » dans la DrawToolbar
2. Les entités orange apparaissent (brouillons des autres)
3. Examiner les chevauchements spatiaux
4. Ajuster vos entités si nécessaire
5. Soumettre vos modifications (conflits signalés)

Résoudre les conflits

Option 1 : Coordonner avec l'équipe

  • Voir qui est en train de modifier (le conflit affiche l'e-mail de l'utilisateur)
  • Discuter par chat/téléphone
  • Décider qui soumet en premier

Option 2 : Soumission séquentielle

  • Un utilisateur soumet
  • L'autre resynchronise
  • Le second utilisateur ajuste et soumet

Option 3 : Fusion manuelle

  • Charger les conflits pour voir les deux versions
  • Créer manuellement une entité fusionnée
  • Les deux utilisateurs resynchronisent et acceptent la fusion

Suivi des modifications non validées

Les entités que vous avez créées, modifiées ou importées — mais pas encore soumises — sont suivies comme non validées. Un indicateur orange sur le bouton Selected Features affiche le nombre de modifications non validées dans votre session en cours.

L'indicateur se met à jour en temps réel :

  • Augmente lorsque vous validez des entités depuis la zone de staging Draw
  • Se réinitialise à zéro lorsque vous soumettez
  • Se réinitialise à zéro lorsque vous resynchronisez (abandon de toutes les modifications non validées)

Utilisez le compteur de l'indicateur comme rappel pour soumettre régulièrement. Un compteur élevé signifie qu'un travail important pourrait être perdu si votre navigateur se ferme avant soumission.

Bonnes pratiques

Quand soumettre

Moments recommandés :

  • Fin de chaque session de travail
  • Après avoir terminé une unité logique de travail
  • Avant de basculer entre projets
  • Lorsque le compteur semble « trop élevé »
  • Avant de passer hors ligne (conserve comme point de contrôle)

À éviter :

  • Soumettre un travail incomplet (désoriente l'équipe)
  • Ne jamais soumettre (risque de perte de données)
  • Soumettre constamment (crée du bruit de version)

Stratégie d'édition hors ligne

1. Synchroniser avant de passer hors ligne :

1. Resynchroniser pour obtenir la dernière version
2. Effectuer les modifications hors ligne
3. Soumettre une fois de retour en ligne

2. Vérifier les conflits :

1. Charger les conflits avant les modifications importantes
2. Coordonner avec les utilisateurs visibles
3. Soumettre d'abord le travail non chevauchant

3. Points de contrôle réguliers :

1. Soumettre toutes les 30-60 minutes
2. Crée des points de récupération
3. Partage l'avancement avec l'équipe

Révision de l'historique des versions

Vérifier qui a changé quoi :

  • Les enregistrements de version affichent l'utilisateur, l'horodatage, l'opération
  • Les versions compressées restent reconstructibles
  • Piste d'audit pour la conformité

Processus de retour arrière :

1. Identifier la version problématique
2. Resynchroniser à l'état avant la validation problématique
3. Refaire les modifications correctement
4. Soumettre une nouvelle version

Fonctionnalité Load to Draw

Objectif

Permet une manipulation de géométrie complexe au-delà du simple glisser-déposer :

  • Remodeler les limites de polygones
  • Diviser des lignes en segments
  • Fusionner des zones adjacentes
  • Opérations de géométrie avancées

Comment l'utiliser

Depuis le tableau SelectedFeatures :

1. Sélectionner des lignes dans le tableau (case à cocher)
2. Cliquer sur le bouton « Load to Draw » (icône crayon)
3. Les entités apparaissent dans Draw (en bleu)
4. Modifier avec les outils Draw
5. Sélectionner la couche cible
6. Cliquer sur le bouton de validation
7. Les entités reçoivent l'indicateur _uncommitted
8. Soumettre quand prêt

Style :

  • Sélections de l'utilisateur : Bleu (#3b82f6)
  • Conflits : Orange (#f97316, lecture seule)
  • Imports : Couleurs par défaut de Draw

Opérations avancées

Remodeler des polygones :

  1. Charger le polygone dans Draw
  2. Cliquer sur les sommets pour les déplacer
  3. Ajouter/supprimer des points
  4. Valider de nouveau vers les entités

Diviser des entités :

  1. Charger la ligne/le polygone dans Draw
  2. Utiliser les outils Draw pour créer une division
  3. Valider comme entités séparées

Fusionner des zones :

  1. Charger plusieurs polygones dans Draw
  2. Supprimer les frontières entre eux
  3. Créer un polygone fusionné unique
  4. Valider le résultat

Dépannage

« Les modifications ne s'enregistrent pas »

Vérifier :

  • Le compteur de l'indicateur non validé augmente-t-il ?
  • Le bouton Soumettre est-il actif ?
  • La console du navigateur affiche-t-elle des erreurs ?

Solution :

  • Vérifier la connectivité réseau
  • Vérifier que le stockage du navigateur n'est pas plein
  • Soumettre pour persister les modifications

« J'ai perdu mes modifications après rechargement »

Cause :

  • Les modifications non validées sont stockées dans le navigateur
  • Resynchroniser a effacé les modifications locales
  • Le stockage du navigateur a été effacé

Prévention :

  • Soumettre avant de fermer le navigateur
  • Points de contrôle réguliers par soumission
  • Ne pas s'appuyer sur le cache du navigateur

« Le conflit ne se résout pas »

Étapes :

  1. Charger les conflits pour voir l'autre version
  2. Contacter l'autre utilisateur
  3. Un utilisateur resynchronise
  4. Modifier et soumettre à nouveau
  5. Le second utilisateur resynchronise et continue

« Annuler/Rétablir ne fonctionne pas »

Limitations :

  • Uniquement les modifications de la session en cours
  • Effacé au rechargement de la page
  • Impossible d'annuler les modifications soumises

Solution de contournement :

  • Resynchroniser à l'état avant la validation problématique
  • Refaire les modifications correctement
  • Soumettre une nouvelle version

Guides connexes