update documentation for docgen

This commit is contained in:
Julien Fastré 2022-01-05 01:53:30 +01:00
parent 16a5d56b14
commit b2a4aa3b17
1 changed files with 264 additions and 176 deletions

View File

@ -1,27 +1,21 @@
# Génération de documents # Génération de documents
L'administrateur fonctionnel prépare la génération des documents: L'administrateur fonctionnel prépare la génération des documents.
<!-- Cela consiste à configurer le gabarit et ses éventuelles options via l'interface d'administration. Pour chaque gabarit, un document est joint et contient des "zones substituantes", qui permettent d'insérer des informations issues de Chill.
1. A partir d'un document Word (format docx), un document est préparé par Seuls les documents suivants peuvent être utilisés:
1. Une première étape est un formulaire qui demande des précisions à l'utilisateur. * .odt (LibreOffice Writer);
* .ods
* .odp
Il s'agit, par exemple, d'indiquer la localisation précise pour la génération du document, d'indiquer un "usager principal" pour le document, etc. ## Rappel du parcours des utilisateurs
La plupart de ces informations peuvent être configurées par Lors de la génération de document, les utilisateurs parcourrent trois étapes, dont l'un est optionnelle:
Si aucune précision n'est nécessaire, cette étape n'est pas affichée à l'utilisateur. 1. Étape optionnelle: un formulaire demande des précisions à l'utilisateur.
-->
## Parcours des utilisateurs
Lors de la génération de document, les utilisateurs parcourrent trois étapes:
1. un formulaire, optionnel, demande des précisions à l'utilisateur.
Il peut s'agir, par exemple, de préciser les destinataires du document, de choisir un signataire, etc. Il peut s'agir, par exemple, de préciser les destinataires du document, de choisir un signataire, etc.
@ -30,8 +24,8 @@ Lors de la génération de document, les utilisateurs parcourrent trois étapes:
* natif au nœud. Dans ce cas, il apparait systématiquement ou dans certaines conditions; * natif au nœud. Dans ce cas, il apparait systématiquement ou dans certaines conditions;
* configuré par l'admnistrateur fonctionnel parmi des options disponibles; * configuré par l'admnistrateur fonctionnel parmi des options disponibles;
2. le document est effectivement généré en arrière-plan. Cela peut nécessiter éventuellement quelques minutes; 2. le document est effectivement généré en arrière-plan. Cela peut nécessiter éventuellement quelques secondes;
3. le document est ouvert pour édition dans un éditeur en ligne. L'enregistrement est automatique. Lorsqu'ils ferment l'éditeur **depuis l'interface de l'éditeur**, l'utilisateur est redirigé vers la page principale, généralement la page de génération du document. 3. le document est ouvert pour édition dans un éditeur en ligne. L'enregistrement est automatique. Lorsqu'ils ferment l'éditeur **depuis l'interface de l'éditeur**, l'utilisateur est redirigé vers l'interface de Chill, généralement la page de génération du document.
Notez que, pour que la redirection soit effective, l'utilisateur doit fermer **dans l'interface de l'éditeur**: fermer la fenêtre ou l'onglet fait perdre les informations de redirection - cependant, le document est normalement enregistré. Notez que, pour que la redirection soit effective, l'utilisateur doit fermer **dans l'interface de l'éditeur**: fermer la fenêtre ou l'onglet fait perdre les informations de redirection - cependant, le document est normalement enregistré.
@ -39,7 +33,13 @@ Lors de la génération de document, les utilisateurs parcourrent trois étapes:
Les documents sont préparés par l'administrateur fonctionnel. Les documents sont préparés par l'administrateur fonctionnel.
Aux endroits où cela est nécessaire, l'administrateur indique un texte qui débute par `${` et se termine par `}`. Ce texte, depuis le signe `$` initial jusqu'à la balise fermante finale (`}`) est remplacé par le texte contenu dans la variable. ## Indiquer un champ dans un document
Aux endroits où cela est nécessaire, l'administrateur indique un "champ substituant".
Cela est accessible via le menu "Insertion > Renvoi...", puis choisir l'onglet "Fonction", "Substituant", "Texte", et indiquer la valeur du champ.
La valeur à indiquer dans le champ "substituant" est à déduire des informations ci-dessous.
## Principes liés au variables ## Principes liés au variables
@ -140,135 +140,24 @@ Les administrateurs fonctionnels peuvent activer les paramètres suivants:
#### Variables #### Variables
Le document hérite de toutes les variables disponibles pour chaque document, à laquelle vient s'ajouter la variable suivante et tout ses champs: Le document présente:
* `courseId` (texte): l'identifiant du parcours * une variable `course`, de type `AccompanyingPeriod`;
* `courseStartDate` (texte): la date de confirmation du parcours (vide si le parcours est à l'état brouillon); * Si `usager principal du parcours` est coché, une variable `mainPerson`, de type `Person`, avec les variants `relations` et `household` (ménage);
* `courseEndDate` (texte): la date de fin du parcours (vide si le parcours n'est pas clotûré); * si `usager 1` est coché, une variable `person1`, de type Person, avec les variants `relations` et `household` (ménage);
* `courseEnd` (texte): la mention "clotûré" si le parcours est clotûré; * si `usager 2` est coché, une variable `person2`, de type Person, avec les variants `relations` et `household` (ménage);
* `courseStatus` (texte): contient la mention "En file active", "Archivé", ou est vide si le parcours n'a aucun de deux statuts;
* `courseRef`: (User): le référent du parcours;
* `courseLocation` (Adresse): l'adresse de localisation du parcours
* `coursePersonLocation` (Person): l'utilisateur qui localise le parcours (s'il y en a un, peut être vide);
* `coursePerson1` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson1Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson1StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson1RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson2` (Person): le premier usager du parcours, choisi par l'étape 2;
* `coursePerson2Household` (Ménage): les informations du ménage de la personne 2;
* `coursePerson2StayAddresses` (Liste d'adresse): la liste des adresses du second usager du parcours, choisi par l'étape 1;
* `coursePerson2RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson3` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson3Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson3StayAddresses` (Liste d'adresse): la liste des adresses du troisième usager du parcours, choisi par l'étape 1;
* `coursePerson3RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du troisième usager du parcours, choisi par l'étape 1;
* `coursePerson4` (Person): le troisième usager du parcours, choisi par l'étape 1;
* `coursePerson4Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson4StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson4RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson5` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson5Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson5StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson5RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson6` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson6Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson6StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson6RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson7` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson7Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson7StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson7RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `coursePerson8` (Person): le premier usager du parcours, choisi par l'étape 1;
* `coursePerson8Household` (Ménage): les informations du ménage de la personne 1;
* `coursePerson8StayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `coursePerson8RelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `courseMainPerson` (Person): l'usager principal du document;
* `courseMainPersonHousehold` (Ménage): les informations du ménage de l'usager "principal du document";
* `courseMainStayAddresses` (Liste d'adresse): la liste des adresses du premier usager du parcours, choisi par l'étape 1;
* `courseMainRelayAddresses` (Liste d'adresse): la liste des adresses de relais (pour les enfants confiés) du premier usager du parcours, choisi par l'étape 1;
* `courseEmergency` (texte): la chaine "Urgent" si le parcours est urgent, chaine vide sinon;
* `courseConfidential` (texte): "Confidentiel" si le parcours est confidentiel, chaine vide sinon;
* `courseOrigin` (texte): l'appellation de l'origine du parcours;
* `courseClosingMotive` (texte): l'appellation du motif de clotûre du parcours;
<!-- idées
courseMainPersonFather => household / enfants
courseMainPersonMother
courseUsagerConcerned0Household => membres, etc.
faire une requête récursive depuis la mainPerson, et ajouter les liens de parenté
-->
Par ailleurs, les listes suivantes sont disponibles:
* `coursePersons` (liste de Person): une liste des usagers concernés du parcours
Par ailleurs, pour chaque personne présente dans cette liste, les deux variables suivantes sont ajoutées:
* `familylink1` (texte): un lien de parenté avec l'usager 1, si renseigné;
* `familylink2` (texte): un lien de parenté avec l'usager 2, si renseigné;
* `familylinkmain` (texte): un lien de parenté avec l'usager principal du document, si renseigné;
* `courseRequestor` (liste de Person ou ThirdParty): le demandeur. Peut être vide.
* `courseResources` (liste de Person ou ThirdParty): une liste des interlocuteurs privilégiés
avec le commentaire, sous la variable "comment"
* `courseSocialIssues` (liste de SocialIssues): la liste des problématiques d'accompagnement
::: { .info }
Les objets "Ménage" contiennent les liste des membres du ménage associés aux `person1`, `person2` ou `mainPerson`.
:::
Exemple d'utilisation:
```
Le parcours a débuté le ${courseStartDateLong} et s'est clotûré le ${courseEndDateLong}.
Le référent est ${courseRefUsername}.
Participants au parcours:
+--------------------------+---------------------------+-------------------------------+
| Nom | Prénom | Date de naissance |
+==========================+===========================+===============================+
| ${coursePersonsLastName} | ${coursePersonsFirstname} | ${coursePersonsBirthdateLong} |
+--------------------------+---------------------------+-------------------------------+
```
### Document générés pour une action d'accompagnement
Le document hérite de toutes les variables et listes disponibles pour les document "générés par un parcours". De plus, les variables suivantes s'ajoutent:
* `workId` (texte): l'identifiant de l'action;
* `workNote` (texte): la note;
* `workCreateDate` (Date): la date de création de l'action;
* `workStartDate` (Date): la date de début de l'action (vide si inexistant)
* `workEndDate` (Date): la date de début de l'action (vide si inexistant)
* `workHandlingThirdParty` (ThirdParty): le tiers traitant
* `workSocialAction` (texte): le nom de l'action d'accompagnement;
* `workUser` (Utilisateur): utilisateur pour lequel l'action est créée (TODO champ à ajouter);
Les listes suivantes sont disponibles:
* `workGoals`: une liste d'objectifs, où chaque item contient deux variables:
* `goal: le libellé de l'objectif (vide pour les résultats sans objectif);
* `result: une concaténation de toutes les appellations des résultats, séparés par une virgule;
* `workThirdParties` (liste de ThirdParty): une liste de tiers associés à l'action;
* `workPersons`: une liste de personnes associées à l'action
### Document générés pour une évaluation ### Document générés pour une évaluation
Le document hérite des variables et listes disponibles pour les documents "Action d'accompagnement", auxquelles viennent s'ajouter la variable `evaluation`: Le document présente:
* `evaluationId` (texte): l'identifiant de l'évaluation; * une variable `evaluation` de type `AccompanyingPeriodWorkEvaluation`: l'évaluation concernée;
* `evaluationType` (texte): le libellé de l'évaluation; * une variable `work` de type `AccompanyingPeriodWork`: l'action d'accompagnement au sein de laquelle l'évaluation est générée;
* `evaluationStartDate` (Date): la date de début de l'évaluation; * une variable `course`, de type `AccompanyingPeriod`: le parcours au sein duquel l'évaluation est générée;
* `evaluationEndDate` (Date) la date de fin de l'évaluation; * Si `usager principal du parcours` est coché, une variable `mainPerson`, de type `Person`, avec les variants `relations` et `household` (ménage);
* `evaluationMaxDate` (Date): la date d'échéance de l'évaluation; * si `usager 1` est coché, une variable `person1`, de type Person, avec les variants `relations` et `household` (ménage);
* `evaluationComment` (texte): le commentaire de l'évaluation; * si `usager 2` est coché, une variable `person2`, de type Person, avec les variants `relations` et `household` (ménage);
* `evaluationCreatedBy` (User): le créateur de l'évaluation;
* `evaluationCreatedAt` (Date): la date de création de l'évaluation;
## Champs par objet { #sec:gendoc-champs-objets } ## Champs par objet { #sec:gendoc-champs-objets }
@ -284,6 +173,68 @@ ou dans la forme courte:
${courseStartDateShort} // 15/01/2021 ${courseStartDateShort} // 15/01/2021
``` ```
### AccompanyingPeriod
* `id` (texte): l'identifiant du parcours
* `type` (texte): toujours égal à `accompanying_course`
* `isNull`: (bool) renvoie `true` si est une entité nulle (toutes les variables sont vides);
* `closingDate` (Date): date de clotûre;
* `confidential` (bool): `true` si confidentiel;
* `confidentialText` (texte): "Confidentiel" si le parcours est confidentiel, texte vide sinon;
* `createdAt` (Date): date de création;
* `createdBy` (User): utilisateur ayant créé le parcours;
* `emergency` (bool): `true` si parcours en urgence;
* `emergencyText` (texte): "Urgent" si le parcours est urgent, texte vide sinon;
* `openingDate` (texte): la date de confirmation du parcours;
* `origin` (AccompanyingPeriodOrigin): l'origine du parcours;
* `originText` (texte): Le titre de l'origine, directement utilisable dans le document;
* `participations` (liste de AccompanyingPeriodParticipation): les participations du parcours, actuelles **et anciennes**;
* `currentParticipations` (liste de AccompanyingPeriodParticipation): les participations actuelles du parcours;
* `requestorAnonymous` (bool): `true` si le demandeur du parcours est anonyme;
* `hasRequestor` (bool): `true` si le parcours a un demandeur (il peut être un tiers ou une personne);
* `requestorKind` (texte): `person` si le demandeur est une personne, `thirdparty` si c'est un tiers;
* `requestorPerson` (Person): demandeur, si le demandeur est une personne;
* `hasRequestorPerson` (bool): `true` si le demandeur est une personne;
* `requestorThirdParty` (ThirdParty): demandeur, si le demandeur est un tiers;
* `hasRequestorThirdParty` (bool): `true` si le demandeur est un tiers;
* `resources` (liste de AccompanyingPeriodResource): les ressources du parcours;
* `scopes` (liste de Scope): services associés au parcours;
* `scopesText` (texte): titre des services associés au parcours, séparés par une virgule;
* `socialIssues` (liste de SocialIssues): problématiques sociales associées au parcours;
* `socialIssuesText` (texte): Liste des problématiques sociales, séparées par une virgule;
* `intensity` (texte): texte traduit de l'intensité: "ponctuel" ou "régulier";
* `step` (texte): texte traduit de l'étape du parcours: "Brouillon", ou "En cours";
* `isClosed` (bool): `true` si le parcours est fermé (la date de clotûre est renseignée);
* `closingMotiveText` (texte): titre du motif de clotûre;
* `ref` (User): référent du parcours;
* `hasRef` (bool): `true` si un référent est désigné;
* `hasLocation` (bool): `true` si un parcours a une localisation;
* `hasLocationPerson` (bool): `true` si un parcours a une localisation auprès d'un personne. `false` si c'est une localisation temporaire;
* `location` (Adresse): l'adresse de localisation du parcours
* `locationPerson` (Person): l'utilisateur qui localise le parcours (s'il y en a un, peut être vide);
### AccompanyingPeriodParticipation
* `id` (int): identifiant
* `person` (Person): usager associé au parcours;
* `startDate` (Date): date de début;
* `endDate` (Date): date de fin. Vide si la participation est toujours en cours;
### AccompanyingPeriodResource
* `id` (int): identifiant;
* `person` (Person): usager ressource (vide, avec le paramètre `isNull` à `true`, si la ressource est un tiers);
* `thirdParty` (ThirdParty): tiers ressource (vide, avec le paramètre `isNull` à `true`, si la ressource est une personne);
### AccompanyingPeriodOrigin
* `id` (int): identifiant;
* `label` (texte): libellé de l'origine;
### Date ### Date
* `short` (texte): la date au format dd/mm/yyyy, vide si la date est absente; * `short` (texte): la date au format dd/mm/yyyy, vide si la date est absente;
@ -291,27 +242,28 @@ ${courseStartDateShort} // 15/01/2021
### Person ### Person
* `firstName` (texte) * `id` (texte): Identifiant du dossier usager;
* `lastName` (texte) * `isNull` (bool): `true` si le dossier usager est vide;
* `title` (texte): le titre TODO à ajouter dans la fiche * `civility` (Civility): Civilité
* `firstName` (texte): Prénom
* `lastName` (texte): Nom
* `altNames` (texte): noms supplémentaire (nom de naissance, …) * `altNames` (texte): noms supplémentaire (nom de naissance, …)
* `text` (texte): représentation du nom, prénom, et noms alternatifs (voir `PersonRender::renderString)`): prénom, nom, et noms alternatifs. * `text` (texte): représentation du nom, prénom, et noms alternatifs: prénom, nom, et noms alternatifs.
* `birthdate` (Date) * `birthdate` (Date)
* `age`: (int) age de la personne;
* `deathdate` (Date) * `deathdate` (Date)
* `gender` (texte): peut être masculin, féminin, ou <à compléter> * `gender` (texte): genre (texte traduit);
* `maritalStatus` (texte): représentation textuelle de l'état civil; * `maritalStatus` (texte): représentation textuelle de l'état civil;
* `maritalStatusDate` (Date): date à la quelle le statut de l'état civil a été mis à jour; * `maritalStatusDate` (Date): date à la quelle le statut de l'état civil a été mis à jour;
* `email` (texte): adresse email * `email` (texte): adresse email
* `firstPhoneNumber` (texte): soit le numéro de mobile s'il existe, soit le numéro fixe s'il existe, sinon vide; * `firstPhoneNumber` (texte): soit le numéro de mobile s'il existe, soit le numéro fixe s'il existe, sinon vide;
* `fixPhoneNumber` (texte): le numéro de téléphone fixe; * `fixPhoneNumber` (texte): le numéro de téléphone fixe;
* `mobilePhoneNumber` (texte): le numéro de téléphone portable; * `mobilePhoneNumber` (texte): le numéro de téléphone portable;
* `nationality` (texte): nationalité * `nationality` (texte): nationalité (nom du pays);
* `placeOfBirth (texte): le lieu de naissance * `placeOfBirth (texte): le lieu de naissance
* `memo` (texte): le mémo * `memo` (texte): le mémo
* `numberOfChildren` (texte): le nombre d'enfants * `numberOfChildren` (texte): le nombre d'enfants
* `currentAddress` (Adresse): l'adresse actuelle * `address` (Adresse): l'adresse actuelle
* `mother` (Person): les champs de la mère de la personne, si elle est renseignée dans le module "filiation";
* `father` (Person): les champs du père de la personne, s'il est renseigné dans le module "filiation";
::: { .vendee } ::: { .vendee }
* `numCaf` (texte): le numéro CAF; * `numCaf` (texte): le numéro CAF;
@ -324,77 +276,213 @@ ${courseStartDateShort} // 15/01/2021
* `statutLogement` (texte): statut au regard du logement; * `statutLogement` (texte): statut au regard du logement;
* `niveauEtude` (texte): le niveau d''étude; * `niveauEtude` (texte): le niveau d''étude;
* Adresse de relais => à vérifier * Adresse de relais => à vérifier
* droite de visite * droite de visite
* gir
::: :::
Exemple d'utilisation: #### variant `household`
* `household` (Household): le ménage actuel de l'usager;
#### variant `relations`
* `relations` (liste de Relationship): les relations (filiations) de l'usager;
#### Exemple d'utilisation
``` ```
Nom de la personne: ${personLastname} // Dupuis Nom de la personne: ${personLastname} // Dupuis
Prénom de la personne: ${personFirstname} // Gérard Prénom de la personne: ${personFirstname} // Gérard
Date de naissance: ${personBirthdateLong} // le 7 juillet 1974 Date de naissance: ${personBirthdateLong} // le 7 juillet 1974
Nom du père: ${personFatherLastName} ${personFatherFirstname} // Dupuis Marcel Nom du père: ${personFatherLastName} ${personFatherFirstname} // Dupuis Marcel
Téléphone du père: ${personFatherFirstphonenumber} // 01 23 45 67 89 Téléphone du père: ${personFatherFirstphonenumber} // 01 23 45 67 89
``` ```
### Civility
* `abbreviation` (texte): abbréviation;
* `id` (int): identifiant (utile pour des comparaisons);
* `name` (texte): titre, label de la civilité;
### Household ### Household
Les informations sont les suivantes:
* `childToBorn` (texte): contient "Oui" si un enfant est à naitre, ou "Non" si aucun enfant n'est à naitre; * `id` (int): l'identifiant du ménage;
* `childToBornDate` (Date): contient la date à laquelle un enfant est à naitre; * `members` (liste de HouseholdMember): liste des membres du ménages;
* `familyComposition` (texte): la composition familiale, valable au moment de la génération; * `waitingForBirth` (bool): `true` si une naissance est attendue;
* `nbOfChild` (texte): le nombre d'enfants du ménage, au moment de la génération du document; * `waitingForBirthDate` (Date): date de la naissance attendue;
* `nbmembersatpositionx` (texte): le nombre de membres à la position `x`.
Les listes suivantes sont associées au ménage: ### HouseholdMember
* `members` (Liste de Person): la liste de tous les membres du ménage; * `comment` (texte): texte du commentaire;
* `membersAtPositionx`: la liste des membres à la position `x`, où `x` est l'identifiant de la position. Cet identifiant est visualisable dans l'interface d'administration. * `id` (int): identifiant de la participation au ménage;
* `endDate` (Date): date de fin de participation au ménage;
* `holder` (bool): `true` si le participant est titulaire;
* `person` (Person): l'usager qui est membre du ménage;
* `position` (HouseholdPosition): la position du membre dans le ménage;
* `startDate` (Date): date de début de participation au ménage;
Ainsi, si les "enfants hors ménage" est la position `3`, alors la liste des usagers "Enfant hors ménage" est présente sous la variable `membersAtPosition3`. ### HouseholdPosition
* `id` (int): identifiant de la position;
* `label` (texte): label de la position dans le ménage;
### ThirdParty ### ThirdParty
* `id` (int): identifiant du tiers;
* `acronym` (text): acronyme;
* `address` (Adress): adresse du tiers
* `categories` (liste de ThirdPartyCategory): liste des catégories;
* `civility` (Civility): civilité
* `contactDataAnonymous` (bool): `true` si le tiers est anonyme;
* `email` (texte): email;
* `name` (texte): nom du tiers;
* `nameCompany` (texte): nom du tiers personne morale;
* `parent` (ThirdParty): tiers parent (pour les contacts)
* `profession` (ThirdPartyProfession)
* `telephone` (texte): numéro de téléphone du tiers
### ThirdPartyCategory (catégorie de tiers)
TODO
### ThirdPartyProfession (profession du tiers)
TODO TODO
### Adresse ### Adresse
* `address_id` (int): l'identifiant de l'adresse;
* `text` (texte): une chaine de caractère représentant l'adresse complète; * `text` (texte): une chaine de caractère représentant l'adresse complète;
* `street` (texte): le nom de la rue (exemple: "RUE DES ÉGLANTIERS"); * `street` (texte): le nom de la rue (exemple: "RUE DES ÉGLANTIERS");
* `streetNumber` (texte): le numéro de police; * `streetNumber` (texte): le numéro de police;
* `postcodeName` (texte): le nom de la localité ou ville; * `postcode` (PostCode): le code postal;
* `postcodeCode` (texte): le code postal; * `country` (Country): le pays de l'adresse;
* `countryName` (texte): le nom du pays;
* `countryCode` (texte): le code du pays;
* `floor` (texte): l'étage; * `floor` (texte): l'étage;
* `corridor` (texte): le couloir; * `corridor` (texte): le couloir;
* `flat` (texte): l'appartement; * `flat` (texte): l'appartement;
* `buildingName` (texte): le nom du bâtiment / résidence; * `buildingName` (texte): le nom du bâtiment / résidence;
* `distribution` (texte): service particulier de distribution; * `distribution` (texte): service particulier de distribution;
* `extra` (texte): champs extras * `extra` (texte): champs extras
* `validFrom` (Date): date de début de validité;
* `validTo` (Date): date de fin de validité (vide si toujours valide);
### Postcode
* `id` (int): identifiant
* `name` (texte): localité
* `code` (texte): code postal
### Country
* `id` (int): identifiant
* `name` (texte): nom du pays
* `code` (texte): deux lettres du code ISO pays
### User { #sec:gendoc-var-user } ### User { #sec:gendoc-var-user }
* `username` (texte) * `id` (int): identifant
* `email` (texte) * `type` (texte): vaut toujours `user`
* `service` (texte): service principal * `username` (texte): le login
* `job` (texte): métier principal * `email` (texte): l'email de l'utilisateur
* `location` (Location): lieu principal (résidence administrative); * `text` (texte): le libellé complet de l'utilisateur (avec son métier et son service entre parenthèse);
* `label` (texte): le libellé de l'utilisateur, tel qu'il est enregistré par l'administrateur fonctionnel
* `main_scope` (Scope): service principal
* `user_job` (texte): métier principal
* `current_location` (Location): lieu de l'utilisateur, celui actuellement choisi par l'utilisateur par le menu "utilisateur";
### Location (lieu) ### Location (lieu)
* `name` (texte) * `id` (int): identifant;
* `adress` (Address) * `name` (texte): nom;
* `phonenumber` (texte): numéro de téléphone * `adress` (Address): adresse du lieu;
* `phonenumber1` (texte): numéro de téléphone;
* `phonenumber2` (texte): numéro de téléphone;
* `email` (email): email * `email` (email): email
* `locationType` (LocationType): le type de lieu
### LocationType (type de lieu)
* `id` (int): identifant;
* `title` (texte): titre du type de lieu;
### Social Issue (problématique sociale) ### Social Issue (problématique sociale)
* `name`: le nom de la problématique seule * `name`: le nom de la problématique seule
* `text`: le nom de la problématique et des problématiques parentes * `text`: le nom de la problématique et des problématiques parentes
### Relationship (relations (filiations) entre usagers)
Pour faciliter l'usager, les relations sont toujours représentée à partir d'un usager d'origine.
Les variables présentent le nom de la relation (`text`), et la personne avec qui la relation est formée (`opposite`).
* `id` (int): identifant;
* `fromPerson` (Person): personne d'origine;
* `toPerson` (Person): personne de destination;
* `text` (texte): le titre ou le titre inversé de la `Relation`, selon l'usager d'origine;
* `opposite` (Person): l'usager avec qui la relation est formée;
* `relationId` (int): identifiant du lien de filiation;
**Note**: la différence entre `fromPerson` et `toPerson` est arbitraire.
### AccompanyingPeriodWorkEvaluation (évaluation dans une action d'accompagnement)
* `id` (texte): l'identifiant de l'évaluation;
* `type` (texte): le libellé de l'évaluation;
* `startDate` (Date): la date de début de l'évaluation;
* `endDate` (Date) la date de fin de l'évaluation;
* `maxDate` (Date): la date d'échéance de l'évaluation;
* `comment` (texte): le commentaire de l'évaluation;
* `createdBy` (User): le créateur de l'évaluation;
* `createdAt` (Date): la date de création de l'évaluation;
* `evaluation` (Evaluation): le type d'évaluation;
### Evaluation (type d'évaluation)
* `id` (texte): l'identifiant du type d'évaluation;
* `titre` (texte): le titre du type d'évaluation;
### AccompanyingPeriodWork (Action d'accompagnement)
* `id` (texte): l'identifiant de l'action;
* `note` (texte): la note;
* `persons` (liste de Person): liste des usagers concernés par l'action
* `results` (liste de Result): liste des résultats directement associé au parcours (résultats sans objectifs)
* `socialAction` (SocialAction): type d'action sociale;
* `startDate` (Date): la date de début de l'action (vide si inexistant)
* `endDate` (Date): la date de début de l'action (vide si inexistant)
* `thirdParties` (liste de ThirdParty): les tiers associés à l'action comme tiers intervenants;
* `updatedBy` (Date): date de mise à jour;
* `updatedAt` (User): utilisateur ayant fait la mise à jour;
* `handlingThierParty` (ThirdParty): tiers traitant;
* `goals` (AccompanyingPeriodWorkGoal): objectifs
* `createdBy` (Date): date de mise à jour;
* `createdAt` (User): utilisateur ayant fait la mise à jour;
* `createdAutomatically` (bool): `true` si l'action a été créée automatiquement (par exemple, en créant un échange);
* `evaluations` (AccompanyingPeriodEvaluation): liste des évaluations générées
### SocialAction (type d'action d'accompagnement)
* `id` (texte): identifiant
* `text` (texte): texte, avec les parents inclus, séparés par un ` > `;
* `title`: titre du type d'action, sans les parents;
### Result (résultat d'une action)
* `id` (texte): identifiant
* `titre` (texte): le titre du résultat
### Goal (objectif d'une action)
* `id` (texte): identifiant
* `titre` (texte): le titre du résultat
### AccompanyingPeriodWorkGoal (objectifs et résultats d'une action d'accompagnement)
* `id` (texte): identifiant
* `goal` (Goal): objectif d'une action
* `results` (liste de Result): liste des résultats