Aller au contenu

Relations entre modules

Pourquoi c'est important

Les relations sont les connexions entre modules : un dossier « appartient à » un demandeur; un demandeur « a plusieurs » dossiers; un dossier « a plusieurs » documents; une entreprise « a plusieurs » dossiers et « a plusieurs » contacts. Ces connexions sont ce qui fait qu'ImmCase n'est pas que des listes indépendantes — elles sont ce qui génère les onglets liés et permet de naviguer entre fiches.

Types de relations

  • belongsTo — une fiche pointe vers une autre. Exemple : un dossier appartient à un demandeur. Implémentée avec une colonne FK.
  • hasMany — une fiche en a plusieurs de l'autre côté. Exemple : un demandeur a plusieurs dossiers.
  • hasOne — une fiche en a exactement une de l'autre côté. Moins courante.
  • belongsToMany — plusieurs-à-plusieurs avec une table de jonction. Exemple : demandeurs et consultants (un demandeur peut être suivi par plusieurs consultants; un consultant suit plusieurs demandeurs).
  • morphTo / morphMany (polymorphique) — une fiche peut se relier à plusieurs types de fiches distincts. Exemple : un commentaire peut appartenir à un demandeur ou à un dossier indifféremment.

Créer une relation

  1. Ouvrez le module source → onglet RelationsAjouter une relation.
  2. Remplissez :
  3. Type de relation.
  4. Module cible.
  5. Nom de la relation (comment elle s'appelle dans le code, les modèles, etc.).
  6. Étiquette de l'onglet lié (ce que voit l'utilisateur).
  7. Clé étrangère (le cas échéant) — quel champ porte la référence.
  8. Enregistrer.

ImmCase : - Crée la colonne FK dans la table du module source (si belongsTo). - Génère l'onglet lié dans la vue de détail du module parent. - Permet d'accéder aux fiches connectées dans modèles et rapports.

Capture d'écran : éditeur de relation avec type, modules et clé étrangère

Comment les relations apparaissent à l'usage

Dans le détail d'un demandeur, les onglets Dossiers, Entreprises, Documents sont chacun une relation visualisée. Quand vous entrez dans l'onglet Dossiers, ce que vous voyez est : « tous les dossiers où le champ applicant_id pointe vers ce demandeur ».

ImmCase utilise le champ display_name du module lié pour afficher chaque fiche dans la liste. C'est pourquoi il importe d'avoir display_name bien configuré.

Modifier ou supprimer des relations

  • Renommer l'étiquette — instantané, sans effet sur les données.
  • Changer le type de relation — viable seulement s'il n'y a pas de données; avec des données, ça peut corrompre.
  • Supprimer la relation — l'onglet disparaît mais les données (fiches liées) restent — juste visuellement déconnectées. Vous pouvez recréer la relation plus tard et elles se reconnectent automatiquement si la FK est toujours présente.

Modèles courants dans ImmCase

  • Dossier belongsTo Demandeur.
  • Demandeur hasMany Dossiers.
  • Dossier belongsTo Entreprise (parrain, employeur, école).
  • Entreprise hasMany Dossiers.
  • Dossier hasMany Formulaires IMM.
  • Demandeur hasMany Documents (polymorphique).
  • Dossier hasMany Documents (polymorphique).

À surveiller

  • Les relations polymorphiques sont complexes. Si vous avez besoin qu'un commentaire appartienne à un demandeur OU à un dossier, c'est polymorphique. Utile mais plus difficile à maintenir — demandez à votre administrateur technique avant de configurer.
  • Les clés étrangères avec des données ne se changent pas. Si vous renommez la FK, les données existantes perdent la référence. Décidez bien du nom dès le début.
  • Supprimer le parent peut affecter les enfants. Si vous configurez la relation avec cascade, supprimer un demandeur supprime ses dossiers automatiquement. Si vous configurez avec restrict, supprimer le demandeur échoue tant qu'il a des dossiers. Décidez selon le risque.

Pour la suite