Compare commits

...

58 Commits

Author SHA1 Message Date
Julien Fastré ad64d60721
précisions sur statut du parcours
continuous-integration/drone/push Build is passing Details
2023-11-10 14:21:52 +01:00
Julien Fastré d71934b6d8
carte des entités et des relations un-à-plusieurs
continuous-integration/drone/push Build is passing Details
2023-11-07 21:47:23 +01:00
Julien Fastré 73d5e35809
nouveaux filtres dans les échanges 2023-11-07 21:47:19 +01:00
Julien Fastré 15cf0c045a Merge pull request 'add a page for export and explanations about filters and aggregators' (#6) from documentation-export-base into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #6
2023-10-24 13:15:22 +00:00
Julien Fastré 147f1c29f4 Merge pull request 'improve doc for variable thirdParty in Doc gen' (#7) from docgen-add-third-party into main
continuous-integration/drone/push Build is passing Details
Reviewed-on: #7
2023-10-24 13:14:59 +00:00
Julien Fastré 7e9bb952b8
concepts for exports
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-10-24 15:14:24 +02:00
Julien Fastré 5af59d6c69
add a new "accompanyingPeriodInfo"
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-10-24 13:15:13 +02:00
Julien Fastré 1165b5edbd
aggregators for person, accompanying period and activity 2023-10-24 13:14:36 +02:00
Julien Fastré 3128fa299d
add the exports files to build script
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-10-23 23:05:22 +02:00
Julien Fastré 6cbf663de8
Merge remote-tracking branch 'origin/documentation-export-base' into documentation-export-base 2023-10-23 23:04:24 +02:00
Julien Fastré 185e93afd8 more docs on exports
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-10-23 21:03:41 +00:00
Julien Fastré fad78b1c19 new exports 2023-10-23 21:03:41 +00:00
Julien Fastré 9b14326edc Doc filtre groupement par localisation de l'échange 2023-10-23 21:03:41 +00:00
Julien Fastré 3a3aedaec1 add new filters and grouping and precise about intervention / intervenants 2023-10-23 21:03:41 +00:00
Julien Fastré 589742894c add filter 2023-10-23 21:03:41 +00:00
Julien Fastré 81cc08aaf7 rename the label of some filters 2023-10-23 21:03:41 +00:00
Julien Fastré 5fab83927e add a page for export and explanations about some filters 2023-10-23 21:03:41 +00:00
Julien Fastré 24ef4f919a
more docs on exports
continuous-integration/drone/push Build was killed Details
continuous-integration/drone/pr Build was killed Details
2023-10-23 14:29:39 +02:00
Julien Fastré 180daf4e9d
new exports
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-10-20 14:10:41 +02:00
Julien Fastré 1756474c64 improve doc for variable thirdParty in Doc gen
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
Signed-off-by: Julien Fastré <julienfastre@noreply.localhost>
2023-10-19 16:01:32 +00:00
Julien Fastré d3f68d6258
Doc filtre groupement par localisation de l'échange
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-07-11 15:14:39 +02:00
Julien Fastré 09d11a0d3a
force to display figure before title 2023-07-11 15:14:39 +02:00
Julien Fastré 082f67710e
make numbering starts to 1 2023-07-11 15:14:39 +02:00
Julien Fastré 7efd5873da
fix numbering 2023-07-11 15:14:39 +02:00
Julien Fastré 05deae0684
add new filters and grouping and precise about intervention / intervenants
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-06-30 15:08:54 +02:00
Julien Fastré b7d5734caa
add filter
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-06-27 15:56:05 +02:00
Julien Fastré 369cf0c714
rename the label of some filters 2023-06-27 15:54:01 +02:00
Julien Fastré 3b7619486f
force to display figure before title
continuous-integration/drone/push Build is passing Details
2023-06-27 14:01:47 +02:00
Julien Fastré 78bc7128f9
make numbering starts to 1 2023-06-27 14:01:31 +02:00
Julien Fastré 99e8bc2c7f
fix numbering 2023-06-27 13:52:40 +02:00
Julien Fastré b7f7b68d72
add a page for export and explanations about some filters
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-06-27 13:04:16 +02:00
Julien Fastré e8aeab1ac7
more templates in admin / generation document
continuous-integration/drone/push Build is passing Details
2023-06-27 13:03:58 +02:00
Robin Hublart 558461b3fb Transférer les fichiers vers 'admin/generation-documents-templates'
continuous-integration/drone/push Build is passing Details
2023-06-15 10:51:07 +00:00
Robin Hublart e037b4fff8 Transférer les fichiers vers 'admin/generation-documents-templates'
continuous-integration/drone/push Build is passing Details
2023-06-15 10:50:36 +00:00
Robin Hublart 7e8b8bd2d4 Transférer les fichiers vers 'admin/generation-documents-templates'
continuous-integration/drone/push Build is passing Details
2023-06-15 10:15:37 +00:00
Robin Hublart 0e2b5b3201 Transférer les fichiers vers 'admin/generation-documents-templates'
continuous-integration/drone/push Build is passing Details
2023-06-14 09:39:24 +00:00
Julien Fastré d4bb0bf552 Merge pull request 'Ajout des notifications sur les actions et les documents dans les évaluations + Household composition dans la génération de documents' (#4) from nouveautes-notifications into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
Reviewed-on: #4
2023-05-22 07:39:27 +00:00
Julien Fastré fcf088443b Merge branch 'main' into nouveautes-notifications
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-05-22 07:34:50 +00:00
Julien Fastré 02cf7861f3
Documentation for HouseholdComposition in doc generation
continuous-integration/drone/pr Build is passing Details
continuous-integration/drone/push Build is passing Details
2023-05-17 16:08:33 +02:00
Julien Fastré b43db4a066
notifications dans les actions et évaluations
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-04-28 10:21:19 +02:00
Julien Fastré 44a37b9837
plus d'explication sur les parcours 2023-04-28 10:13:58 +02:00
Julien Fastré 996373775c
page nouveautes dans le manuels 2023-04-28 10:13:34 +02:00
Julien Fastré 361cca96a8 Merge pull request 'Parallelization of drone builds, where possible' (#3) from drone/parallelization into main
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build was killed Details
Reviewed-on: #3
2023-04-27 21:06:51 +00:00
Julien Fastré 34af210f7f
parallelization
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details
2023-04-27 23:04:53 +02:00
Julien Fastré 476b0b31c1
fix generation
continuous-integration/drone/push Build is passing Details
2023-04-27 23:00:39 +02:00
Julien Fastré b9a0949236
Explications changement de statut du parcours
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build is failing Details
2023-04-27 22:57:20 +02:00
Julien Fastré 44deae9cee
Explanation for address not synchronized 2023-04-27 22:46:47 +02:00
Julien Fastré 47654378b4
ajout mention des exemples de modèle de documents
continuous-integration/drone/tag Build is running Details
continuous-integration/drone/push Build is passing Details
2023-03-06 11:43:54 +01:00
Julien Fastré 2178f99eee
Ajout gabarits de documents
continuous-integration/drone/push Build is passing Details
2023-03-06 11:42:02 +01:00
Julien Fastré 0e11e35caa
Fixed: [docgen] capture d'écran dans la génératio nde document
continuous-integration/drone/push Build is running Details
continuous-integration/drone/tag Build is running Details
2023-02-10 00:20:57 +01:00
Julien Fastré 9a90bb24dd
Fix: [docgen] correct image for insert renvoi
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is running Details
2023-02-10 00:12:38 +01:00
Julien Fastré 81610bcf52
admin/docgen: ré-ordonne les objets par ordre alphabétique + uniquement les objets pour toutes les instances
continuous-integration/drone/push Build is passing Details
2023-02-10 00:06:43 +01:00
Julien Fastré ca7a42af0b
docgen: mise à jour des principes et utilisation dans Libre office
continuous-integration/drone/push Build is passing Details
2023-02-09 23:49:37 +01:00
Julien Fastré c08df4ec8c replace variable name
continuous-integration/drone/tag Build is passing Details
continuous-integration/drone/push Build is passing Details
2022-10-19 21:44:47 +02:00
Julien Fastré 6120aee787 add missing doc for ThirdPartyProfession and ThirdPartyCategory and fixes delegation and tuteur 2022-10-19 21:44:47 +02:00
Julien Fastré 6d5a56c9b2 Documentation pour la date `createdAtDate` 2022-10-19 21:44:47 +02:00
Julien Fastré 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
continuous-integration/drone/push Build is passing Details
2022-07-18 15:32:14 +02:00
37 changed files with 1883 additions and 478 deletions

View File

@ -18,12 +18,16 @@ steps:
commands:
- git lfs fetch
- git lfs checkout
depends_on:
- clone
- name: pandoc
image: pandoc/core:2.18-alpine
commands:
- sh build-pandoc.sh latex user > user/user-manual.tex
- sh build-pandoc.sh latex admin > admin/admin-manual.tex
depends_on:
- fetch images
- name: build-latex-user
image: texlive/texlive
@ -31,6 +35,8 @@ steps:
- cd user
- latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode -xelatex user-manual.tex
- mv user-manual.pdf ../Manuel\ utilisateur.pdf
depends_on:
- pandoc
- name: build-latex-admin
image: texlive/texlive
@ -38,6 +44,8 @@ steps:
- cd admin
- latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode -xelatex admin-manual.tex
- mv admin-manual.pdf ../Manuel\ administrateur.pdf
depends_on:
- pandoc
- name: release
image: plugins/gitea-release
@ -49,11 +57,14 @@ steps:
- "Manuel administrateur.pdf"
- "Manuel utilisateur.pdf"
title: ${DRONE_TAG:=latest}
depends_on:
- build-latex-user
- build-latex-admin
when:
event:
- tag
---
kind: signature
hmac: dc200b08e09b83e734ff829ac62c7daf5f80986f725edac1b974b07793adb4b0
hmac: a83892d8f9bb967bd2a6335e2b34008e05f9bec482f270237c6764918434f97c
...

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
admin/generation-documents-templates/template parcours.odt (Stored with Git LFS) Normal file

Binary file not shown.

BIN
admin/generation-documents-templates/template personne.odt (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

View File

@ -11,7 +11,20 @@ Seuls les documents suivants peuvent être utilisés:
* .ods
* .odp
## Rappel du parcours des utilisateurs
Des exemples sont disponibles [en ligne](https://gitea.champs-libres.be/Chill-project/manuals/src/branch/main/admin/generation-documents-templates).
## Rappel de "l'expérience utilisateur": comment les utilisateurs génèrent un document ?
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:
@ -21,7 +34,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 +42,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 +64,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 l'identifiant (numéro, `id`) du parcours: `v.course.id`](./img/generation-document/libre-office-fonction-substituant.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 +158,8 @@ 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");
* un champ "tiers", qui permet de choisir un tiers parmi les tiers "personnes ressources" du parcours, ou le demandeur du parcours (s'il s'agit d'un tiers);
#### Variables
@ -113,6 +169,7 @@ Le document présente:
* si `usager principal du parcours` est coché, une variable `mainPerson`, de type `Person`, avec les variants `relations`, `household` (ménage) et `budget`;
* 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`;
* une variable `thirdParty`, de type `ThirdParty`, uniquement si l'administrateur fonctionnel l'a configuré.
### Document générés pour un parcours, contexte "liste des activités"
@ -132,6 +189,7 @@ Le document présente:
* si `usager principal du parcours` est coché, une variable `mainPerson`, de type `Person`, avec les variants `relations`, `household` (ménage) et `budget`;
* 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`;
* une variable `thirdParty`, de type `ThirdParty`, uniquement si l'administrateur fonctionnel l'a configuré.
### Document générés pour un échange
@ -147,26 +205,35 @@ 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`;
* une variable `thirdParty`, de type `ThirdParty`, uniquement si l'administrateur fonctionnel l'a configuré.
### 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`
@ -212,20 +279,22 @@ ${courseStartDateShort} // 15/01/2021
* `comments` (liste de AccompanyingPeriodComment): liste des commentaires;
* `pinnedComment` (AccompanyingPeriodComment): commentaire épinglé;
### AccompanyingPeriodComment
### 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
### 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;
@ -233,11 +302,50 @@ ${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)
* `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
### Activity (échange)
@ -271,32 +379,154 @@ 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é
### ClosingMotive
### 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é
### Date
### 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;
* `current_address` (Adress) : adresse actuelle du ménage
* `current_composition` (HouseholdComposition): Composition **actuelle** du ménage
* `currentMembers` (liste de HouseholdMember): liste des membres **actuels** du ménage;
* `members` (liste de HouseholdMember): liste des membres du ménages. Cette liste inclut également les anciens membres;
* `waitingForBirth` (bool): `true` si une naissance est attendue;
* `waitingForBirthDate` (Date): date de la naissance attendue;
### HouseholdComposition
La composition du ménage entre deux dates. Cette entité associe une `HouseholdCompositionType` avec une date de début et une date de fin
* `id` (int): L'identifiant de la composition
* `startDate` (Date): date de début de validité de la composition du ménage;
* `endDate` (Date): date de fin de validité de la composition du ménage (vide si actif)
* `numberOfChildren` (int): nombre d'enfants
* `householdCompositionType` (HouseholdCompositionType): Type de composition choisie, entre deux dates
### HouseholdCompositionType
* `id` (int): L'identifiant du type de composition
* `label` (texte): Le libellé de la composition
### 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;
@ -323,150 +553,6 @@ Présence à l'échange
* `address` (Adresse): l'adresse actuelle
* `resources` (PersonResource): les personnes ressources, ajoutées depuis le dossier de l'usager.
::: { .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
:::
#### variant `household`
* `household` (Household): le ménage actuel de l'usager;
@ -516,20 +602,6 @@ 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;
#### Exemple d'utilisation
```
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
```
::: { .vendee }
### PersonResource (Ressources associée à l'usager)
Pour rappel, les ressources peuvent être:
@ -550,164 +622,14 @@ Pour rappel, les ressources peuvent être:
### PersonResourceKind (Type de personne ressource)
* `id` (int)
* `title` (texte)
* `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` (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;
### 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.
@ -723,42 +645,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;
* `referrers` (liste de User): liste des agents traitants;
### SocialAction (type d'action d'accompagnement)
@ -766,36 +657,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

@ -36,8 +36,19 @@ if [ $kind = 'user' ]; then
notifications.md
tasks.md
workflows.md
choisir_une_adresse.md
adresses.md
exports.md
exports_person.md
exports_activity.md
exports_accompanying_period.md
nouveautes.md
"
# missing pages to once completed
# exports_accompanying_period_work.md
# exports_accompanying_period_work_evaluation.md
# exports_aside_activity.md
# exports_calendar.md
# exports_household.md
elif [ $kind = 'admin' ]; then
export files="
start.md

66
user/adresses.md Normal file
View File

@ -0,0 +1,66 @@
\newpage
# Gestion des adresses
## Choisir une adresse {#sec:choisir-une-adresse}
Que ce soit dans un ménage, dans un tiers ou encore pour localiser un échange, il y a plusieurs endroits où vous pouvez saisir une adresse dans Chill.
### Création d'une d'adresse
Lorsque le formulaire d'adresse s'ouvre, vous pouvez soit sélectionner une adresse "de référence", soit en saisir une nouvelle. Il est en effet possible de pré-charger une liste d'adresses de référence provenant de sources officielles 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](./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.
La case à cocher "Pas d'adresse complète" permet d'indiquer une adresse uniquement en indiquant la pays et une localité, sans définir la rue et le numéro de bâtiment. Si cette case n'est pas cochée, vous devez remplir la rue et le numéro de bâtiment.
Si des adresses de référence ont été pré-chargées dans le logiciel, vous pouvez successivement choisir la localité (ville ou village), puis l'adresse précise (rue et numéro de bâtiment). Si l'adresse est inconnue par le logiciel, que ce soit au niveau de la localité ou de l'adresse précise, écrivez le nom dans le champ correspondant et le formulaire vous proposera de saisir une nouvelle adresse. Attention, la recherche d'une adresse pré-chargée est sensible à des fautes de frappes ou d'orthographe, donc assurez-vous de l'orthographe de votre saisie avant de créer une nouvelle adresse.
Lorsqu'une adresse de référence est sélectionnée, la localisation de l'adresse est connue et le pointeur se déplace sur la carte à l'endroit de l'adresse. Lors de la création d'une adresse inconnue par le logiciel, la localisation ne peut pas être définie.
En bas du formulaire, une série de champs optionnels peuvent être complétés pour préciser l'adresse (étage, couloir, escalier, complément d'adresse, etc.). En remplissant adéquatement ces champs, le logiciel pourra générer des adresses postales valides utiles pour la génération de documents.
### Dates de validité
Dans le cas d'une adresse d'un ménage, lors de la création d'une adresse, une date de validité doit être choisie, indiquant à partir de quand l'adresse est valide. Lors d'un changement d'adresse, le logiciel va garder l'historique des adresses d'un ménage en tenant compte de ces dates de validité.
## Édition d'une adresse existante
Dans le cas d'une erreur, ou bien dans le cas d'un changement d'adresse d'un tiers, il est possible d'éditer une adresse existante en cliquant sur le bouton "Modifier l'adresse".
## Visualiser les détails d'une adresse
A côté de chaque adresse, un bouton indiquant une carte permet de visualiser les détails d'une adresse, et notamment:
- visualiser l'adresse sur une carte;
- ouvrir, dans une nouvelle fenêtre ou un nouvel onglet, une carte détaillée sur Google maps ou OpenStreetMap, pour visualiser l'endroit de manière plus confortable et éventuellement calculer un itinéraire;
- lister les zones statistiques géographiques qui recouvrent l'adresse.
::: {.note}
La page de visualisation sur Google Maps où OpenStreetMap s'ouvre dans un nouvel onglet, ou une nouvelle fenêtre.
:::
![Une adresse, le bouton avec une carte permettant de visualiser les détails de cette adresse](img/address_inline_with_button.png)
![Visualisation des détails d'une adresse](img/address_details_modal.png)
## Mise à jour des adresses de référence
Les adresses de références devraient être régulièrement mises à jour. Il est probable que des changements aient lieu dans des adresses de référence qui sont associées aux adresses des tiers et des ménages.
Dans ce cas, cela est indiqué dans l'affichage de l'adresse et dans la modale qui permet de visualiser les détails. Vous pouvez alors choisir de mettre à jour cette adresse ou d'ignorer les changements.
![Adresse dont l'adresse de référence a été modifiée](img/address_inline_with_button_and_warning.png)
![Mettre à jour une adresse de référence modifiée](img/address_details_modal_with_address_reference_change.png)
::: {.note}
Il existe un filtre permettant de lister les ménages dont l'adresse de référence a fait l'objet d'une mise à jour.
:::

View File

@ -1,30 +0,0 @@
\newpage
# Choisir une adresse {#sec:choisir-une-adresse}
Que ce soit dans un ménage, dans un tiers ou encore pour localiser un échange, il y a plusieurs endroits où vous pouvez saisir une adresse dans Chill.
## Création d'une d'adresse
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](./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.
La case à cocher "Pas d'adresse complète" permet d'indiquer une adresse uniquement en indiquant la pays et une localité, sans définir la rue et le numéro de bâtiment. Si cette case n'est pas cochée, vous devez remplir la rue et le numéro de bâtiment.
Si des adresses ont été pré-chargées dans le logiciel, vous pouvez successivement choisir la localité (ville ou village), puis l'adresse précise (rue et numéro de bâtiment). Si l'adresse est inconnue par le logiciel, que ce soit au niveau de la localité ou de l'adresse précise, écrivez le nom dans le champ correspondant et le formulaire vous proposera de saisir une nouvelle adresse. Attention, la recherche d'une adresse pré-chargée est sensible à des fautes de frappes ou d'orthographe, donc assurez-vous de l'orthographe de votre saisie avant de créer une nouvelle adresse.
Lorsqu'une adresse pré-chargée est sélectionné, la localisation de l'adresse est connue et le pointeur se déplace sur la carte à l'endroit de l'adresse. Lors de la création d'une adresse inconnue par le logiciel, la localisation ne peut pas être définie.
En bas du formulaire, une série de champs optionnels peuvent être complétés pour préciser l'adresse (étage, couloir, escalier, complément d'adresse, etc.). En remplissant adéquatement ces champs, le logiciel pourra générer des adresses postales valides utiles pour la génération de documents.
## Dates de validité
Dans le cas d'une adresse d'un ménage, lors de la création d'une adresse, une date de validité doit être choisie, indiquant à partir de quand l'adresse est valide. Lors d'un changement d'adresse, le logiciel va garder l'historique des adresses d'un ménage en tenant compte de ces dates de validité.
## Édition d'une adresse existante
Dans le cas d'une erreur, ou bien dans le cas d'un changement d'adresse d'un tiers, il est possible d'éditer une adresse existante en cliquant sur le bouton "Modifier l'adresse".

208
user/exports.md Normal file
View File

@ -0,0 +1,208 @@
```{=latex}
\cleardoublepage
```
# Exports
Chill permet d'exporter les données sous différentes formes:
- des listes;
- des tableaux reprenant un ou plusieurs indicateurs.
Les listes peuvent être filtrées selon différents paramètres: âge de l'usager, date de l'échange, etc.
Les tableaux reprennent un indicateur (par exemple: nombre de parcours, nombre d'usager, durée moyenne des échanges), dont les données servant de base au calcul de cet indicateur peut également être filtré, mais aussi regroupé selon différents paramètres (exemple: statut du parcours, type d'échange, etc.). Ces exports ressemblent donc aux "tableaux croisés dynamiques" disponibles dans les logiciels de tableur.
## Fonctionnement général et concepts
### Export d'indicateurs
Les exports fonctionnent comme des tableaux croisés:
- un "export" permet de choisir l'indicateur.
Quelques exemples d'export: nombre de parcours, durée moyenne des parcours, nombre d'usagers, etc.
- des filtres permettent de ne retenir qu'une partie des données.
Exemple de filtre: uniquement les parcours urgent, les usagers de plus de 18 ans, etc.
- des regroupements créent des "classes statistiques" et permettent d'aggréger les données dans ces classes.
Cela permet de connaitre, par exemple, le "nombre d'échange par type d'échange", "le nombre de parcours par référent", etc.
### Listes de données
Au sein des exports, Chill propose des "listes" de données: liste des parcours, liste des usagers, etc.
Ces listes sont des données au format tableur, et chaque colonne comporte une information.
Les filtres des exports d'indicateurs sont disponibles pour les listes: il est donc possible de connaitre la liste des usagers de plus de 18 ans, etc.[^grouping-non-sense]
[^grouping-non-sense]: Les regroupements ne sont pas, eux disponibles: ils n'ont pas de sens dans ce contexte.
### Sauvegarde des exports configurés
Lorsqu'un export est configuré, il peut être sauvegardé par l'utilisateur. Ce dernier lui indique donc un titre et une description. L'export peut alors être re-joué plusieurs fois à partir des exports sauvegardés.
![Sélecteur qui permet d'accéder à la liste des exports enregistrés](img/export_select_saved_exports.png)
Les exports enregistrés peuvent être modifiés et sauvegardés sous un autre nom.
### Filtres
Les filtres permettent donc de filtrer les données avant l'export.
Ils peuvent être additionnés les uns aux autres: activer deux filtres lors d'un export filtrera les données pour ne retenir que les données qui correspondent aux deux filtres combinés.
Certains filtres demandent des paramètres pour être complétés.
### Regroupements
Les regroupements permettent de créer des classes statistiques pour regrouper les indicateurs.
Typiquement, chaque regroupement va ajouter une colonne dans le résultat, indiquant la nature de la donnée regroupée. Par exemple, le genre des usagers comptabilisés, le nom du référent du parcours, etc.
Ils peuvent également être combinés les uns aux autres. Dans ce cas, cela se matérialise par l'existence de plusieurs colonnes dans le résultat final: une colonne par regroupement.
Lorsque certaines données ne comportent pas de valeur, la cellule de la colonne du regroupement est généralement vide, ou son libellé est explicite.
#### Regroupements dans le cas de relation un-à-plusieurs
Il existe des relations un-à-plusieurs entre différents éléments, et qui font l'objet d'un regroupement. Quelques exemples: un parcours comporte plusieurs problématiques sociales, un échange peut comporter plusieurs utilisateurs participants, etc.
Dans ce cas, l'indicateur est comptabilisé plusieurs fois: une fois en regard de chaque ligne.
Prenons pour exemple les parcours et les problématiques sociales:
- le parcours n°1 comporte les problématiques "Logement", "Santé" et "Emploi";
- le parcours n°2 comporte les problématiues "Logement" et "Santé".
Le résultat sera le suivant:
| Problématique | Nombre de parcours | Explication |
|--------------:|---------:|-----------------------------------------------------|
|Emploi|1|Seul le parcours n°1 est comptabilisé |
|Logement|2|Le parcours n°1 et 2 sont concernés|
|Santé|2|Le parcours n°1 et 2 sont concernés|
Notez que le total des colonnes "nombre de parcours" est supérieur à deux (en l'occurrence il est de 5), alors qu'il y a seulement deux parcours concernés. Il est important d'être attentif à ce comportement lors de la comptabilisation des résultats: l'usage de "totaux" (souvent indiqués en bas de colonne, par exemple) n'est pas pertinent.
### Données historiques
Le logiciel Chill enregistre des données historiques: les référents d'un parcours, les référents des actions, l'appartenance d'un utilisateur à un ménage, etc.
Dès lors, de nombreux filtres et regroupements demandent une "date de calcul" pour ces éléments: il s'agit de la date à laquelle le référent était en position de désignation sur un parcours, l'appartenance de l'usager à un ménage à la date indiquée, etc.
### Dates glissantes
Les parcours peuvent être enregistrés, et rejoués à des dates différentes.
Dès lors, le logiciel utilise des "dates glissantes" pour indiquer une date, plutôt qu'une valeur absolue. Les "dates glissantes" se matérialisent par un menu déroulant dans lequel l'utilisateur indique un calcul de date:
- le début de l'année précédente,
- le début de l'année courante;
- la date du jour,
- etc.
Cet indicateur est converti **au moment de la génération de l'export**. Ainsi, le "début du mois précédent" sera le 1er janvier 2023 lorsque l'export est généré le 15 février 2023. Lorsqu'il sera généré le 15 mars 2023, le "début du mois précédent" sera le 1er février 2023.
Il n'y a pas de mention de "fin" d'une période ("fin du mois courant", "fin du mois précédent", etc.), car la fin d'une période est le début de la période suivante.
### Couches et zones géographiques
Les adresses sont localisées, dans Chill. La localisation géographique est enregistrée à l'endroit exact lorsque l'utilisateur a choisi l'adresse dans une liste de référence. Lorsque seul le code postal est choisi parmi les suggestions, alors l'adresse est géolocalisée à l'intérieur de la zone géographique du code postal, de manière aléatoire.
Les administrateurs peuvent injecter dans le logiciel des zones géographiques, qui appartiennent chacune à une "couche". Chaque zone est définie par une frontière (un polygone géographique). Ainsi, la couche des "communes" comportent plusieurs communes, appelées par leur nom. Chaque adresse peut être géographiquement associée à une zone géographique en fonction de la localisation: toutes les adresses à l'intérieur des frontières de la zone est associée à cette zone.
Chill est en mesure de proposer, dès lors,
- des filtres par zone géographiques;
- des regroupements par couche géographiques;
::: {.warning}
Lorsqu'une adresse n'est pas choisie dans la liste des adresses de référence, l'adresse n'est pas géolocalisée. Les statistiques sont donc inopérantes.
Cependant, Chill "essaie" de donner un géolocalisation aux adresses nouvellement créées par comparaison avec une adresse existante dans la base de donnée de référence, en comparant le nom de la rue et les codes postaux. Cependant, cet essai n'est pas toujours fructueux.
:::
::: {.info}
L'association entre les zones géographiques et les adresses est une opération couteuse, et donc lente, en termes informatiques. Pour permettre de générer des exports rapidement, cette association est calculée une fois par nuit.
En conséquence, l'association entre la zone géographique et les adresses du jour ne sera pas disponible.
:::
## Liste des filtres et regroupements
<!-- PHPFILE: this list was extracted through this command: find src/ -type f -iname '*.php' | grep Export | grep --invert-match Test | grep --invert-match Helper | grep --invert-match Controller | grep --invert-match Constraint | grep --invert-match DependencyInjection | grep --invert-match Interface | grep --invert-match Declaration | sort -->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Export/Formatter/CSVFormatter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Export/Formatter/CSVListFormatter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Export/Formatter/CSVPivotedListFormatter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Export/Formatter/SpreadSheetFormatter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Export/Formatter/SpreadsheetListFormatter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/DataMapper/ExportPickCenterDataMapper.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/SavedExportType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/AggregatorType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/ExportType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/FilterType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/FormatterType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/PickCenterType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Form/Type/Export/PickFormatterType.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Repository/SavedExportRepository.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Security/Authorization/ChillExportVoter.php-->
<!-- PHPFILE: src/Bundle/ChillMainBundle/Security/Authorization/SavedExportVoter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/AbstractAccompanyingPeriodExportElement.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/ActionTypeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/CurrentActionAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/GoalAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/GoalResultAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/JobAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/ReferrerAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/ResultAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/ScopeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountAccompanyingCourse.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountAccompanyingPeriodWork.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountEvaluation.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountHousehold.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountPerson.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/CountPersonWithAccompanyingCourse.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriod.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWork.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListEvaluation.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListHouseholdInPeriod.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListPersonDuplicate.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListPerson.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/ListPersonWithAccompanyingPeriod.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Export/StatAccompanyingCourseDuration.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/EvaluationFilters/ByEndDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/EvaluationFilters/ByStartDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/EvaluationFilters/CurrentEvaluationsFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/EvaluationFilters/EvaluationTypeFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/EvaluationFilters/MaxDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/HouseholdFilters/CompositionFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/AccompanyingPeriodWorkEndDateBetweenDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/AccompanyingPeriodWorkStartDateBetweenDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/CurrentActionFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/JobFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/ReferrerFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/ScopeFilter.php-->
<!-- PHPFILE: src/Bundle/ChillReportBundle/Export/Export/ReportList.php-->
<!-- PHPFILE: src/Bundle/ChillReportBundle/Export/Export/ReportListProvider.php-->
<!-- PHPFILE: src/Bundle/ChillReportBundle/Export/Filter/ReportDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/SocialWorkFilters/SocialWorkTypeFilter.php-->

View File

@ -0,0 +1,506 @@
### Exports liés aux parcours
- liste des parcours;
- nombre de parcours;
- durée moyenne et nombre des participations des usagers aux parcours,
### Filtres liés aux parcours
#### Filtrer les parcours avec une localisation temporaire ou auprès d'un usager
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/HasTemporaryLocationFilter.php-->
Filtre les parcours associés à une localisation temporaire ou une localisation auprès d'un usager. La localisation doit être valable à une date indiquée en paramètre.
#### Filtrer les parcours ayant reçu un échange entre deux dates
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/PeriodHavingActivityBetweenDatesFilter.php -->
Ce filtre permet de ne prendre en compte que les parcours ayant reçu au moins un échange entre les deux dates indiquées en paramètre.
#### Filter les parcours ayant reçu une intervention entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/HavingAnAccompanyingPeriodInfoWithinDatesFilter.php-->
Ce filtre permet d'indiquer deux dates qui forment une période de recherche.
Filtre les parcours qui ont reçu au moins une intervention pendant cette période de recherche. La liste des interventions est identique à celle [utilisée pour le changement de statut des parcours](#sec:evenement-statut-parcours).
#### Filtrer les parcours dont la date d'ouverture est comprise entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/OpenBetweenDatesFilter.php-->
Ce filtre permet d'indiquer deux dates qui forment une période de recherche.
Filtre les parcours dont la date d'ouverture est comprise entre les deux dates indiquées en paramètre. La date de fin est non comprise dans la période de recherche.
Ce filtre permet de filtrer les "nouveaux parcours" qui ont débuté au cours d'une période.
#### Filtrer les parcours ouverts au moins un jour dans la période
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ActiveOneDayBetweenDatesFilter.php-->
Ce filtre permet d'indiquer deux dates qui forment une période de recherche.
Filtre les parcours, pour ne retenir que les parcours qui ont été ouverts au moins un jour pendant la période de recherche. Autrement dit:
- la date d'ouverture est antérieure à la fin de la période de recherche;
- la date de fermeture est postérieure au début de la période de recherche, ou le parcours est toujours ouvert.
#### Filtrer les parcours ouverts à une date
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ActiveOnDateFilter.php-->
Filtre les parcours, pour ne retenir que les parcours dont:
- la date d'ouverture est antérieure à la date communiquée,
- qui ne sont pas clôturés ou dont la date est de clôture est postérieure à la date communiquée.
#### Filtrer les parcours par action d'accompagnement
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/SocialActionFilter.php-->
Filtre les parcours ayant au moins une action d'accompagnement d'un type indiqué en paramètre.
#### Filtrer les parcours par confidentialité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ConfidentialFilter.php-->
Filtre les parcours marqués comme confidentiel ou non.
#### Filtrer les parcours par créateur
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/CreatorFilter.php-->
Filtre les parcours en fonction du créateur.
#### Filtrer les parcours par intensité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/IntensityFilter.php-->
Filtre les parcours en fonction de l'intensité (ponctuel ou régulier).
#### Filter les parcours par intervenant, entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/UserWorkingOnCourseFilter.php-->
Ce filtre permet d'indiquer:
- une date de début et une date de fin, qui forment une période de recherche;
- un ou plusieurs utilisateurs
Le filtre ne retient que les parcours qui ont reçu une intervention de la part d'un des utilisateurs indiqués en paramètre, et pendant la période indiquée. La date de fin est non comprise dans la période de recherche.
La notion d'intervenant est définie [dans le chapitre correspondant](#sec:parcours-intervenant).
Exemples d'utilisation:
- ce filtre permet de répondre à la question "Sur combien de parcours l'utilisateur Y est-il intervenu, entre le début de cette année et aujourd'hui".
#### Filtrer les parcours par localisation administrative
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/AdministrativeLocationFilter.php-->
Filtre les parcours par localisation administrative.
#### Filtrer les parcours par motif de clôture
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ClosingMotiveFilter.php-->
Filtre les parcours par motif de cloture.
#### Filtrer les parcours par métier de l'intervenant, entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/JobWorkingOnCourseFilter.php-->
Ce filtre permet d'indiquer:
- une date de début et une date de fin, qui forment une période de recherche;
- un ou plusieurs métiers
Le filtre ne retient que les parcours qui ont reçu une intervention de la part des utilisateurs ayant un des métiers indiqués en paramètre, et pendant la période indiquée. La date de fin est non comprise dans la période de recherche.
La notion d'intervenant est définie [dans le chapitre correspondant](#sec:parcours-intervenant).
Exemples d'utilisation:
- ce filtre permet de répondre à la question "Combien de parcours reçoivent une intervention des utilisateurs ayant le métier X et Y, entre le début de l'année et aujourd'hui ?"
#### Filtrer les parcours par métier du créateur
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/CreatorJobFilter.php-->
Filtre les parcours par métier du créateur.
Le métier du créateur est pris en compte au moment de la création du parcours.
#### Filtrer les parcours par métier du référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/UserJobFilter.php-->
Filtre les parcours par métier du référent.
Le métier du référent est pris en compte au moment où ce dernier a été désigné comme référent.
#### Filtrer les parcours par origine du parcours
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/OriginFilter.php-->
Filtre les parcours par origine.
L'origine est indiquée dans le formulaire "Modifier le parcours".
#### Filtrer les parcours par problématiques sociales
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/SocialIssueFilter.php-->
Filtre les parcours par problématiques sociales.
Un parcours est pris en compte dès qu'il est associé à au moins une problématique sociale indiquée en paramètre.
#### Filtrer les parcours par référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ReferrerFilter.php-->
Filtre les parcours par référent.
Seuls les parcours dont le référent était un utilisateur indiqué en paramètre, et à la date indiquée en paramètre, sont pris en compte.
#### Filtrer les parcours par service de l'intervenant, entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/ScopeWorkingOnCourseFilter.php-->
Ce filtre permet d'indiquer:
- une date de début et une date de fin, qui forment une période de recherche;
- un ou plusieurs service
Le filtre ne retient que les parcours qui ont reçu une intervention de la part des utilisateurs ayant un des services indiqués en paramètre, et pendant la période indiquée. La date de fin est non comprise dans la période de recherche.
La notion d'intervenant est définie [dans le chapitre correspondant](#sec:parcours-intervenant).
Exemples d'utilisation:
- ce filtre permet de répondre à la question "Combien de parcours reçoivent une intervention des utilisateurs du service X et Y, entre le début de l'année et aujourd'hui ?"
#### Filtrer les parcours par service du référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/UserScopeFilter.php-->
Filtre les parcours par service du référent.
Le service du référent est pris en compte au moment où ce dernier a été désigné comme référent.
#### Filtrer les parcours par statut du parcours
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/StepFilterOnDate.php-->
Ce filtre permet d'indiquer une date en paramètre, ainsi qu'une liste de statuts.
Filtre les parcours qui avaient un des statuts sélectionné à la date indiquée.
Pour les différentes statuts, voir la section correspondante: [statuts du parcours](#sec:parcours-statut).
#### Filtrer les parcours par statut du parcours entre deux dates
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/StepFilterBetweenDates.php-->
Ce filtre permet d'indiquer deux dates qui forment une période de recherche, ainsi qu'une liste de statuts. La date de fin de la période est non comprise dans la période de recherche.
Filtre les parcours qui avaient un des statuts sélectionné pendant la période de recherche.
Note: comme un parcours peut avoir différents statuts au cours du temps, le présent filtre tiendra compte des parcours qui ont eu ce statut au moins un jour dans la période indiquée, même si ce statut a été changé pendant la période.
Pour les différentes statuts, voir la section correspondante: [statuts du parcours](#sec:parcours-statut).
#### Filtrer les parcours par type d'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php -->
Ce filtre permet de ne retenir que les parcours qui sont associé à au moins un échange d'un type donné en paramètre.
#### Filtrer les parcours par urgence
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/EmergencyFilter.php-->
Filtre les parcours urgent, ou non.
#### Filtrer les parcours par zone géographique
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/GeographicalUnitStatFilter.php-->
Filtre les parcours par zone géographique.
La localisation de l'adresse du parcours doit être indiquée: il peut s'agir soit d'une adresse temporaire qu'une localisation auprès d'une adresse d'un usager.
Seules les adresses géolocalisées sont prises en compte. Les adresses sont géolocalisées lorsqu'elles sont choisies parmi les adresses de référence. Lorsque seul le code postal est choisi parmi les suggestions, alors l'adresse est géolocalisée à l'intérieur de la zone géographique du code postal, de manière aléatoire.
La date de prise en compte de l'adresse doit également être indiquée en paramètre. Il s'agira alors de l'adresse temporaire valable sur le parcours à la date indiquée, ou l'adresse de l'usager à la date indiquée (il faut également qu'il ait été désigné comme "localisant" le parcours à la date indiquée).
::: {.info}
L'association entre les zones géographiques et les adresses est une opération couteuse, en termes informatique. Dès lors, cette association est calculée une fois par nuit.
En conséquence, l'association entre la zone géographique et les adresses du jour ne sera pas disponible.
:::
#### Filtrer les parcours par évaluation
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/EvaluationFilter.php-->
Filtre les parcours comportant au moins une évaluation du type indiqué en paramètre.
#### Filtrer les parcours qui nont pas dactions
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/HasNoActionFilter.php-->
Filtre les parcours qui ne comportent aucune action d'accompagnement.
#### Filtrer les parcours qui nont pas déchange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/HasNoActivityFilter.php-->
Filtre les parcours qui ne comportent aucun échange.
#### Filtrer les parcours sans référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/HasNoReferrerFilter.php-->
Filtre les parcours pour ne reprendre que ceux qui ne comportaient aucun référent à la date indiquée en paramètre.
#### Filtrer les parcours selon la nature du demandeur
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/RequestorFilter.php-->
Filtre les parcours pour ne retenir que:
- le demandeur est un usager concerné;
- le demandeur est un usager, mais n'est pas concerné par le parcours;
- le demandeur est un tiers
- le demandeur est ne comporte pas de demandeur.
### Regroupements liés aux parcours
#### Grouper les parcours par action d'accompagnement
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/BySocialActionAggregator.php-->
Groupe les parcours par action d'accompagnement.
**Relation un-à-plusieurs**: lorsqu'un parcours comporte plusieurs actions d'accompagnement, le parcours est comptabilisé en regard de chaque action.
#### Grouper les parcours par confidentialité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ConfidentialAggregator.php-->
Groupe les parcours selon qu'ils ont été marqués comme confidentiels, ou non.
#### Grouper les parcours par date d'ouverture
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/OpeningDateAggregator.php-->
Groupe les parcours par date d'ouverture. La date prise en compte ici est celle reprise dans le bandeau "parcours", elle peut être modifiée par l'utilisateur une fois le parcours ouvert, dans le formulaire `Modifier le parcours`.
Les dates d'ouvertures peuvent être retroupées par mois, année ou semaine. Dans ce dernier cas, la numérotation de la semaine est calculée en suivant la norme ISO 8601[^iso8601week]. Les regroupements par mois ou semaine sont préfixés par l'année correspondante.
[^iso8601week]: Voir <https://fr.wikipedia.org/wiki/Num%C3%A9rotation_ISO_des_semaines>
#### Grouper les parcours par date de cloture
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ClosingDateAggregator.php-->
Groupe les parcours par date de clôture. La date prise en compte ici est celle reprise dans le bandeau "parcours", elle peut être modifiée par l'utilisateur au moment de la cloture du parcours.
Les dates d'ouvertures peuvent être retroupées par mois, année ou semaine. Dans ce dernier cas, la numérotation de la semaine est calculée en suivant la norme ISO 8601[^iso8601week]. Les regroupements par mois ou semaine sont préfixés par l'année correspondante.
#### Grouper les parcours par durée
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/DurationAggregator.php-->
Groupe les parcours par durée du parcours.
La durée peut être exprimée en mois, semaines ou jours.
La durée calculée est la différence entre la date d'ouverture et la date de cloture: la première peut être mise à jour par l'utilisateur dans le formulaire `Modifier le parcours` et, par défaut, correspond à la date de confirmation du parcours. La seconde est indiquée par l'utilisateur au moment de la cloture du parcours. Lorsqu'un parcours est toujours ouvert, la durée est la différence entre la date d'ouverture et la date du jour de génération de l'export.
#### Grouper les parcours par intensité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/IntensityAggregator.php-->
Groupe les parcours par intensité (parcours ponctuel ou régulier).
#### Grouper les parcours par intervenant
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/UserWorkingAggregator.php-->
Ce regroupement permet de classer les indicateurs par intervenants sur le parcours.
Par intervenant sur le parcours, sont pris en compte tous les utilisateurs qui ont réalisé une intervention: [voir chapitre correspondant](#sec:parcours-intervenant).
**Relation un-à-plusieurs**: Lorsqu'un parcours comporte plusieurs intervenants, chaque parcours est comptabilisé en regard de chaque intervenant du parcours.
#### Grouper les parcours par localisation administrative
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/AdministrativeLocationAggregator.php-->
Groupe les parcours par localisation administrative.
#### Grouper les parcours par motif de clôture
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ClosingMotiveAggregator.php-->
Groupe les parcours par motifs de clôture.
Lorsqu'un parcours ne comporte pas de motif de clôture (parce qu'il est toujours ouvert, ou qu'il a été ré-ouvert après une clôture), le regroupement est repris sous une ligne sans contenu.
#### Grouper les parcours par métier de l'intervenant
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/JobWorkingAggregator.php-->
Ce regroupement permet de classer les indicateurs par métier de l'intervenant sur le parcours.
Par intervenant sur le parcours, sont pris en compte tous les utilisateurs qui ont réalisé une intervention: [voir chapitre correspondant](#sec:parcours-intervenant).
#### Grouper les parcours par métier du créateur
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/CreatorJobAggregator.php-->
Regroupe les parcours par métier du créateur.
Le métier du créateur est celui associé au créateur au moment de la création du parcours.
#### Grouper les parcours par métier du référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/UserJobAggregator.php-->
Regroupe les parcours par métier du référent.
Le métier du référent est celui associé au référent au moment où il est désigné référent de ce parcours.
#### Grouper les parcours par nombre dactions
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ByActionNumberAggregator.php-->
Regroupe les parcours par nombre d'actions associés au parcours.
#### Grouper les parcours par nombre déchange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/ByActivityNumberAggregator.php-->
Regroupe les parcours par nombre d'échangers associés au parcours.
#### Grouper les parcours par origine du parcours
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/OriginAggregator.php-->
Groupe les parcours par origine. L'origine est indiquée sur la page `Modifier le parcours`.
#### Grouper les parcours par problématiques sociales
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/SocialIssueAggregator.php-->
Groupe les parcours par problématique sociale.
**Relation un-à-plusieurs**: lorsqu'un parcours comporte plusieurs problématiques sociales, ce parcours est comptabilisé en regard de chaque problématique.
#### Grouper les parcours par référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ReferrerAggregator.php-->
Groupe les parcours par référent.
La date indiquée en paramètre permet de ne tenir compte que du référent valable à la date indiquée.
#### Grouper les parcours par service
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ScopeAggregator.php-->
Groupe les parcours par service.
**Relation un-à-plusieurs**: lorsqu'un parcours est associé à plusieurs services, il est comptabilisé en regard de chaque service coché.
#### Grouper les parcours par service de l'intervenant
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ScopeWorkingAggregator.php-->
Ce regroupement permet de classer les indicateurs par service des intervenants sur le parcours.
Par intervenant sur le parcours, sont pris en compte tous les utilisateurs qui ont réalisé une intervention: [voir chapitre correspondant](#sec:parcours-intervenant).
#### Grouper les parcours par service du référent
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/ReferrerScopeAggregator.php-->
Groupe les parcours par service du référent.
Le service du référent pris en compte est celui associé au référent au moment où ce dernier a été désigné comme référent sur le parcours.
#### Grouper les parcours par statut du parcours
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/StepAggregator.php-->
Groupe les parcours par statut du parcours.
Les différents statuts du parcours [sont décrit dans le chapitre correspondant](#sec:parcours-statut).
Le statut du parcours repris est celui qui est valable à la date indiquée en paramètre.
#### Grouper les parcours par type d'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/ByActivityTypeAggregator.php -->
Ce regroupement permet de classer les parcours par type d'échange reçu sur le parcours. Le regroupement est constitué de tous les parcours ayant au moins un échange du type qui forme le regroupement. Donc, dans l'export du nombre de parcours, cela crée une colonne avec les types d'échange et une colonne "nombre de parcours": un parcours est comptabilisé à chaque fois qu'il présente au moins un échange du type indiqué dans la colonne "type d'échange".
Il est possible d'indider des dates en paramètres: si elles sont remplies, seuls les échanges intervenus entre ces dates sont comptabilisés. Les parcours qui n'ont pas reçu d'échange entre ces deux dates sont alors regroupés dans une colonne vide.
Lorsqu'un parcours comporte plusieurs types d'échange, il est comptabilisé en regard de chaque type d'échange qu'il contient.
#### Grouper les parcours par urgence
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/EmergencyAggregator.php-->
Groupe les parcours selon qu'ils sont urgents, ou non.
#### Grouper les parcours par zone géographique
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/GeographicalUnitStatAggregator.php-->
Groupe les parcours par zone géographique.
La localisation de l'adresse du parcours doit être indiquée: il peut s'agir soit d'une adresse temporaire qu'une localisation auprès d'une adresse d'un usager.
Seules les adresses géolocalisées sont prises en compte. Les adresses sont géolocalisées lorsqu'elles sont choisies parmi les adresses de référence. Lorsque seul le code postal est choisi parmi les suggestions, alors l'adresse est géolocalisée à l'intérieur de la zone géographique du code postal, de manière aléatoire.
La date de prise en compte de l'adresse doit également être indiquée en paramètre. Il s'agira alors de l'adresse temporaire valable sur le parcours à la date indiquée, ou l'adresse de l'usager à la date indiquée (il faut également qu'il ait été désigné comme "localisant" le parcours à la date indiquée).
**Relation un-à-plusieurs**: Si plusieurs couches géographiques sont indiquées, alors un regroupement (et donc une nouvelle ligne de résultat) est créée pour chaque zone du niveau géographique indiqué. Cela veut dire que si plusieurs couches géographiques se superposent, l'usager sera comptabilisée dans chacune d'elle.
Exemple: si les deux couches "région" et "commune" sont cochées; les adresses sont localisées à la fois au niveau communal, et au niveau régional. DAns les résultats de l'export, chaque usager sera comptabilisé une première fois dans la couche "commune" et une autre fois dans la couche région.
::: {.info}
L'association entre les zones géographiques et les adresses est une opération couteuse, en termes informatique. Dès lors, cette association est calculée une fois par nuit.
En conséquence, l'association entre la zone géographique et les adresses du jour ne sera pas disponible.
:::
#### Grouper les parcours par évaluation
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/EvaluationAggregator.php-->
Groupe les parcours selon la présence de types d'évaluation au sein des actions du parcours.
**Relation un-à-plusieurs**: Si un parcours comporte plusieurs types d'évaluation, il est comptabilisé une fois en regard de chaque type d'évaluation. Si plusieurs types évaluations identiques sont associés au même parcours, le parcours n'est comptabilisé qu'une seule fois.
#### Grouper les parcours selon la nature du demandeur
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/AccompanyingCourseAggregators/RequestorAggregator.php-->
Regroupe les parcours selon le demandeur:
- soit il s'agit d'un usager concerné par le parcours;
- ou d'un usager non concerné par le parcours;
- ou d'un tiers;
- ou aucun demandeur n'est renseigné.

View File

@ -0,0 +1,18 @@
### Filtres et regroupements liés aux actions d'accompagnements
<!-- cette page est temporairement enlevée du résultat, l'ajouter dans build-pandoc.sh -->
#### Filtrer les actions par tiers traitant
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/AccompanyingCourseFilters/HandlingThirdPartyFilter.php-->
Filtre les actions selon le tiers traitant indiqué dans l'interface.
Seules les actions qui comportent le tiers sélectionné sont comptabilisés dans les résultats.
#### Grouper les actions par tiers traitant
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/SocialWorkAggregators/HandlingThirdPartyAggregator.php-->
Comptabilise les actions selon le tiers traitant indiqué dans l'interface.

View File

@ -0,0 +1,10 @@
### Regroupements liés aux évaluations
<!-- cette page est temporairement enlevée du résultat, l'ajouter dans build-pandoc.sh -->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByEndDateAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByMaxDateAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/ByStartDateAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/EvaluationTypeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/EvaluationAggregators/HavingEndDateAggregator.php-->

298
user/exports_activity.md Normal file
View File

@ -0,0 +1,298 @@
### Exports relatifs aux échanges
Les échanges peuvent être créés:
- dans un parcours;
- dans un dossier d'usager.
Les possibilités d'exports séparent les échanges créés dans un dossier d'usager de ceux créés dans un dossier de parcours.
#### Échanges liés à un parcours
- Nombre d'échanges
- Somme de la durée des échanges
- Somme de la durée de déplacement des échanges
- Moyenne de la durée des échanges
- Moyenne de la durée de déplacement des échanges
- Liste des échanges liés à un parcours
#### Échanges liés à un usager
- Nombre d'échanges
- Durée des échanges
- Liste des échanges
### Filtres liés aux échanges
#### Filtrer les échanges par action liée
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/BySocialActionFilter.php-->
Ce filtre n'apparait que dans les exports des échanges liés aux parcours d'accompagnement.
Ce filtre permet d'indiquer des types d'action d'accompagnement. Seuls les échanges qui sont associés à au moins une de ces actions d'accompagnement sont pris en compte.
#### Filtrer les échanges par créateur de l'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ByCreatorFilter.php-->
Ce filtre permet de filtrer les échanges par créateur de l'échange.
Il permet de sélectionner une liste d'utilisateurs.
Si un échange a été créé par un de ces utilisateurs, il est pris en compte.
#### Filtrer les échanges par date
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ActivityDateFilter.php-->
Ce filtre permet de filtrer les échanges par date: il permet d'indiquer deux dates: une date de début, et une date de fin. Seuls les échanges ayant eu lieu entre ces deux dates sont pris en compte.
#### Filtrer les échanges par envoyé / reçu
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/SentReceivedFilter.php-->
Ce filtre permet de filtrer les changes par le champ Envoyé/Reçu.
Ce champ n'est accessible qu'à certains types d'échange, en fonction de la configuration effectuée par des administrateurs fonctionnels.
#### Filtrer les échanges par localisation
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/LocationFilter.php-->
Ce filtre permet de filtrer les échanges par localisation.
Seuls les échanges qui ont été associé à cette localisation sont pris en compte.
#### Filtrer les échanges par métier d'au moins un utilisateur participant
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/UsersJobFilter.php-->
Ce filtre permet de filtrer les échanges: seuls les échanges dont un des utilisateurs participants est associé au métier sélectionné sont pris en compte.
Le métier doit être associé à l'utilisateur à la date de l'échange.
Le filtre prend en compte tous les utilisateurs ajoutés dans les "parties concernées" de l'échange.
L'échange est pris en compte dès qu'un utilisateur dans les "parties concernées" est associé à l'un des métiers demandés.
#### Filtrer les échanges par métier du créateur de l'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/CreatorJobFilter.php -->
Filtre les échanges par métier du créateur de l'échange.
Le métier doit être associé à l'utilisateur à la date de l'échange.
#### Filtrer les échanges par problématique liée
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/BySocialIssueFilter.php-->
Ce filtre n'apparait que dans les exports des échanges liés aux parcours d'accompagnement.
Ce filtre permet de filtrer les échanges par problématique liée.
Seuls les échanges associés à au moins une problématique liée sont pris en compte.
#### Filtrer les échanges par service du créateur de l'échange
Ce filtre permet de filtrer les échanges par service du créateur de l'échange.
Lorsqu'un utilisateur change de service au cours du temps, le service associé à l'utilisateur au moment de l'échange est pris en compte.
#### Filtrer les échanges par service d'au moins un utilisateur participant
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/UsersScopeFilter.php-->
Ce filtre permet de filtrer les échanges: seuls les échanges dont un des utilisateurs participants est associé au service sélectionné sont pris en compte.
Le service doit être associé à l'utilisateur à la date de l'échange.
Le filtre prend en compte tous les utilisateurs ajoutés dans les "parties concernées" de l'échange.
L'échange est pris en compte dès qu'un utilisateur dans les "parties concernées" est associé à l'un des service demandés.
#### Filtrer les échanges par sujet
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/PersonFilters/ActivityReasonFilter.php-->
Ce filtre permet de filtrer les échanges par sujet.
Seuls les échanges qui comportent au moins un des sujets choisis sont pris en compte.
Le sujet est en champ activé par la configuration de l'instance.
#### Filtrer les échanges par type
Ce filtre permet de filtrer les échanges par type. Un formulaire permet de sélectionner les types d'échanges à prendre en compte.
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ActivityTypeFilter.php-->
#### Filtrer les échanges par type de localisation
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php-->
Ce filtre permet de fitlrer les échanges associés à une localisation d'un certain type.
#### Filtrer les échanges par urgence
Ce filtre permet de filtrer les échanges par urgence.
L'urgence est un champ qui n'apparait qu'en fonction de la configuration de l'instance.
#### Filtrer les échanges par usager participant
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/PersonsFilter.php -->
Filtre les échanges sur base des usagers participants.
Un échange est comptabilisé à partir du moment où il compte un des usagers indiqué dans la configuration du filtre; autrement dit: les échanges qui comportent au moins un des usagers indiqués sont pris en compte. Il n'est donc pas nécessaire que l'échange comporte **tous** les usagers indiqués dans le filtre.
#### Filtrer les échanges par utilisateur participant
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ActivityUsersFilter.php-->
Ce filtre permet de filtrer les échanges par utilisateurs.
Seuls les échanges qui comportent au moins un de ces utilisateurs dans les "utilisateurs concernés" sont pris en compte. Autrement dit: il n'est donc pas nécessaire que l'échange soit associé à **tous** les utilisateurs.
#### Filtrer les échanges par utilisateur principal
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/ActivityUsersFilter.php-->
Ce filtre permet de filtrer les échanges par utilisateur principal.
Le champ "utilisateur principal" n'apparait que pour certains types d'échange, en fonction de la configuration de l'instance.
### Regroupements liés aux échanges
#### Grouper les échanges par action liée
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/BySocialActionAggregator.php -->
Groupe les échanges par action sociale liée à l'échange.
**Relation un-à-plusieurs**: Lorsqu'un échange est lié à plusieurs actions sociales, alors l'échange est comptabilisée une seule fois en regard de chaque type d'action.
#### Grouper les échanges par créateur de l'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/ByCreatorAggregator.php-->
Groupe les échanges par l'utilisateur ayant créé l'échange.
#### Grouper les échanges par date
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/DateAggregator.php-->
Groupe les échanges par date.
Les dates des échanges peuvent être retroupées par mois, année ou semaine. Dans ce dernier cas, la numérotation de la semaine est calculée en suivant la norme ISO 8601[^iso8601week]. Les regroupements par mois ou semaine sont préfixés par l'année correspondante.
[^iso8601week]: Voir <https://fr.wikipedia.org/wiki/Num%C3%A9rotation_ISO_des_semaines>
#### Grouper les échanges par envoyé / reçu
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/SentReceivedAggregator.php-->
Groupe les échanges selon le champ envoyé / reçu indiqué dans l'échange.
#### Grouper les échanges par localisation de l'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityLocationAggregator.php-->
Groupe les échanges par nom de la localisation de l'échange.
Les localisations qui possèdent le même nom sont regroupées ensemble.
#### Grouper les échanges par métier des utilisateurs participants
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityUsersJobAggregator.php-->
Groupe les échanges par métier des utilisateurs participants, ajoutés dans les "parties concernées" de l'échange.
Le métier pris en compte est celui associé à l'utilisateur à la date de l'échange.
**Relation un-à-plusieurs**: lorsque plusieurs utilisateurs participent à l'échange, l'échange est comptabilisé une seule fois par métier de chaque utilisateur. Si plusieurs utilisateurs participant comportent le même métier, l'échange n'est donc comptabilisé qu'une seule fois.
#### Grouper les échanges par métier du créateur de l'échange
Groupe les échanges par métier du créateur de l'échange.
Le métier pris en compte est celui associé à l'utilisateur à la date de l'échange.
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/CreatorScopeAggregator.php -->
#### Grouper les échanges par problématique liée
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/BySocialIssueAggregator.php-->
Groupe les échanges par problématique sociale associée à l'échange.
**Relation un-à-plusieurs**: lorsqu'un échange est associée à plusieurs problématiques, il est comptabilisé une fois en regard de chaque problématique.
#### Grouper les échanges par référent
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityUserAggregator.php-->
Groupe les échanges par le référent de l'échange (l'utilisateur principal).
#### Grouper les échanges par service du créateur de l'échange
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/CreatorScopeAggregator.php-->
Groupe les échange par service du créateur de l'échange.
Le service pris en compte est celui du créateur de l'échange à la date de l'échange.
#### Grouper les échanges par tiers impliqué
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/ByThirdpartyAggregator.php-->
Groupe les échanges par tiers impliqué dans les "usagers concernés" de l'échange.
**Relation un-à-plusieurs**: lorsque plusieurs tiers participent à l'échange, l'échange est comptabilisé une fois pour chaque tiers.
#### Grouper les échanges par type
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityTypeAggregator.php-->
Groupe les échanges par type d'échange.
#### Grouper les échanges par type de localisation
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ACPAggregators/LocationTypeAggregator.php-->
Groupe les échanges par type de localisation associé à l'échange.
#### Grouper les échanges par usager participant
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/PersonsAggregator.php -->
Groupe les échanges par usager participant à l'échange.
**Relation un-à-plusieurs**: Les échanges sont comptabilisés une fois en regard de chaque usager.
Ce regroupement a pour effet de ne pas faire apparaitre les échanges qui ne comptent pas de participants.
#### Grouper les échanges par utilisateurs participants
Groupe les échanges par utilisateurs participant.
**Relation un-à-plusieurs**: Les échanges sont comptabilisés une fois en regard de chaque utilisateur participant.
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityUsersAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/ActivityUsersScopeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Aggregator/PersonAggregators/ActivityReasonAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/AvgActivityDuration.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/AvgActivityVisitDuration.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/CountActivity.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/SumActivityDuration.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/SumActivityVisitDuration.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToPerson/CountActivity.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToPerson/ListActivity.php-->
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Export/LinkedToPerson/StatActivityDuration.php-->

View File

@ -0,0 +1,17 @@
### Filtres et regroupements liés aux activités annexes
<!-- cette page est temporairement enlevée du résultat, l'ajouter dans build-pandoc.sh -->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Aggregator/ByActivityTypeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Aggregator/ByUserJobAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Aggregator/ByUserScopeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Export/AvgAsideActivityDuration.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Export/CountAsideActivity.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Export/ListAsideActivity.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Export/SumAsideActivityDuration.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByActivityTypeFilter.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByDateFilter.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserFilter.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserJobFilter.php-->
<!-- PHPFILE: src/Bundle/ChillAsideActivityBundle/src/Export/Filter/ByUserScopeFilter.php-->

21
user/exports_calendar.md Normal file
View File

@ -0,0 +1,21 @@
### Regroupements liés aux rendez-vous
<!-- cette page est temporairement enlevée du résultat, l'ajouter dans build-pandoc.sh -->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/AgentAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/CancelReasonAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/JobAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/LocationAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/LocationTypeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/MonthYearAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/ScopeAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Aggregator/UrgencyAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Export/CountCalendars.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Export/StatCalendarAvgDuration.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Export/StatCalendarSumDuration.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Filter/AgentFilter.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Filter/BetweenDatesFilter.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Filter/CalendarRangeFilter.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Filter/JobFilter.php-->
<!-- PHPFILE: src/Bundle/ChillCalendarBundle/Export/Filter/ScopeFilter.php-->

View File

@ -0,0 +1,7 @@
### Regroupements liés aux ménages
<!-- cette page est temporairement enlevée du résultat, l'ajouter dans build-pandoc.sh -->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/HouseholdAggregators/ChildrenNumberAggregator.php-->
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/HouseholdAggregators/CompositionAggregator.php-->

210
user/exports_person.md Normal file
View File

@ -0,0 +1,210 @@
### Exports liés aux usagers
- nombre d'usagers;
- nombre d'usagers concernés par un parcours;
- liste des usagers;
- liste des usagers ayant un parcours d'accompagnement;
- liste des usagers concernés avec le détail de chaque parcours;
- liste des doublons.
### Filtres liés aux usagers
#### Filtrer les usagers ayant été associés à un échange au cours de la période
<!-- PHPFILE: src/Bundle/ChillActivityBundle/Export/Filter/PersonFilters/PersonHavingActivityBetweenDateFilter.php-->
Ce filtre permet de filtrer les usagers: seuls les usagers ayant eu un échange au cours de la période indiquée sont pris en compte.
De plus, si la liste des sujets d'échanges de ce filtre comporte au moins un élément, ce sujet doit avoir été associé à l'échange. Si la liste ne comporte aucun sujet coché, alors cette deuxième condition n'est pas ajoutée.
#### Filtrer les usagers par comparaison avec l'adresse de référence
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/AddressRefStatusFilter.php-->
Ce filtre permet de détecter les usagers dont l'adresse n'est plus synchronisée avec l'adresse de référence.
Chill maintient à jour une liste d'adresses de référence, qui sont proposées lors de la saisie d'une adresse. Cette liste est régulièrement mise à jour, et cela peut amener à ce que des adresses de référence soient changées: re-numérotation de la rue, modification du code postal, etc.
Ces modifications apparaissent dans l'interface, et les utilisateurs peuvent choisir d'appliquer la modification (et donc la nouvelle adresse de référence) ou de conserver l'adresse actuelle sans appliquer la modification.
Ce filtre permet de filtrer les usagers en comparant l'adresse de leur ménage et l'adresse de référence qui a été utilisée lors de la création. Seuls les usagers dont l'adresse:
- soit diffère de l'adresse de référence utilisée lors de la création;
- soit diffère de l'adresse de référence utilisée lors de la création, mais dont l'usager a choisi de conserver la forme précédente;
- soit est identique à l'adresse de référence utilisée lors de la création (ce qui est le cas de la plupart des adresses).
#### Filtrer les usagers par composition de ménage
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/ByHouseholdCompositionFilter.php-->
Ce filtre permet de filtrer les usagers par composition de ménage.
L'historique de l'appartenance d'un usager à un ménage est enregistrée, de même que l'historique des compositions de ménage. Une date de calcul est introduite: elle permet de calculer la composition du ménage à la date donnée.
Seuls les usagers qui appartiennent à un ménage dont la composition est indiquée, et que la composition est également valable à la date indiquée pour le ménage, sont pris en compte.
#### Filtrer les usagers par date de décès
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/DeathdateFilter.php-->
Ce filtre permet de filtrer les usagers en fonction de leur date de décès.
#### Filtrer les usagers par date de naissance
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/BirthdateFilter.php-->
Ce filtre permet de filtrer les usagers en fonction de leur date de naissance.
#### Filtrer les usagers par genre
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GenderFilter.php-->
Ce filtre permet de filtrer les usagers par genre.
#### Filtrer les usagers par nationalité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/NationalityFilter.php-->
Ce filtre permet de filtrer les usagers par nationalité.
#### Filtrer les usagers par zone géographique (sur base de l'adresse)
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GeographicalUnitFilter.php-->
Ce filtre permet de filtrer les usagers sur base de zones géographiques.
Seules les adresses géolocalisées sont prises en compte. Les adresses sont géolocalisées lorsqu'elles sont choisies parmi les adresses de référence. Lorsque seul le code postal est choisi parmi les suggestions, alors l'adresse est géolocalisée à l'intérieur de la zone géographique du code postal, de manière aléatoire.
Une date de calcul permet de ne choisir que les adresses valables à la date donnée.
::: {.info}
L'association entre les zones géographiques et les adresses est une opération couteuse, en termes informatique. Dès lors, cette association est calculée une fois par nuit.
En conséquence, l'association entre la zone géographique et les adresses du jour ne sera pas disponible.
:::
#### Filtrer les usagers par âge
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/AgeFilter.php-->
Ce filtre permet de filtrer les usagers sur base de leur âge.
Deux paramètres permettent d'indiquer un âge minimum et un âge maximum. Une date de calcul de l'âge est également disponible en paramètre.
Seuls les usagers dont l'âge est compris entre l'âge minimum et l'âge maximum, à la date de calcul indiqué en paramètre, seront pris en compte.
#### Filtrer les usagers par état matrimonial
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/MaritalStatusFilter.php-->
Seuls les usagers associés à l'état matrimonial indiqué en paramètre seront pris en compte.
#### Filtrer les usagers qui ont une addresse de résidence chez un autre usager
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/ResidentialAddressAtUserFilter.php-->
Seuls les usagers qui ont une adresse de résidence auprès d'une autre usagers sont pris en compte. Cette adresse de résidence doit être valable à la date indiquée en paramètre.
#### Filtrer les usagers qui ont une addresse de résidence chez un tiers
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/ResidentialAddressAtThirdpartyFilter.php-->
Seuls les usagers qui ont une adresse de résidence auprès d'un tiers sont pris en compte. Cette adresse de résidence doit être valable à la date indiquée en paramètre, et le tiers doit être associée à au moins une catégorie de tiers également indiqué en paramètre.
#### Filtrer les usagers qui sont décédés ou vivants à une certaine date
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/DeadOrAliveFilter.php-->
Seuls les usagers décédés ou vivant à la date donnée sont pris en compte.
La date de naissance et la date de décès de la fiche usager sont pris en compte.
#### Filtrer les usagers sans composition de ménage (ni ménage)
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/WithoutHouseholdComposition.php-->
Seuls les usagers sans composition de ménage sont pris en compte par ce filtre. Les usagers qui n'ont pas de ménage sont également repris.
La date de calcul permet de choisir le ménage à la date indiquée en paramètre.
### Regroupements liés aux usagers
#### Grouper les usagers par composition familiale
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/ByHouseholdCompositionAggregator.php-->
Ce regroupement permet de grouper les usagers par composition familiale.
Une date de calcul est indiquée en paramètre: la composition familiale est indiquée à la date donnée.
#### Grouper les usagers par genre
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/GenderAggregator.php-->
Ce regroupement permet de grouper les usagers par genre.
#### Grouper les usagers par nationalité
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/NationalityAggregator.php-->
Ce regroupement permet de grouper les usagers par nationalité.
#### Grouper les usagers par pays de naissance
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/CountryOfBirthAggregator.php-->
Ce regroupement permet de grouper les usagers par pays de naissance.
#### Grouper les usagers par position dans le ménage
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/HouseholdPositionAggregator.php-->
Ce regroupement permet de grouper les usagers par position dans le ménage.
Une date de calcul est indiquée en paramètre: la position valable à la date indiquée sera utilisée.
#### Grouper les usagers par centre
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/CenterAggregator.php-->
Ce regroupement demande une date en paramètre.
Ce regroupement permet de classer les indicateurs par centre de l'usager. Le centre pouvant évoluer au cours du temps, il est calculé au moment de la date indiquée en paramètre.
Il peut arriver que les usagers concernés par un parcours, ou les usagers associés à un échange ou un rendez-vous appartiennent à différents centres. Lorsque c'est le cas, le parcours ou l'échange sera comptabilisé une fois dans chaque centre.
#### Grouper les usagers par zone géographique (sur base de l'adresse)
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/GeographicalUnitAggregator.php-->
Ce regroupement permet de grouper les usagers par zone géographique.
Seules les adresses géolocalisées sont prises en compte. Les adresses sont géolocalisées lorsqu'elles sont choisies parmi les adresses de référence. Lorsque seul le code postal est choisi parmi les suggestions, alors l'adresse est géolocalisée à l'intérieur de la zone géographique du code postal, de manière aléatoire.
L'adresse utilisée est celle valable à la date indiquée en paramètre.
**Relation un-à-plusieurs**: Si plusieurs couches géographiques sont indiquées, alors un regroupement (et donc une nouvelle ligne de résultat) est créée pour chaque zone du niveau géographique indiqué. Cela veut dire que si plusieurs couches géographiques se superposent, l'usager sera comptabilisée dans chacune d'elle.
Exemple: si les deux couches "région" et "commune" sont cochées; les adresses sont localisées à la fois au niveau communal, et au niveau régional. DAns les résultats de l'export, chaque usager sera comptabilisé une première fois dans la couche "commune" et une autre fois dans la couche région.
::: {.info}
L'association entre les zones géographiques et les adresses est une opération couteuse, en termes informatique. Dès lors, cette association est calculée une fois par nuit.
En conséquence, l'association entre la zone géographique et les adresses du jour ne sera pas disponible.
:::
#### Grouper les usagers par âge
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/AgeAggregator.php-->
Regroupe les usagers par âge.
Une date de calcul est indiquée en paramètre: l'âge des usagers est calculé par rapport à la date indiquée.
#### Grouper les usagers par état matrimonial
<!-- PHPFILE: src/Bundle/ChillPersonBundle/Export/Aggregator/PersonAggregators/MaritalStatusAggregator.php-->
Regroupe les usagers par état matrimonial.

BIN
user/img/address_details_modal.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
user/img/address_inline_with_button.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
user/img/address_inline_with_button_and_warning.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
user/img/export_select_saved_exports.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,4 +1,3 @@
\newpage
# Qu'est-ce que Chill?

BIN
user/map/map.inkscape.svg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -3,9 +3,13 @@ title: Manuel utilisateur de Chill
lang: fr-BE
toc: true
page: a4
book: true
titlepage: true,
# specitfic to template eisvoger
titlepage: true
toc-own-page: true
# cause the numbering to be 0.x for every chapter
book: false
float-placement-figure: H
#logo: "img/logo-chill-outil-accompagnement.svg"
header-includes: |

View File

@ -3,7 +3,9 @@
# Notifications
<!-- fr/notification/inbox -->
Les notifications sont des messages envoyés par un utilisateur à un ou plusieurs autres. Les notifications ont pour but d'échanger rapidement des informations sur des dossiers sociaux en cours entre travailleurs sociaux. Par exemple, les notifications permettent d'informer un travailleur social à propos d'un parcours.
Les notifications sont des messages envoyés par un utilisateur à un ou plusieurs autres utilisateurs. Les notifications ont pour but d'échanger rapidement des informations sur des dossiers sociaux en cours entre travailleurs sociaux. Par exemple, les notifications permettent d'informer un travailleur social à propos d'un parcours.
Chill peut également envoyer des notifications systèmes lors de certains événements.
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é.
@ -17,16 +19,13 @@ Des notifications peuvent être envoyées à partir de plusieurs endroits du log
Il est possible d'envoyer une notification:
- de la page résumé d'un parcours
- d'une activité/échange
- à propos d'un parcours, de la page résumé d'un parcours
- à propos d'une activité/échange
- à propos d'une action d'accompagnement
- à propos d'un document dans une action d'accompagnement
Les notifications envoyées, par exemple, à partir d'un parcours, sont listées dans le résumé du parcours.
<!-- TODO: Y a t il d'autres endroits où sont utilisées les notifications? -->
Il y a en outre des notifications automatiquement envoyées lors de certaines manipulations.
![Créer une notification](./img/notification_parcours.png)
## Discuter dans une notification
@ -38,5 +37,9 @@ Lorsqu'une notification est reçue, il est possible d'engager une discussion ave
Dans la liste des notifications, lorsqu'on clique sur une notification, on peut déplier le contenu de la notification et accéder à la discussion avec l'icône "Voir le fil de commentaire associé".
## Notification système
Il y a en outre des notifications automatiquement envoyées lors de certaines manipulations.
Pour ces notifications, il n'est pas possible d'entamer une conversation.

39
user/nouveautes.md Normal file
View File

@ -0,0 +1,39 @@
```{=latex}
\cleardoublepage
```
# Nouveautés
## Mai 2023
### Statut "hors file active" et "pré-archivé" dans les parcours
Jusqu'à maintenant, on avait des parcours avec les statuts "brouillon", "en file active" et "cloturé".
Deux autres statuts sont ajoutés:
- "hors file active"
- pré-archive
Cela correspondra à des parcours ouverts et qui n'ont pas eu d'activité depuis:
- six mois pour "hors file active";
- deux ans pour "pré-archive"
Pour ces parcours "hors file active" et "pré-archive", il est possible d'ajouter des échanges, des actions, des rendez-vous, etc. Et de clôturer ces parcours. Lorsque cela est le cas, le parcours repassera, dans les heures qui suivent, en statut "en file active".
Le passage vers ces deux statuts est effectué automatiquement, sans intervention de l'utilisateur. Sont pris en compte:
- la date des échanges;
- la date de début, de fin, des actions d'accompagnements;
- la date de début, de fin des évaluations
- l'ajout d'une évaluation, d'un document dans une évaluation, la mise à jour d'un document ou la mise à jour d'un commentaire dans une évaluation;
- et, évidemment, la date d'ouverture du parcours.
Les rendez-vous ne sont pas pris en compte.
Pour les parcours existants qui étaient inactifs de puis plus de six mois ou deux ans, un passage automatique à ce nouveau statut est prévu: le nouveau statut sera indiqué six mois ou deux ans après la dernière activité prise en compte.
### Notification depuis des actions et des documents dans les évaluations
Il est maintenant possible d'envoyer une notification à propos d'une action d'accompagnement ou d'un document dans une évaluation.

View File

@ -9,6 +9,15 @@ Vous pouvez le considérer comme le troisième grand module de l'application. Co
![Bandeau d'un parcours d'accompagnement](./img/banner_course.png)
::: {.note}
Dans le menu utilisateur, vous trouvez une entrée de menu pour vous diriger vers:
* une page de liste de **tous** les parcours dont vous êtes le référent;
* une page de liste de toutes vos parcours **BROUILLON** (ceux que vous avez créés, mais pas encore confirmés).
:::
## Résumé du parcours
![Résumé du parcours](./img/parcours_dashboard.png)
@ -19,24 +28,50 @@ La page de résumé rassemble les informations les plus importantes et les derni
En bref, il s'agit du tableau de bord du parcours à partir duquel vous pouvez naviguer vers des sections spécifiques.
## Les différents états d'un parcours
## Les différents statuts d'un parcours { #sec:parcours-statut }
Il est important de distinguer trois états principaux pour un parcours. Un badge se trouve en haut à droite du bandeau ou de l'élément de liste pour identifier cet état.
Il est important de distinguer les différents statuts pour un parcours. Un badge se trouve en haut à droite du bandeau ou de l'élément de liste pour identifier ce statut:
* **BROUILLON** : le formulaire du parcours est en cours de rédaction, en attente de confirmation.
Le parcours n'est visible que par son créateur pendant cette période (via le menu utilisateur `Mes parcours brouillon`). Il reste disponible pendant 15 jours à cet état. Ensuite, il est automatiquement supprimé.
* **EN FILE ACTIVE** : le formulaire de création du parcours a été complété, et le parcours est confirmé.
Il est, dès lors, visible par tous les utilisateurs. Des échanges, des actions d'accompagnements, des documents et des tâches peuvent être ajoutés.
* **HORS FILE ACTIVE** : le parcours n'a plus reçu d'interventions depuis plus de six mois.
Il est toujours possible d'ajouter de nouvelles actions ou échanges.
* **PRÉ-ARCHIVÉ** : le parcours n'a plus reçu d'intervention depuis plus de deux ans.
Il est toujours possible d'ajouter de nouvelles actions ou échanges.
* **BROUILLON** : le formulaire du parcours comporte des informations manquantes et ne peut donc pas être confirmé (couleur du badge : gris).
* **EN FILE ACTIVE** : toutes les informations requises ont été fournies et d'autres actions, activités, etc peuvent être ajoutées (couleur du badge : bleu foncé).
* **CLÔTURÉ** : le parcours d'accompagnement social est arrivée à son terme, la raison peut être définie (couleur du badge : rouge).
::: { .note }
### Les événements pris en compte pour modifier le statut d'un parcours { #sec:parcours-statut-intervention }
Un parcours "brouillon" n'est visible que par l'auteur du parcours.
Le passage vers les statuts **HORS FILE ACTIVE** et **PRÉ-ARCHIVÉ** est effectué automatiquement, sans intervention de l'utilisateur. Pour calculer "l'inactivité", le logiciel prend en compte la date de différentes intervention dans le parcours. Si aucune de ces interventions n'a eu lieu, Chill change automatiquement le statut du parcours. Sont pris en compte:
- la date des échanges;
- la date de début, de fin, des actions d'accompagnements;
- l'association d'un référent à une action d'accompagnement;
- la date de début, de fin des évaluations;
- l'ajout d'une évaluation, d'un document dans une évaluation, la mise à jour d'un document ou la mise à jour d'un commentaire dans une évaluation;
- et, évidemment, la date d'ouverture du parcours.
:::
Notez que, lorsqu'un parcours reçoit des nouvelles actions ou échanges, un parcours redevient **EN FILE ACTIVE**. Ce changement de statut est effectué automatiquement également, mais avec un délai de quelques heures.
Dans le menu utilisateur, vous trouvez une entrée de menu pour vous diriger vers:
### Intervenants sur un parcours { #sec:parcours-intervenant }
Ces interventions permettent également de définir des intervenants sur un parcours: ce sont les auteur·e·s d'une intervention.
Il s'agit donc des utilisateurs qui:
- sont concernés par un échange;
- sont agents traitants d'une action;
* une page de liste de **tous** les parcours dont vous êtes le référent;
* une page de liste de toutes vos parcours **BROUILLON** (ceux que vous avez créés, mais pas encore confirmés).
## Parcours confidentiel, intensité, et caractère urgent d'un parcours