Skip to content

Données maîtres Géographie

Audience

Cet article s'adresse aux opérateurs de la plateforme GCM. Les administrateurs d'église devraient consulter l'article Ajouter un membre pour utiliser les listes déroulantes pays / état / ville — cette page concerne le personnel qui entretient les listes sous-jacentes.

Chaque champ d'adresse de la plateforme — profils de membres, paramètres d'organisation, formulaire de don public, formulaire de visiteur — tire dans trois tables maîtres : countries, states, cities. Elles sont à l'échelle de la plateforme, et non par organisation, ce qui explique pourquoi cette surface vit dans l'administrateur de plateforme. L'onglet Géographie (/platform/geography) est la console CRUD pour ces tables, avec une mise en page en cascade à trois panneaux et un import CSV en masse pour les éléments rares.

Onglet Géographie avec panneaux pays, états, villes

La mise en page à trois panneaux

La page est divisée en trois cartes côte à côte. Chaque panneau ne s'active que lorsque son parent est sélectionné :

  1. Pays — la liste maîtresse. Toujours visible.
  2. États — se remplit lorsqu'un pays est sélectionné. Le titre de la carte s'adapte pour utiliser le admin_level_label du pays ("Provinces" pour le Canada, "Departements" pour la Colombie, "States" pour les États-Unis, etc.).
  3. Villes — se remplit lorsqu'un état est sélectionné.

La sélection persiste par panneau : choisir un nouveau pays réinitialise les sélections d'état et de ville ; choisir un nouvel état ne réinitialise que la ville.

Chaque panneau a sa propre boîte de recherche qui fait un includes côté client sur les noms visibles.

Modifier un pays

Cliquez sur Ajouter en haut du panneau Pays — ou sur l'icône crayon sur n'importe quelle ligne — pour ouvrir le formulaire de pays. Les champs sont :

  • Nom (obligatoire) — le nom d'affichage, par exemple "Colombia".
  • Code ISO (obligatoire, 2 caractères) — le code ISO 3166-1 alpha-2, par exemple CO. Mis automatiquement en majuscules.
  • ISO Numérique — le code numérique ISO 3166-1 (3 chiffres), par exemple 170. Utilisé par certaines intégrations.
  • Étiquette État / Province — comment votre pays appelle sa subdivision de premier niveau. "Department", "Province", "Region", "Canton", "Prefecture". Pilote le titre et le texte d'invite dans le sélecteur d'état en aval.
  • Indicatif — le préfixe d'appel international, par exemple +57. Utilisé par le formateur de numéros de téléphone.
  • Emoji drapeau — drapeau Unicode collé, par exemple 🇨🇴. Affiché à côté du nom du pays partout.

L'enregistrement insère une ligne dans countries si vous étiez en train d'ajouter, ou la met à jour sur place si vous étiez en train de modifier. La liste en cache s'invalide pour que la nouvelle valeur apparaisse dans chaque liste déroulante d'adresse au prochain rendu.

Supprimer un pays ouvre une confirmation destructive. L'alerte est honnête sur la cascade : supprimer la Colombie supprime aussi chaque état et chaque ville en dessous. Si un membre ou un visiteur réfère à ce pays par id, vous obtiendrez une violation de FK — nettoyez d'abord ou changez le comportement de la cascade dans une migration, et non depuis cette interface.

Modifier un état

Les états ont deux champs :

  • Nom (obligatoire) — nom d'affichage.
  • Code ISO — le code de subdivision ISO 3166-2, par exemple US-CA. Optionnel mais recommandé. Mis automatiquement en majuscules.

Le même formulaire d'ajout unique, la même confirmation de suppression destructive. L'id du pays est défini automatiquement à partir de la sélection.

Modifier une ville

Les villes ont un champ : Nom. Il n'y a pas de codes ; les villes sont juste des étiquettes associées à un état et (dénormalisé pour la vitesse de requête) à un pays.

Import CSV en masse

Le formulaire d'ajout unique convient pour une entrée manquante. Pour ensemencer tout un pays d'états (ou tout un état de villes), utilisez Importer en haut du panneau états ou villes.

La boîte de dialogue d'import accepte du texte brut, une ligne par enregistrement :

  • Pour les états : name,iso_code. Le code ISO est optionnel ; si vide, les 3 premières lettres du nom sont mises en majuscules. Exemple :
    California,CA
    Texas,TX
    Florida,FL
  • Pour les villes : name uniquement.

Les lignes vides ou commençant par # sont ignorées, vous pouvez donc coller des listes sources commentées.

La boîte de dialogue affiche un compte courant des lignes valides analysées sous la zone de texte, pour que vous puissiez vérifier avant d'appuyer sur Importer. Toutes les lignes sont insérées en un seul aller-retour INSERT ; l'index unique sur (country_id, name) (pour les états) ou (state_id, name) (pour les villes) signifie que ré-importer la même liste lève une erreur sur le premier doublon. Le bon patron est : ne coller que les lignes manquantes, pas toute la liste.

Sourcer les données

Pour de nouveaux pays, les données canoniques d'amorçage sont les admin1CodesASCII.txt de GeoNames (états) et la tranche cities500.txt du pays. Réduisez-les aux colonnes ci-dessus avec awk et collez-les.

Situations courantes

"Le formulaire de membre ne montre pas 'Cundinamarca' comme département en Colombie." Sélectionnez Colombia dans le panneau Pays, cherchez "Cundi" dans États. S'il manque, Ajoutez-le avec l'ISO CO-CUN. La liste déroulante se rafraîchit partout immédiatement — les requêtes en cache s'invalident à l'enregistrement.

"Je dois ajouter 47 villes manquantes à un état." Sélectionnez le pays, puis l'état, puis cliquez sur Importer dans le panneau Villes. Collez la liste, une par ligne. Appuyez sur Importer. La boîte de dialogue rapporte le nombre qu'elle a inséré ; si certaines ont échoué (généralement des doublons), le toast le dit.

"Un client nous a demandé de renommer son pays de 'United States' en 'US' pour faire court." Ne le faites pas. Le nom du pays est global — tous les autres clients le voient aussi. Si vous devez localiser, le bon canal est les fichiers de traduction par locale (src/i18n/locales/{en,es}.json) pour les chaînes d'affichage, l'iso_code gardant la donnée stable.

Ce que cette surface ne fait pas

  • Elle ne géocode pas. Le module map utilise Mapbox / Nominatim au moment de la recherche ; cette page n'alimente que les listes déroulantes d'adresses.
  • Elle n'impose pas de hiérarchie. Vous pouvez techniquement créer un état dans un pays dont le code ISO est faux, ou une ville dans un état qui appartient à un autre pays. Le formulaire empêche la plupart de ces cas en définissant country_id à partir de la sélection, mais une correction SQL manuelle pourrait le casser. La piste d'audit est votre filet de sécurité.
  • Elle ne versionne pas. Il n'y a pas d'historique de "à quoi ressemblait la liste au trimestre dernier". Traitez-la comme la vérité actuelle.

Si vous avez besoin que des données d'adresse historiques soient préservées (par exemple pour un membre dont l'état a été renommé), capturez-les dans les colonnes textuelles address du membre au moment de la capture, pas dans le sélecteur.