Compare commits

...

21 Commits

Author SHA1 Message Date
9a90bb24dd Fix: [docgen] correct image for insert renvoi
Some checks are pending
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is running
2023-02-10 00:12:38 +01:00
81610bcf52 admin/docgen: ré-ordonne les objets par ordre alphabétique + uniquement les objets pour toutes les instances
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-10 00:06:43 +01:00
ca7a42af0b docgen: mise à jour des principes et utilisation dans Libre office
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-09 23:49:37 +01:00
c08df4ec8c replace variable name
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
2022-10-19 21:44:47 +02:00
6120aee787 add missing doc for ThirdPartyProfession and ThirdPartyCategory and fixes delegation and tuteur 2022-10-19 21:44:47 +02:00
6d5a56c9b2 Documentation pour la date createdAtDate 2022-10-19 21:44:47 +02:00
3716e0e060 Document generation: add context "person with 3party" and fixes some
missing values in ThirdParty, Address
2022-10-19 21:44:47 +02:00
nobohan
019356f8c6 add field 'comment' in accompanyingperiodresource following issue 612
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-18 15:32:14 +02:00
058d7851f5 Fixed: do not try to publish manuel if no tag
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2022-07-12 00:36:33 +02:00
6a4e2ac8e3 Feature: page de démarrage de la configuration de chill #admin 2022-07-12 00:34:52 +02:00
1cf382cbaa commentaire des parcours
Some checks failed
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is failing
2022-07-11 19:54:25 +02:00
e379da917e ajout doc personnes ressources usager
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2022-06-03 14:16:21 +02:00
3e90c12d47 rename files in release
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is passing
2022-05-30 21:12:58 +02:00
76da9dd357 fix some keys and add new keys for docgen 2022-05-30 21:08:57 +02:00
9f0418299f debugci (#12)
All checks were successful
continuous-integration/drone/tag Build is passing
Co-authored-by: Julien Fastré <julien.fastre@champs-libres.coop>
Reviewed-on: Vendee/manuals#12
2022-05-16 13:12:55 +00:00
8e3c6634fa fetch lfs image 2022-05-16 12:32:51 +02:00
46aef19712 fix image path in build latex 2022-05-16 12:23:37 +02:00
4cfd5a21bc update pandoc version to 2.18 2022-05-16 12:19:46 +02:00
4f4e262a1f fix typo in file paths 2022-05-16 11:29:02 +02:00
958c5466db execute drone on each push 2022-05-16 11:27:13 +02:00
04d5a4870b change image for pandoc 2022-05-16 11:25:44 +02:00
21 changed files with 530 additions and 493 deletions

View File

@@ -3,29 +3,41 @@ kind: pipeline
type: docker
name: build-release
when:
event:
- tag
clone:
disable: true
steps:
- name: submodules
- name: clone
image: plugins/git
settings:
recursive: true
- name: fetch images
image: alpine/git
commands:
- git submodule init
- git submodule update --recursive --remote
- git lfs fetch
- git lfs checkout
- name: pandoc
image: pandoc/alpine:2.14
image: pandoc/core:2.18-alpine
commands:
- sh build-pandoc.sh latex user > user-manual.tex
- sh build-pandoc.sh latex admin > user-manual.tex
- sh build-pandoc.sh latex user > user/user-manual.tex
- sh build-pandoc.sh latex admin > admin/admin-manual.tex
- name: build-latex
image: ghcr.io/xu-cheng/texlive-full:latest
- name: build-latex-user
image: texlive/texlive
commands:
- cd user
- latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode -xelatex user-manual.tex
- latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode -xelatex latex-manual.tex
- mv user-manual.pdf ../Manuel\ utilisateur.pdf
- name: build-latex-admin
image: texlive/texlive
commands:
- cd admin
- latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode -xelatex admin-manual.tex
- mv admin-manual.pdf ../Manuel\ administrateur.pdf
- name: release
image: plugins/gitea-release
@@ -34,14 +46,14 @@ steps:
from_secret: gitea_key
base_url: https://gitea.champs-libres.be
files:
- user-manual.pdf
- admin-manual.pdf
checksum:
- sha512
title: ${DRONE_COMMIT_REF}
prerelease: true
- "Manuel administrateur.pdf"
- "Manuel utilisateur.pdf"
title: ${DRONE_TAG:=latest}
when:
event:
- tag
---
kind: signature
hmac: 3bfa17ee6ad33613ca8e2fec573050a6d65d3b89e2a0c49f28dbb51b8461a427
hmac: dc200b08e09b83e734ff829ac62c7daf5f80986f725edac1b974b07793adb4b0
...

View File

@@ -13,6 +13,16 @@ Seuls les documents suivants peuvent être utilisés:
## Rappel du parcours des utilisateurs
Les utilisateurs peuvent générer un document depuis plusieurs contextes du logiciel:
- les documents du dossier d'usager;
- les documents du parcours;
- les documents dans les évaluations;
- les activités / échanges;
- les rendez-vous.
Chaque contexte peut être dédiée à un usage précis. Par exemple, l'utilisateur peut générer une invitation à un rendez-vous depuis la page "rendez-vous". Depuis les évaluations, un formulaire officiel pourrait être pré-rempli. Et un document récapitulatif du parcours peut être généré dans ses documents.
Lors de la génération de document, les utilisateurs parcourrent trois étapes, dont l'un est optionnelle:
1. Étape optionnelle: un formulaire demande des précisions à l'utilisateur.
@@ -21,7 +31,7 @@ Lors de la génération de document, les utilisateurs parcourrent trois étapes,
Ce formulaire est soit:
* natif au nœud. Dans ce cas, il apparait systématiquement ou dans certaines conditions;
* natif au contexte. Dans ce cas, il apparait systématiquement ou dans certaines conditions;
* 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 secondes;
@@ -29,11 +39,21 @@ Lors de la génération de document, les utilisateurs parcourrent trois étapes,
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é.
## Syntaxe de génération d'un document
## Préparation des documents
Les documents sont préparés par l'administrateur fonctionnel.
Les documents sont préparés par l'administrateur fonctionnel. Il s'agit d'un document "traitement de texte" (ou tableur, ou présentation).
## Indiquer un champ dans un document
Le document est préparé de manière habituelle: le texte y est écrit, le logo de l'association inséré, etc. Ensuite, l'administrateur définit certaines zones qui seront remplacées par des informations qui sont collectées dans le logiciel.
Le travail de préparation consiste à préciser les endroits où ces informations doivent être insérées: des champs spécifiques.
::: .note
Le fonctionnement de la génération de document est assez semblable au "publi-postage": des champs sont définis dans le document, et le logiciel de traitement de texte vient les remplacer par ceux provenant d'une base de donnée.
:::
## Indiquer un champ dans un document en utilisant Libre Office
Aux endroits où cela est nécessaire, l'administrateur indique un "champ substituant".
@@ -41,58 +61,90 @@ Cela est accessible via le menu "Insertion > Renvoi...", puis choisir l'onglet "
La valeur à indiquer dans le champ "substituant" est à déduire des informations ci-dessous.
## Principes liés au variables
![Menu Insertion > Renvoi dans LibreOffice](./img/generation-document/libre-office-insert-renvoi.png)
### Nommage de variables
TODO
#### Exemple: application aux objets "date"
Les dates sont disponibles dans deux formats:
* le format "court", ou dd/mm/yyyy (par exemple, 15/06/1980, 18/08/2021, …). Ce format est accessible par le champ `short`;
* le format "long": 15 juin 1980, 18 août 2021, … Ce format est accessible par le champ `long`;
lorsqu'une date est disponible, il est donc possible d'avoir accès à son format en précisant sa chaine de caractère. Exemple avec la date de naissance de la personne:
```
person.Birthdate.Short=15/06/1980
person.Birthdate.Long=15 juin 1980
```
![Insérer un substituant. Ici, le substituant est la date de génération du document au format long: `v.createdAtDate.long`](./img/generation-document/libre-office-insert-renvoi.png)
### Cas où une variable est optionnelle
## Nature (type) des variables
Lorsqu'une variable est optionnelle, si sa valeur est inconnue ou vide, alors tout ses champs apparaissent avec une chaine de caractère vide.
Pour chaque contexte où un document est généré, les variables disponibles sont listées [dans la section suivante](#sec:gendoc-champs-documents).
L'arbre des variables est toujours identique, sur toute la profondeur de celles-ci. L'administrateur est garanti qu'un champ existera, même si sa valeur n'est pas présente dans la base de donnée.
Chaque variable comporte un type: il peut s'agir de:
## Variables disponibles par document
- un nombre;
- un texte;
- un bouléen (`vrai` ou `faux`)
- un objet;
- ou une liste d'objets, de nombres, ou de textes.
Pour chaque contexte où un document est généré, les variables disponibles sont listées [dans la section suivante](#sec:gendoc-champs-documents). Le type des variables est indiqué.
Les variables et leur type sont décrites [dans la section suivante](#sec:gendoc-champs-objets). Le type est indiqué entre parenthèse:
Les variables pour chaque type sont décrites [dans la section suivante](#sec:gendoc-champs-objets):
* si le type commence par une majuscule, alors cette variable comporte des sous-champs, et il faut se reporter à la description des variables pour ce type;
* si le type commence par une majuscule, alors cette variable est un object. Il comporte des sous-champs, et il faut se reporter à la description de l'objet correspondant;
* si le type commence par une minuscule, alors cette variable peut être utilisée directement dans le document:
* s'il s'agit d'un booléen (`bool`), le champ peut être utilisé dans des tests;
* les champs `text` et `int` peuvent faire l'objet de test sur l'égalité;
* les champs de type `int` peuvent faire l'objet de comparaison sur l'ordre de grandeur (par exemple, le champs `age` des objets de type `Person` peut être filtré `> 18` ou `< 18` pour distinguer les adultes des enfants).
### Pour chaque document { #sec:gendoc:champs-documents }
### Cas où le contenu d'une variable est vide
#### Paramètres pour l'administrateur fonctionnel
Si une variable est vide, alors tout ses champs apparaissent avec une chaine de caractère vide.
Les administrateurs fonctionnels peuvent activer les paramètres suivants:
L'arbre des variables est toujours identique, sur toute la profondeur de celles-ci. L'administrateur est garanti qu'un champ existera, même si sa valeur n'est pas présente dans la base de donnée.
* un champ "lieu", qui permettra de choisir parmi les lieux pré-enregistrés. Le lieu pré-sélectionné sera celui choisi par l'utilisateur;
### Exemple: la date de naissance d'une personne
Dans le contexte "personne", les informations de la personne sont disponibles sous le champ `v.person`. Il s'agit d'un objet de type `Person` qui comporte une sous-variable appelée `birthdate`, qui est lui-même disponible dans un objet de type `Date`.
Les objets `Date` proposent deux sous-champs, qui correspondent au format de la date:
* le format "court", ou dd/mm/yyyy (par exemple, 15/06/1980, 18/08/2021, …). Ce format est accessible par le champ `short`;
* le format "long": 15 juin 1980, 18 août 2021, … Ce format est accessible par le champ `long`;
Donc, pour insérer la date de naissance, on utilisera les substituants suivants:
```
v.person.birthdate.short
v.person.birthdate.long
```
Ce qui donnera (pour une personne née le 15 décembre 1980):
```
15/12/1980
15 décembre 1980
```
Si, par contre, la date de naissance de la personne n'est pas renseignée, deux lignes vides s'afficheront dans le document:
```
```
## Paramètres pour l'administrateur fonctionnel
Pour chaque gabarit, l'administrateur peut activer certaines options. Par exemple:
* permettre de sélectionner une personne parmi les usagers du parcours;
* configurer le libellé qui s'affichera pour l'utilisateur devant l'usager.
Les options disponibles dépendent du contexte.
Par exemple, pour un courrier généré dans un contexte "parcours", l'utilisateur pourra choisir un usager du parcours pour un courrier; l'administrateur indiquera qu'il s'agira du "destinataire" du courrier. Tandis que pour un formulaire officiel, l'administrateur configurera un "demandeur" et "co-demandeur", et ce sont ces libellés qui s'afficheront.
## Variables par contexte
### Pour tous les contextes { #sec:gendoc:champs-documents }
#### Variables
* `creator`: (User) le créateur;
* `createdAt` (Date): la date de création;
* `createdAt` (Date): la date et l'heure de création;
* `createdAtDate` (Date): la date de la création (sans l'heure). Utilisable pour indiquer la date d'un courrier, par exemple;
* `location` (Location): le lieu sélectionné par le créateur, au moment de la génération **ou** celui choisi par l'étape 1.
### Document générés pour un parcours
@@ -103,7 +155,7 @@ Les administrateurs fonctionnels peuvent activer les paramètres suivants:
* un champ "usager 1", qui permet ensuite à l'utilisateur de choisir un usager parmi ceux concernés par le parcours, les interlocuteurs privilégiés qui sont des usagers (à l'exclusion des tiers), et les personnes ressources associées à un usager concerné du parcours (à l'exclusion des ressources tiers et "texte libre");
* un champ "usager 2", qui permet aux utilisateurs de choisir un deuxième usager parmis ceux concernés par le parcours, les interlocuteurs privilégiés qui sont des usagers (à l'exclusion des tiers), et les personnes ressources associées à un usager concerné du parcours (à l'exclusion des ressources tiers et "texte libre");
* un champ "usager principal du parcours", qui permet, cette fois, de choisir parmi les usagers concernés par le parcours,, les interlocuteurs privilégiés qui sont des usagers (à l'exclusion des tiers), et les personnes ressources associées à un usager concerné du parcours (à l'exclusion des ressources tiers et "texte libre");
* un champ "usager principal du parcours", qui permet, cette fois, de choisir parmi les usagers concernés par le parcours, les interlocuteurs privilégiés qui sont des usagers (à l'exclusion des tiers), et les personnes ressources associées à un usager concerné du parcours (à l'exclusion des ressources tiers et "texte libre");
#### Variables
@@ -147,26 +199,34 @@ Il est possible également d'injecter des dossiers d'usagers, parmi ceux associ
* si `usager 1` est coché, une variable `person1`, de type Person, avec les variants `relations`, `household` (ménage) et `budget`;
* si `usager 2` est coché, une variable `person2`, de type Person, avec les variants `relations`, `household` (ménage) et `budget`;
### Documents générés dans le dossier d'une personne
### Documents générés dans le dossier d'une personne: contexte "personne basique"
* une variable `person`, de type Person, avec les variants `relations`, `household` (ménage) et `budget`.
* une variable `person`, de type `Person`, avec les variants `relations`, `household` (ménage) et `budget`.
### Documents générés dans le dossier d'une personne: contexte "personne avec un tiers"
Ce contexte permet de générer un courrier avec, en paramètre, un tiers.
Cela peut être utile pour, par exemple, générer un courrier vers un tiers déjà enregistré dans la base de donnée de Chill.
Les variables disponibles sont les suivantes:
* une variable `person`, de type `Person`, avec les variants `relations`, `household` (ménage) et `budget`.
* une variable `thirdParty`, de type `ThirdParty`;
### Document générés dans un contexte "rendez-vous"
Les champs suivant sont disponibles:
* une variable `calendar` (Calendar), qui contient les données du rendez-vous;
* une variable `mainPerson` (Person), la personne principale parmi les personnes participant au rendez-vous. Cette variable n'est présente que si l'administrateur fonctionnel l'a configurée.
* une variable `thirdParty` (ThirdParty): un tiers participant au rendez-vous. Cette variable n'est présente que si l'administrateur fonctionnel l'a configurée.
## Principes liés au variables
## Champs par objet { #sec:gendoc-champs-objets }
Les champs ci-dessous étendent les variables disponibles dans les documents.
Par exemple, le document généré à partir d'un parcours présente la variable `startDate` qui contient la date de début du parcours. Ce champ peut être exploité de la manière suivante:
```
${courseStartDateLong} // 15 janvier 2021
ou dans la forme courte:
${courseStartDateShort} // 15/01/2021
```
### AccompanyingPeriod
### AccompanyingPeriod (Parcours)
* `id` (texte): l'identifiant du parcours
* `type` (texte): toujours égal à `accompanying_course`
@@ -199,6 +259,7 @@ ${courseStartDateShort} // 15/01/2021
* `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;
* `closingMotive` (ClosingMotive): 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;
@@ -207,10 +268,26 @@ ${courseStartDateShort} // 15/01/2021
* `locationPerson` (Person): l'utilisateur qui localise le parcours (s'il y en a un, peut être vide);
* `administrativeLocation` (Location): localisation administrative du parcours;
* `hasAdministrativeLocation` (bool): `true` si une localisation administrative est définie;
* `works` (liste de AccompanyingPeriodWork): liste des actions d'accompagnement créées dans le cadre de ce parcours
* `works` (liste de AccompanyingPeriodWork): liste des actions d'accompagnement créées dans le cadre de ce parcours;
* `comments` (liste de AccompanyingPeriodComment): liste des commentaires;
* `pinnedComment` (AccompanyingPeriodComment): commentaire épinglé;
### AccompanyingPeriodComment (Commentaire du parcours)
* `id` (int): identifiant
* `content` (texte): contenu du commentaire
* `createdAt` (Date): date de création
* `creator` (User): Créateur du commentaire
### AccompanyingPeriodOrigin (Origine du parcours)
* `id` (int): identifiant;
* `label` (texte): libellé de l'origine;
### AccompanyingPeriodParticipation
### AccompanyingPeriodParticipation (Participation à un parcours)
Cet objet effectue la jointure entre les parcours et les usagers concernés à un parcours. Elle permet d'avoir accès à des informations supplémentaires, comme la date de début et l'éventuelle date de fin de la participation à un parcours.
* `id` (int): identifiant
* `person` (Person): usager associé au parcours;
@@ -218,17 +295,51 @@ ${courseStartDateShort} // 15/01/2021
* `endDate` (Date): date de fin. Vide si la participation est toujours en cours;
### AccompanyingPeriodResource
### AccompanyingPeriodResource (Interlocuteur privilégiés dans un parcours)
* `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);
* `comment` (texte): commentaire associé à la personne ressource.
### AccompanyingPeriodWork (Action d'accompagnement)
### AccompanyingPeriodOrigin
* `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` (User): utilisateur ayant fait la mise à jour;
* `updatedAt` (Date): date de 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` (AccompanyingPeriodWorkEvaluation): liste des évaluations générées;
* `referrers` (liste de User): liste des agents traitants;
### 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;
### 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
* `id` (int): identifiant;
* `label` (texte): libellé de l'origine;
### Activity (échange)
@@ -261,26 +372,136 @@ Ce variant comporte les mêmes attributs, avec les différences suivantes:
* le champ `reasons` n'est pas présent;
* le champ `comment` est également présenté avec le variant `light`.
### ActivityType
### ActivityType (Type d'activité)
Type d'activité.
* `id` (int): identifiant;
* `name` (texte): libellé
### ActivityPresence
### ActivityPresence (Présence à l'échange)
Présence à l'échange
* `id` (int): identifiant;
* `name` (texte): libellé
### Date
### Address (Une adresse)
* `address_id` (int): l'identifiant de l'adresse;
* `text` (texte): une chaine de caractère représentant l'adresse complète;
* `street` (texte): le nom de la rue (exemple: "RUE DES ÉGLANTIERS");
* `streetNumber` (texte): le numéro de police;
* `postcode` (PostCode): le code postal;
* `country` (Country): le pays de l'adresse;
* `floor` (texte): l'étage;
* `corridor` (texte): le couloir;
* `flat` (texte): l'appartement;
* `buildingName` (texte): le nom du bâtiment / résidence;
* `distribution` (texte): service particulier de distribution;
* `extra` (texte): champs extras
* `validFrom` (Date): date de début de validité;
* `validTo` (Date): date de fin de validité (vide si toujours valide);
* `lines` (liste de texte): les lignes de l'adresses, comme elles devraient être formatées dans une adresses
Il est possible de représenter l'adresse au format postal en effectuant une boucle sur les lignes. Par exemple, pour l'adresse d'une personne (chaque ligne est un "renvoi > substituant" dans l'exemple ci-dessous):
```
for each="line in v.person.address.lines
line
/for
```
### Comment (Commentaire)
Certains champs commentaire enregistrent également l'utilisateur qui a effectué la dernière mise à jour, et la date de celle-ci, en plus du commentaire en tant que tel. Ces champs ont les attributs suivants:
* `comment` (texte): le commentaire en tant que tel;
* `date` (Date): la date de la dernière modification;
* `user` (User): l'utilisateur qui a effectué la dernière modification;
#### Variant `light`
Dans le variant `light`,
* le champ `date` n'est pas présent;
* le champ `user` n'est pas présent.
Seul le champ `comment` est donc disponible.
### Civility (Civilité)
* `abbreviation` (texte): abbréviation;
* `id` (int): identifiant (utile pour des comparaisons);
* `name` (texte): titre, label de la civilité;
### ClosingMotive (Motif de cloture)
* `id` (int): identifiant;
* `name` (texte): libellé
### Country (Pays)
* `id` (int): identifiant
* `name` (texte): nom du pays
* `code` (texte): deux lettres du code ISO pays
### Date (Date)
* `short` (texte): la date au format dd/mm/yyyy, vide si la date est absente;
* `long` (texte): la date au format jour mois années: 15 août 1980, vide si al date est absente;
### Person
### Evaluation (type d'évaluation)
* `id` (texte): l'identifiant du type d'évaluation;
* `title` (texte): le titre du type d'évaluation;
### Goal (objectif d'une action)
* `id` (texte): identifiant
* `title` (texte): le titre du résultat
### Household (Ménage)
* `id` (int): l'identifiant du ménage;
* `members` (liste de HouseholdMember): liste des membres du ménages;
* `waitingForBirth` (bool): `true` si une naissance est attendue;
* `waitingForBirthDate` (Date): date de la naissance attendue;
### HouseholdMember (Membre d'un ménage)
* `comment` (texte): texte du commentaire;
* `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;
### HouseholdPosition (Position du membre dans le ménage)
* `id` (int): identifiant de la position;
* `label` (texte): label de la position dans le ménage;
### Location (lieu)
* `id` (int): identifant;
* `name` (texte): nom;
* `address` (Address): adresse du lieu;
* `phonenumber1` (texte): numéro de téléphone;
* `phonenumber2` (texte): numéro de téléphone;
* `email` (email): email
* `locationType` (LocationType): le type de lieu
### LocationType (type de lieu)
* `id` (int): identifant;
* `title` (texte): titre du type de lieu;
### Person (Personne, usager)
* `id` (texte): Identifiant du dossier usager;
* `isNull` (bool): `true` si le dossier usager est vide;
@@ -305,150 +526,7 @@ Présence à l'échange
* `memo` (texte): le mémo
* `numberOfChildren` (texte): le nombre d'enfants
* `address` (Adresse): l'adresse actuelle
::: { .vendee }
Au 23 mars 2022, ces champs ne sont plus disponibles:
* `numCaf` (texte): le numéro CAF;
* `numSS` (texte): le numéro de sécurité sociale;
* `numMSA` (texte): le numéro MSA;
* `mutuelle` (texte): le nom de la mutuelle
* `doctor` (ThirdParty): le médecin traitant;
* `situationProf` (texte): la situation professionnelle;
* `situationProfDate` (Date): date de la situation professionnelle;
Par ailleurs, la nature de ces champs a changé:
* `statutLogement`
* `niveauEtude`
Ces champs sont disponibles, dès le 22 mars:
* `extras.majeur.isNull` (bool): si un dossier "majeur" a été créé
* `extras.majeur.numeroCAF` (texte): le numéro CAF;
* `extras.majeur.numeroSecuriteSociale` (texte): le numéro de sécurité sociale;
* `extras.majeur.numMSA` (texte): le numéro MSA;
* `extras.majeur.mutuelle` (texte): le nom de la mutuelle
* `extras.majeur.medecinTraintant` (ThirdParty): le médecin traitant;
* `extras.majeur.situationProfessionelle` (texte): la situation professionnelle;
* `extras.majeur.situationProfessionelleComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.situationProfessionelleStartDate` (Date)
* `extras.majeur.statutLogement` (StatutLogement): statut au regard du logement;
* `extras.majeur.niveauEtude` (NiveauEtude): le niveau d''étude;
* `extras.majeur.identifiantPoleEmploi` (texte)
* `extras.majeur.accompagnementMissionLocale` (texte)
* `extras.majeur.gensDuVoyage` (bool): `true` si la personne fait partie des gens du voyage
* `extras.majeur.titreDeSejour` (TitreDeSejour): entité TitreDeSejour
* `extras.majeur.titreDeSejourComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.situationProfessionelle` (SituationProfessionelle): entité SituationProfessionelle
* `extras.majeur.aidantFamilial` (bool): `true` si la personne fait partie des gens du voyage
* `extras.majeur.tempsDeTravail` (TempsDeTravail): entité TempsDeTravail
* `extras.majeur.niveauEtude` (NiveauEtude): entité NiveauEtude
* `extras.majeur.mobilite` (mMbilite): entité Mobilite
* `extras.majeur.permisDeConduire` (bool): `true` si la personne a un permis de conduire
* `extras.majeur.moyenDeTransport` (bool): `true` si la personne a un moyen de transport
* `extras.majeur.infoSocioProComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.entourage` (Entourage): entité Entourage
* `extras.majeur.entourageComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.numeroSecuriteSociale` (texte)
* `extras.majeur.caisseSecuriteSociale` (texte)
* `extras.majeur.pasDeMedecinTraitant` (bool): `true` si la personne n'a pas de médecin traitant
* `extras.majeur.medecinTraitant` (Tiers): entité ThirdParty
* `extras.majeur.medecinTraitantTexteLibre` (texte)
* `extras.majeur.mdph` (texte)
* `extras.majeur.mdphStartDate` (Date)
* `extras.majeur.mdphEndDate` (Date)
* `extras.majeur.mdphComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.aah` (texte)
* `extras.majeur.aahStartDate` (Date)
* `extras.majeur.aahEndDate` (Date)
* `extras.majeur.aahComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.rqth` (texte)
* `extras.majeur.rqthStartDate` (Date)
* `extras.majeur.rqthEndDate` (Date)
* `extras.majeur.rqthComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.pcdh` (texte)
* `extras.majeur.pcdhStartDate` (Date)
* `extras.majeur.pcdhEndDate` (Date)
* `extras.majeur.pcdhComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.adpa` (texte)
* `extras.majeur.adpaStartDate` (Date)
* `extras.majeur.adpaEndDate` (Date)
* `extras.majeur.adpaComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.gir` (texte)
* `extras.majeur.girStartDate` (Date)
* `extras.majeur.girEndDate` (Date)
* `extras.majeur.girComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.infoMedicaleComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.statutLogement` (StatutLogement): entité StatutLogement
* `extras.majeur.statutLogementComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.caisseDeRetraitePrincipale` (texte)
* `extras.majeur.caisseDeRetraiteComment` (Comment): Commentaire (avec la date de la dernière mise à jour)
* `extras.majeur.caisseDeRetraiteComplementaire` (liste de texte): les caisses de retraite complémentaires, en liste de texte;
* `extras.majeur.caissesDeRetraiteComplementairesText` (texte): les caisses de retraite complémentaires, dans un seul champ texte, séparé par des virgules;
En outre, si la personne est mineure, on a accès aux champs suivants:
* `extras.majeur.isNull` (bool): si un dossier "mineur" a été créé
* `extras.mineur.enfantConfie` (bool): `true` si enfant confié
* `extras.mineur.dossierASE` (texte)
* `extras.mineur.autoriteParentale` (texte)
* `extras.mineur.autoriteParentaleComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.identificationAutoriteParentale1` (texte)
* `extras.mineur.identificationAutoriteParentale2` (texte)
* `extras.mineur.autoriteParentale1Date` (Date)
* `extras.mineur.autoriteParentale2Date` (Date)
* `extras.mineur.retraitAutoriteParentale` (bool): `true` si retraitAutoriteParentale
* `extras.mineur.retraitAutoriteParentaleDate` (Date)
* `extras.mineur.retraitAutoriteParentaleComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.delegation` (bool): `true` si délégation
* `extras.mineur.delegationDate` (Date)
* `extras.mineur.delegationComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.delegationThirdParty` (tiers): entité ThirdParty
* `extras.mineur.delegationPerson` (person): entité Person
* `extras.mineur.tuteur` (texte)
* `extras.mineur.tuteurThirdParty` (tiers): entité ThirdParty
* `extras.mineur.administrateurAdhoc` (bool): `true` si administrateurAdhoc
* `extras.mineur.administrateurAdhocDate` (Date)
* `extras.mineur.administrateurAdhocComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.pupilleEtat` (bool): `true` si pupilleEtat
* `extras.mineur.pupilleEtatDate` (Date)
* `extras.mineur.pupilleComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.tuteurPerson` (person): entité Person
* `extras.mineur.enfantEmancipe` (bool): `true` si enfantEmancipe
* `extras.mineur.enfantEmancipeDate` (Date)
* `extras.mineur.gardeAlternee` (bool)
* `extras.mineur.decisionJAF` (bool): `true` si decisionJAF
* `extras.mineur.decisionJAFDate` (Date)
* `extras.mineur.decisionJAFEnfantConfie` (bool): `true` si decisionJAFEnfantConfie
* `extras.mineur.decisionJAFDateEnfantConfie` (Date)
* `extras.mineur.fratrieComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.droitDeVisiteComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.infoFamilialeComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.residenceMineur` (texte)
* `extras.mineur.derniereVisiteMedicaleDate` (Date)
* `extras.mineur.visiteMedicaleText` (texte)
* `extras.mineur.prochaineVisiteMedicaleDate` (Date)
* `extras.mineur.autresRDV` (texte)
* `extras.mineur.infoMedicaleComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.scolarise` (bool): `true` si scolarisé
* `extras.mineur.derniereClasseScolaire` (texte)
* `extras.mineur.etablissementScolaire` (texte)
* `extras.mineur.classeScolaire` (texte)
* `extras.mineur.alternance` (bool): `true` si alternance
* `extras.mineur.alternanceEntreprise` (texte)
* `extras.mineur.enseignantReferant` (texte)
* `extras.mineur.scolariteComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.mineurComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.autresIntervenantsComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.dispositifs` (texte)
* `extras.mineur.dossierMDPH` (texte)
* `extras.mineur.notificationMDPH` (texte)
* `extras.mineur.notificationMDPHStartDate` (Date)
* `extras.mineur.notificationMDPHEndDate` (Date)
* `extras.mineur.dispositifsComment` (Comment): Commentaire (avec la date de la dernire mise à jour)
* `extras.mineur.adresseDeRelais` (adresse): liste d'adresses
:::
* `resources` (PersonResource): les personnes ressources, ajoutées depuis le dossier de l'usager.
#### variant `household`
@@ -499,175 +577,34 @@ Les attributs suivants sont disponibles, pour chaque objet `Person` qui a un var
* `budget.household.resources.<clé du type de ligne de budget>` (Ligne de budget): une ligne de budget pour la ressource dont la clé est indiquée par `<clé du type de ligne de budget>`. La liste des clés est à obtenir auprès de l'administrateur technique. Les lignes de budget de tous les usagers actuels du ménages sont globalisées, ainsi que les lignes de budget associées directement au dossier ménage;
* `budget.household.charges.<clé du type de ligne de budget>` (Ligne de budget): une ligne de budget pour la charge dont la clé est indiquée par `<clé du type de ligne de budget>`. La liste des clés est à obtenir auprès de l'administrateur technique. Les lignes de budget de tous les usagers actuels du ménages sont globalisées, ainsi que les lignes de budget associées directement au dossier ménage;
### PersonResource (Ressources associée à l'usager)
Pour rappel, les ressources peuvent être:
* des tiers;
* des usagers;
* ou un champ de texte libre.
#### Exemple d'utilisation
* `comment` (Comment)
* `freeText` (texte): commentaire, quand la personne ressources un texte libre
* `id` (int)
* `kind` (PersonResourceKind): le type de personne ressources (voisin, etc.)
* `thirdParty` (ThirdParty): le tiers, quand la ressources est liée à un tiers
* `person` (Person): l'usager, quand la ressources liée à un autre usager
* `resourceKind` (texte): un discriminateur qui permet de vérifier si la ressources est lié à un usager (alors égal à `person`, un tiers (`thirdparty`) ou un texte libre (`freetext`). A utiliser dans les conditions dans les documents.
```
Nom de la personne: ${personLastname} // Dupuis
Prénom de la personne: ${personFirstname} // Gérard
Date de naissance: ${personBirthdateLong} // le 7 juillet 1974
Nom du père: ${personFatherLastName} ${personFatherFirstname} // Dupuis Marcel
Téléphone du père: ${personFatherFirstphonenumber} // 01 23 45 67 89
```
### PersonResourceKind (Type de personne ressource)
::: { .vendee }
* `id` (int)
* `title` (texte)
### StatutLogement
* `id` (int): identifiant (utile pour des comparaisons);
* `active` (bool): si le statut est encore utilisé;
* `name` (texte): titre
### NiveauEtude
* `id` (int): identifiant (utile pour des comparaisons);
* `active` (bool): si le niveau d'étude est encore utilisé;
* `name` (texte): titre
### SituationProfessionelle
* `id` (int): identifiant (utile pour des comparaisons);
* `active` (bool): si la situation professionelle est encore utilisée
* `name` (texte): titre
:::
### Civility
* `abbreviation` (texte): abbréviation;
* `id` (int): identifiant (utile pour des comparaisons);
* `name` (texte): titre, label de la civilité;
::: { .vendee }
### Entourage
* `person` (person): entité Person
* `thirdParty` (tiers): entité ThirdParty
* `text` (texte)
* `comment` (comment): Commentaire (avec la date de la dernire mise à jour)
* `aidantProche` (bool): `true` si aidantProche
:::
### Household
* `id` (int): l'identifiant du ménage;
* `members` (liste de HouseholdMember): liste des membres du ménages;
* `waitingForBirth` (bool): `true` si une naissance est attendue;
* `waitingForBirthDate` (Date): date de la naissance attendue;
### HouseholdMember
* `comment` (texte): texte du commentaire;
* `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;
### HouseholdPosition
* `id` (int): identifiant de la position;
* `label` (texte): label de la position dans le ménage;
::: { .vendee }
### Mobilite, NiveauEtude, SituationProfessionelle, StatutLogement, TempsDeTravail, TitreDeSejour
* `active` (bool): `true` si active
* `name` (texte)
:::
### 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 service du tiers (pour une 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
### Adresse
* `address_id` (int): l'identifiant de l'adresse;
* `text` (texte): une chaine de caractère représentant l'adresse complète;
* `street` (texte): le nom de la rue (exemple: "RUE DES ÉGLANTIERS");
* `streetNumber` (texte): le numéro de police;
* `postcode` (PostCode): le code postal;
* `country` (Country): le pays de l'adresse;
* `floor` (texte): l'étage;
* `corridor` (texte): le couloir;
* `flat` (texte): l'appartement;
* `buildingName` (texte): le nom du bâtiment / résidence;
* `distribution` (texte): service particulier de distribution;
* `extra` (texte): champs extras
* `validFrom` (Date): date de début de validité;
* `validTo` (Date): date de fin de validité (vide si toujours valide);
### Postcode
### Postcode (Code Postal)
* `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 }
* `id` (int): identifant
* `type` (texte): vaut toujours `user`
* `username` (texte): le login
* `email` (texte): l'email de l'utilisateur
* `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.label` (texte): métier principal
* `current_location` (Location): lieu de l'utilisateur, celui actuellement choisi par l'utilisateur par le menu "utilisateur";
* `main_location` (Locatin): localisation de l'utilisateur définie par l'administrateur fonctionnel (parfois appelé "résidence administrative"). L'utilisateur ne peut pas la modifier lui-même.
### Location (lieu)
* `id` (int): identifant;
* `name` (texte): nom;
* `address` (Address): adresse du lieu;
* `phonenumber1` (texte): numéro de téléphone;
* `phonenumber2` (texte): numéro de téléphone;
* `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)
* `name`: le nom de la problématique seule
* `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.
@@ -683,41 +620,11 @@ Les variables présentent le nom de la relation (`text`), et la personne avec qu
**Note**: la différence entre `fromPerson` et `toPerson` est arbitraire.
### AccompanyingPeriodWorkEvaluation (évaluation dans une action d'accompagnement)
### Result (résultat d'une action)
* `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;
* `id` (texte): identifiant
* `title` (texte): le titre du résultat
### Evaluation (type d'évaluation)
* `id` (texte): l'identifiant du type d'évaluation;
* `title` (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` (User): utilisateur ayant fait la mise à jour;
* `updatedAt` (Date): date de 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` (AccompanyingPeriodWorkEvaluation): liste des évaluations générées
### SocialAction (type d'action d'accompagnement)
@@ -725,36 +632,63 @@ Les variables présentent le nom de la relation (`text`), et la personne avec qu
* `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)
### Social Issue (problématique sociale)
* `id` (texte): identifiant
* `title` (texte): le titre du résultat
* `name`: le nom de la problématique seule
* `text`: le nom de la problématique et des problématiques parentes
### Goal (objectif d'une action)
### ThirdParty (Tiers)
* `id` (texte): identifiant
* `title` (texte): le titre du résultat
* `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;
* `firstname` (texte): Prénom du tiers;
* `parent` (ThirdParty): tiers parent (pour les contacts)
* `profession` (ThirdPartyProfession)
* `telephone` (texte): numéro de téléphone du tiers
* `kind` (texte): permet de distinguer les personnes morales, les contacts et les personnes physiques (voir ci-après)
* `child` (bool) vaut TRUE s'il existe un parent (contact), false sinon;
* `parent` (ThirdParty): s'il s'agit d'un contact d'une personne morale, contient la fiche d'une personne morale
### 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
`kind` vaut:
### Comment
* `company` lorsqu'il s'agit d'une personne morale
* `child` lorsuq'il s'agit d'un contact d'une personne morale
* `contact` lorsqu'il s'agit d'une personne **physique** (à ne pas confondre avec un contact d'une personne morale)
Certains champs commentaire enregistrent également l'utilisateur qui a effectué la dernière mise à jour, et la date de celle-ci, en plus du commentaire en tant que tel. Ces champs ont les attributs suivants:
### ThirdPartyCategory (catégorie de tiers)
* `comment` (texte): le commentaire en tant que tel;
* `date` (Date): la date de la dernière modification;
* `user` (User): l'utilisateur qui a effectué la dernière modification;
* `id` (int): identifiant
* `name` (texte)
#### Variant `light`
Dans le variant `light`,
### ThirdPartyProfession (profession du tiers)
* le champ `date` n'est pas présent;
* le champ `user` n'est pas présent.
* `id` (int): identifiant
* `name` (texte)
Seul le champ `comment` est donc disponible.
### User (Utilisateur) { #sec:gendoc-var-user }
* `id` (int): identifant
* `type` (texte): vaut toujours `user`
* `username` (texte): le login
* `email` (texte): l'email de l'utilisateur
* `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` (UserJob): métier principal
* `current_location` (Location): lieu de l'utilisateur, celui actuellement choisi par l'utilisateur par le menu "utilisateur";
* `main_location` (Location): localisation de l'utilisateur définie par l'administrateur fonctionnel (parfois appelé "résidence administrative"). L'utilisateur ne peut pas la modifier lui-même;
* `civility` (Civility): la civilité de l'utilisateur;
### UserJob (Métier)
* `id` (int): identifiant
* `label` (texte): nom du métier

Binary file not shown.

BIN
admin/img/generation-document/libre-office-insert-renvoi.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -3,6 +3,8 @@ title: Manuel administrateur de Chill
subtitle: Chill en Vendée
lang: fr-BE
toc: true
page: a4
book: true
header-includes: |

77
admin/start.md Normal file
View File

@@ -0,0 +1,77 @@
# Démarrer la configuration de Chill
A la livraison, Chill ne dispose d'aucune configuration, vous recevez l'instance avec une base de donnée vide.
Voici les premières étapes à configurer pour pouvoir commencer à l'utiliser.
## Se connecter en tant qu'administrateur
Sur la page d'accueil de votre nouvelle instance, utilisez le login d'administration et le mot de passe qui vous a été fourni.
Vous serez alors redirigé vers l'interface d'administration.
## Que faut-il créer ?
### Premier utilisateurs, et les droits minimums
Pour qu'un utilisateur puisse utiliser Chill, voici les opérations à réaliser:
* Créer un Centre.
Choisissez un nom qui représente votre service. Si vous n'en utilisez qu'un seul, il ne sera que très rarement visible des utilisateurs.
* Créer un Cercle;
Si vous choisissez de laisser visibles tous les éléments, il ne sera jamais visualisés par les utilisateurs. Dans le cas inverse, utilisez un nom de service qui soit cohérent avec la séparation que vous voulez réaliser.
* Créer un Groupe de permissions
C'est sans doute la phase la plus complexe: elle vise à créer un groupe de droits cohérents. Chaque droit s'exerce sur un cercle défini.
Si vous choississez de laisser accessibles toutes les informations, indiquez les permissions les plus larges, et le cercle que vous avez créé.
* Créer un utilisateur
Les seuls champs obligatoires sont son nom d'utilisateur (qu'il rentrera pour s'authentifier il n'est pas sensible à la casse), son adresse de courriel et un libellé (le nom qui s'affichera dans tous les menus). Vous devez également indiquer un mot de passe.
Les autres champs sont optionnels.
Une fois créé, associez votre nouvel utilisateur avec le groupe de permission, et le centre.
Avec ces premières étapes, un utilisateur devrait déjà être capable de s'authentifier et, si les droits sont configurés correctement, créer un premier dossier de personne.
### Le nécessaire pour un premier parcours
Continuez pour pouvoir saisir un premier parcours (si vous utilisez cette fonctionnalité):
* Créer un "type de localisation". Le type de localisation permettra d'indiquer le lieu où sera localisé le parcours. Un des types les plus courants est, par exemple, un type "implantation".
Par la suite, vous pourrez créer des types de lieux pour, par exemple, le "domicile de l'usager", "rendez-vous en hôpital", etc.
* Créer une "localisation", que vous allez attacher au "type de localisation" créé précédemment.
* Créer une "Origine" pour les parcours.
Par exemple: "Appel téléphonique", "Rencontre en maraude", etc.
* Créer une première "problématique sociale"
Impossible de confirmer un parcours sans problématique!
* Créer un Métier
Le métier sera nécessaire pour pouvoir confirmer le parcours. Vous pouvez associer le premier utilisateur créé au métier: il sera plus aisément sélectionné.
Vous êtes maintenant en mesure de créer un usager et un parcours!
### Une première activité !
Pour pouvoir créer une activité (tant dans un parcours qu'auprès d'une personne), ajoutez un "type d'activité".
### Une configuration minimale...
Cette première configuration est minimale! Elle suffit pour commencer.
Par la suite, vous pourrez vous plonger dans les différents menus pour alimenter votre instance de Chill et qu'elle soit à votre image.

View File

@@ -4,7 +4,7 @@ set -e
# enter the current directory
cd "$(dirname $0)"
export PANDOC_DIR=pandoc/cl
export PANDOC_DIR="/pandoc/cl"
if [ -z $1 ]; then
@@ -21,43 +21,47 @@ fi
if [ $kind = 'user' ]; then
export files="
$kind/intro.md
$kind/concept.md
$kind/interface.md
$kind/search.md
$kind/person.md
$kind/person-vendee.md
$kind/activite.md
$kind/document.md
$kind/thirdparty.md
$kind/menage.md
$kind/parcours.md
$kind/social_actions.md
$kind/notifications.md
$kind/tasks.md
$kind/workflows.md
$kind/choisir_une_adresse.md
intro.md
concept.md
interface.md
search.md
person.md
person-vendee.md
activite.md
document.md
thirdparty.md
menage.md
parcours.md
social_actions.md
notifications.md
tasks.md
workflows.md
choisir_une_adresse.md
"
elif [ $kind = 'admin' ]; then
export files="
$kind/generation-documents.md
start.md
generation-documents.md
"
else
echo "kind '$kind' is not valid";
exit 1;
fi
cd $kind
export ARGS="
--from markdown
--number-sections
--resource-path ./$kind
--metadata-file ./$kind/metadata.yaml
--lua-filter "${PANDOC_DIR}/format-link.lua"
--resource-path ./.
--metadata-file ./metadata.yaml
`#--lua-filter "../${PANDOC_DIR}/format-link.lua`
"
export PDF_TEMPLATE="./pandoc/template/eisvogel.tex"
export PDF_TEMPLATE="./../pandoc/template/eisvogel.tex"
export LATEX_ARGS="
--metadata=footer-left:$(date +%d-%m-%Y)
--template "${PDF_TEMPLATE}"
--lua-filter "${PANDOC_DIR}/boxes.lua"
--lua-filter "../${PANDOC_DIR}/boxes.lua"
"
@@ -69,18 +73,18 @@ elif [ $target = "pdf" ]; then
pandoc $ARGS $LATEX_ARGS \
--to pdf \
--pdf-engine xelatex \
-o "./$kind-manual.pdf" \
-o "./../$kind-manual.pdf" \
$files
elif [ $target = "html" ]; then
# check target directory exists
if [ ! -d "./build/html" ]; then
if [ ! -d "./../build/html" ]; then
echo "create build/html directory"
mkdir -p "./build/html"
mkdir -p "./../build/html"
fi
pandoc $ARGS \
--to html \
-o ./build/html/index.html \
-o ./../build/html/index.html \
$files
fi

View File

@@ -3,7 +3,7 @@
# Activités (échanges)
<!-- fr/activity/?accompanying_period_id={id} -->
![Liste des échanges liés à un parcours](user/img/fr_activity__accompanying_period_id_2705.png)
![Liste des échanges liés à un parcours](./img/fr_activity__accompanying_period_id_2705.png)
Les activités (ou échanges) dans Chill servent à consigner des activités ou des échanges ayant eu lieu et de les associer à des usagers et/ou à des parcours d'accompagnement. Par activité, nous entendons un entretien individuel, une démarche via un
partenaire extérieur, un appel téléphonique relatif à la personne, un courriel, etc.

View File

@@ -9,7 +9,7 @@ Que ce soit dans un ménage, dans un tiers ou encore pour localiser un échange,
Lorsque le formulaire d'adresse s'ouvre, vous pouvez soit sélectionner une adresse prédéfinie soit en saisir une nouvelle. Il est en effet possible de pré-charger une liste d'adresses dans Chill. Suivant votre installation, cela a peut-être été fait pour votre région, votre département ou le pays entier.
![Création d'une d'adresse](user/img/choisir-une-adresse.png)
![Création d'une d'adresse](./img/choisir-une-adresse.png)
La case à cocher "Adresse confidentielle" permet d'indiquer qu'une adresse doit apparaitre par défaut floutée dans le logiciel ou tout document exporté du logiciel.

View File

@@ -17,7 +17,7 @@ Les pages du logiciel se divisent entre ces trois domaines, chaque domaine étan
L'utilisateur peut passer d'un domaine à l'autre, par exemple en ouvrant la fiche d'un usager depuis un parcours ou un ménage. On peut passer du domaine usager vers le domaine ménage en cliquant sur l'icône symbolisant une maison à droite de l'adresse d'un usager, et repasser vers le domaine usager en cliquant sur le nom d'un des usagers du ménage. Plusieurs sections sont aussi accessibles via plusieurs domaines, comme les activités/échanges ou les tâches, accessibles dans le domaine "usager" et "parcours d'accompagnement".
![Les 3 bandeaux dans Chill](user/img/banner_all.png)
![Les 3 bandeaux dans Chill](./img/banner_all.png)
Au-dessus des bandeaux se trouve la barre d'outil principale, qu'on retrouve dans chaque page du logiciel.

View File

@@ -6,17 +6,17 @@ Un dossier social comporte souvent un certain nombre de documents, propre au tra
Tout comme les activités/échanges, les documents peuvent être enregistré à la personne ou bien au parcours d'accompagnement. L'accès aux documents enregistrés se fait par l'entrée "Documents" via le menu "usager" ou via le menu "parcours d'accompagnement". Les documents enregistrés sont téléchargeables: on peut les retrouver à tout moment par cette liste de documents.
![Liste des documents](user/img/fr_person_2811_document.png)
![Liste des documents](./img/fr_person_2811_document.png)
## Ajouter un document
![Ajouter un document](user/img/fr_person_2811_document_new.png)
![Ajouter un document](./img/fr_person_2811_document_new.png)
Pour ajouter un document, dans la liste des documents, cliquer sur le bouton "Créer un nouveau document". Il est demandé de rentrer un titre, une date (par défaut la date de jour), une catégorie de document et une courte description. Ensuite, le document (un document au format pdf, un document de traitement de texte, ...) peut être glissé-déposé ou retrouvé sur un ordinateur en cliquant dans la zone de téléversement.
## Générer un document
![Générer un document dans un parcours](user/img/generer_document_parcours.png)
![Générer un document dans un parcours](./img/generer_document_parcours.png)
Il est possible de générer ses propres documents à partir de modèles pré-établis et des données saisies dans chaque dossier social, que ce soit un dossier d'un usager ou d'un parcours. Les modèles sont des fichiers "templates" qui sont préparés par les administrateurs du logiciel et qui sont généralement propres à une organisation.

View File

@@ -6,7 +6,7 @@
[Comme expliqué auparavant](#sec:concept), le logiciel est organisé en trois domaines principaux: usager, parcours d'accompagnement et ménage. Voyons une page du logiciel en détail dans la figure suivante.
![Une page de Chill](user/img/a_chill_page.png)
![Une page de Chill](./img/a_chill_page.png)
De haut en bas, il y a:
@@ -27,4 +27,4 @@ Dans le premier bandeau, il y a:
Les mêmes boutons sont utilisés au travers du logiciel. La figure suivante indique la signification de tous les boutons utilisés dans le logiciel.
![Les boutons utilisés dans Chill](user/img/chill_buttons.png)
![Les boutons utilisés dans Chill](./img/chill_buttons.png)

View File

@@ -17,7 +17,7 @@ Chaque usager se voit attribué une **position** dans un ménage, configurée pa
<!-- /fr/person/household/{household_id}/summary -->
![Résumé d'un ménage](user/img/fr_person_household_376_summary.png)
![Résumé d'un ménage](./img/fr_person_household_376_summary.png)
On accède à la page de résumé du ménage via le menu "usager" ou bien en cliquant sur l'icône représentant le ménage dans la recherche par personne. La page de résumé du ménage présente l'adresse actuelle du ménage, les membres du ménage et la composition du ménage.
@@ -92,14 +92,14 @@ L'historique des adresses du ménage peut être accédé dans le menu du ménage
<!-- /fr/person/household/{household_id}/addresses -->
![Historique des adresses d'un ménage](user/img/fr_person_household_376_addresses.png)
![Historique des adresses d'un ménage](./img/fr_person_household_376_addresses.png)
Une liste des parcours d'accompagnement du ménage peut être également affichée en cliquant dans le menu du ménage sous "parcours d'accompagnement".
## Filiations
<!-- /fr/person/household/{household_id}/relationship -->
![Filiations d'un ménage](user/img/menage_filiations.png)
![Filiations d'un ménage](./img/menage_filiations.png)
La page "Filiations" propose une vue d'ensemble sous forme de graphe des filiations au sein d'un ménage, c'est-à-dire les liens de parenté entre ses membres. Cette page permet non seulement de visualiser les filiations mais aussi de les éditer. En cliquant sur "Créer un lien de filiation", puis en sélectionnant 2 personnes, il est possible de définir les liens de filiations entre ces 2 personnes: mère/père-fille/fils, frère/soeur-frère/soeur, oncle/tante-neveu/nièce.

View File

@@ -2,6 +2,8 @@
title: Manuel utilisateur de Chill
lang: fr-BE
toc: true
page: a4
book: true
titlepage: true,
#logo: "img/logo-chill-outil-accompagnement.svg"

View File

@@ -8,7 +8,7 @@ Les notifications sont des messages envoyés par un utilisateur à un ou plusieu
On y accède soit depuis la page d'accueil de Chill, sous l'onglet "Mes notifications", soit n'importe où dans l'application via le
menu "utilisateur" en haut à droite de l'écran. Selon la configuration choisie par les administrateurs du logiciel, les notifications sont aussi envoyées par courriel au travailleur social concerné.
![Boîte de réception des notifications](user/img/fr_notification_inbox.png)
![Boîte de réception des notifications](./img/fr_notification_inbox.png)
## Créer une notification
<!-- fr/notification/create?entityClass=Chill%5CPersonBundle%5CEntity%5CAccompanyingPeriod&entityId=2705-->
@@ -27,12 +27,12 @@ Les notifications envoyées, par exemple, à partir d'un parcours, sont listées
Il y a en outre des notifications automatiquement envoyées lors de certaines manipulations.
![Créer une notification](user/img/notification_parcours.png)
![Créer une notification](./img/notification_parcours.png)
## Discuter dans une notification
<!-- fr/notification/{notification_id}/show -->
![Discussion dans une notification](user/img/fr_notification_126_show.png)
![Discussion dans une notification](./img/fr_notification_126_show.png)
Lorsqu'une notification est reçue, il est possible d'engager une discussion avec son destinataire dans la page de la notification. Cela permet de laisser des messages entre travailleurs, comme dans un système de discussion en ligne.

View File

@@ -7,11 +7,11 @@ Fournir un soutien social significatif est souvent une combinaison complexe d'ob
Vous pouvez le considérer comme le troisième grand module de l'application. Comme pour les domaines "usager" et "ménage", les pages concernant un parcours sont facilement identifiables par son bandeau en haut de l'écran.
![Bandeau d'un parcours d'accompagnement](user/img/banner_course.png)
![Bandeau d'un parcours d'accompagnement](./img/banner_course.png)
## Résumé du parcours
![Résumé du parcours](user/img/parcours_dashboard.png)
![Résumé du parcours](./img/parcours_dashboard.png)
<!-- /fr/parcours/{id} -->
@@ -83,19 +83,19 @@ Les informations requises pour **confirmer** un parcours sont les suivantes :
* Il doit être attribué à au moins un service.
* Il doit être localisé.
![Confirmer le parcours](user/img/parcours_confirm.png)
![Confirmer le parcours](./img/parcours_confirm.png)
Toutes ces informations requises sont énumérées au bas du formulaire tant qu'elles ne sont pas remplies. Cela sert à vous rappeler ce que vous devez faire pour confirmer le parcours.
### Usagers concernés
![Usagers concernés](user/img/concerned_persons.png)
![Usagers concernés](./img/concerned_persons.png)
Un parcours peut être mis en place pour apporter un soutien à plusieurs usagers (par exemple, un soutien est apporté à une mère et son enfant).
### Localisation du parcours
![Localisation](user/img/parcours_localisation.png)
![Localisation](./img/parcours_localisation.png)
Chaque parcours **doit** être localisé et ceci peut être fait de deux manières.

View File

@@ -1,7 +1,7 @@
## Informations socio-professionnelles
<!-- fr/vendee/vendeeperson/{person_id}/infosociopro/ -->
![Informations socio-professionnelles](user/img/fr_vendee_vendeeperson_2811_infosociopro_view.png)
![Informations socio-professionnelles](./img/fr_vendee_vendeeperson_2811_infosociopro_view.png)
La page des informations socio-professionnelles de l'usager rassemble des informations professionnelles (salarié, en recherche d'emploi, ...), le niveau d'étude, des informations de mobilité (permis de conduire, moyen de transport) et les caisses de retraites. Pour ce dernier point, une caisse principale et plusieurs caisses complémentaires peuvent être ajoutées.
@@ -10,7 +10,7 @@ Cette page est accessible via le menu "usager".
## Informations médicales
<!-- fr/vendee/vendeeperson/{person_id}/infomedicale/ -->
![Informations médicales](user/img/fr_vendee_vendeeperson_2811_infomedicale_view.png)
![Informations médicales](./img/fr_vendee_vendeeperson_2811_infomedicale_view.png)
La page des informations médicales compte des informations de santé telles que le nom du médecin traitant, les caisses de sécurité sociale et mutuelle, et éventuelles allocations (MDPH, AAH, etc.).
@@ -30,9 +30,9 @@ Lorsque l'usager est un mineur (<18 ans), des informations supplémentaires peuv
La page des informations familiales peut être plus ou moins détaillée selon la situation du mineur. S'il y a des dispositifs tels que délégation, tuteur, JAF, enfant confié, etc., d'autres champs se déplient dans le formulaire.
![Situation familiale](user/img/fr_vendee_vendeepersonmineur_2821_infofamille_view.png)
![Situation familiale](./img/fr_vendee_vendeepersonmineur_2821_infofamille_view.png)
La page de la scolarité contient des informations sur l'établissement scolaire, l'enseignant référent, la formation en alternance le cas échéant, et d'autres informations scolaires.
![Scolarité](user/img/fr_vendee_vendeepersonmineur_2821_scolarite_view.png)
![Scolarité](./img/fr_vendee_vendeepersonmineur_2821_scolarite_view.png)

View File

@@ -11,7 +11,7 @@ Pour chaque usager, on peut définir des parcours d'accompagnements. Enfin, à c
## Créer un usager
<!-- fr/person/new -->
![Créer un usager](user/img/fr_person_new.png)
![Créer un usager](./img/fr_person_new.png)
Pour ajouter un usager, cliquez sur "Sections" > "Ajout d'un usager", depuis:
@@ -34,7 +34,7 @@ Chill va rechercher les doublons potentiels pour un usager qui est créé. La re
## Détails de l'usager
<!-- fr/person/{id}/general -->
![Page de détails de l'usager](user/img/fr_person_2811_general.png)
![Page de détails de l'usager](./img/fr_person_2811_general.png)
La fiche de l'usager contient toutes les informations détaillées de l'usager, à savoir:
@@ -61,7 +61,7 @@ En conséquence, on n'attache pas l'adresse de domicile directement à un usager
## Adresses de résidences
<!-- /fr/person/{id}/residential-address/list -->
![Adresse de résidence pour un usager](user/img/fr_person_2811_residential-address_list.png)
![Adresse de résidence pour un usager](./img/fr_person_2811_residential-address_list.png)
Chaque usager peut avoir une ou plusieurs adresses de résidences. On y accède en cliquant sur "Adresses de résidence" dans le menu à droite.
@@ -77,7 +77,7 @@ Lors de l'ajout d'une adresse de résidence, il y a le choix entre:
## Personnes ressources
<!-- /fr/person/{id}/resources/list -->
![Personnes ressources d'un usager](user/img/fr_person_2811_resources_list.png)
![Personnes ressources d'un usager](./img/fr_person_2811_resources_list.png)
Les personnes ressources sont des autres usagers ou des tiers (#sec:tiers) associés au dossier de l'usager. Une personne-ressource peut être un ami ou un voisin (un autre usager), un professionnel de la santé (un tiers), etc. Les autres membres du ménage de la personne sont plutôt à saisir dans la partie "ménage". Si la personne-ressource n'est pas enregistrée, on peut également l'ajouter en tant que description libre.

View File

@@ -7,7 +7,7 @@ Dans le bandeau supérieur, il y a une barre de recherche des usagers. On peut y
Si vous n'avez pas trouvé l'usager, vous pouvez cliquer sur le bouton "Recherche avancé". Dans la page de recherche avancée, on peut rechercher sur base de la date de naissance, un fragment de numéro de téléphone, etc.
![Recherche avancée d'un usager](user/img/advanced_search.png)
![Recherche avancée d'un usager](./img/advanced_search.png)
## Motifs de recherche

View File

@@ -20,7 +20,7 @@ Bien que les types d'actions soient limités par les problématiques du parcours
<!-- /fr/personne/accompagnement-période/{id}/travail -->
![Action d'accompagnement](user/img/action_accompagnement.png)
![Action d'accompagnement](./img/action_accompagnement.png)
Comme de nombreuses autres sections de l'application Chill, une liste des actions d'accompagnement social peut être trouvée en cliquant sur <**Actions d'accompagnement**> dans le menu latéral jaune d'un parcours.