From b8bb0b1209cc63f9d41fcf2e18be72bcc8391036 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Tue, 9 Aug 2022 15:11:01 +0200 Subject: [PATCH 1/3] exports: improve translations --- .../translations/messages.fr.yml | 6 +++--- .../translations/messages.nl.yaml | 6 +++--- .../translations/messages.fr.yml | 20 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Bundle/ChillActivityBundle/translations/messages.fr.yml b/src/Bundle/ChillActivityBundle/translations/messages.fr.yml index 4296e6d76..1c9a37f99 100644 --- a/src/Bundle/ChillActivityBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillActivityBundle/translations/messages.fr.yml @@ -240,9 +240,9 @@ By reason: Par sujet By category of reason: Par catégorie de sujet Reason's level: Niveau du sujet Group by reasons: Sujet d'activité -Aggregate by activity user: Aggréger par utilisateur lié à l'activité -Aggregate by activity type: Aggréger par type d'activité -Aggregate by activity reason: Aggréger par sujet de l'activité +Aggregate by activity user: Grouper par utilisateur lié à l'activité +Aggregate by activity type: Grouper par type d'activité +Aggregate by activity reason: Grouper par sujet de l'activité Last activities: Les dernières activités diff --git a/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml b/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml index 8d7cc293a..d24eacf0a 100644 --- a/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml +++ b/src/Bundle/ChillActivityBundle/translations/messages.nl.yaml @@ -217,9 +217,9 @@ By reason: Par sujet By category of reason: Par catégorie de sujet Reason's level: Niveau du sujet Group by reasons: Sujet d'activité -Aggregate by activity user: Aggréger par utilisateur lié à l'activité -Aggregate by activity type: Aggréger par type d'activité -Aggregate by activity reason: Aggréger par sujet de l'activité +Aggregate by activity user: Grouper par utilisateur lié à l'activité +Aggregate by activity type: Grouper par type d'activité +Aggregate by activity reason: Grouper par sujet de l'activité Last activities: Les dernières activités diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index 3d30b5c9f..9b0d72fbf 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -386,11 +386,11 @@ The minimum age should be less than the maximum age.: L'âge minimum doit être Family composition: Composition familiale Family composition at this time: Composition familiale à cette date. -Filtered by entrusted child status: Uniquement les personnes qui sont "enfant confié" -Filter by entrusted child status: Uniquement les personnes qui sont "enfant confié" +Filter by entrusted child status: Filtrer les usagers qui sont "enfant confié" +Filtered by entrusted child status: Uniquement les usagers qui sont "enfant confié" -Filtered by nomadic status: Uniquement les personnes qui sont "gens de voyage" -Filter by nomadic status: Uniquement les personnes qui sont "gens de voyage" +Filter by nomadic status: Filtrer les usagers qui sont "gens de voyage" +Filtered by nomadic status: Uniquement les usagers qui sont "gens de voyage" Filtered by person's who have a residential address located at another user: Uniquement les usagers qui ont une addresse de résidence chez un autre usager @@ -512,19 +512,19 @@ Date to: Date de fin "Filtered by opening dates: between %datefrom% and %dateto%": "Filtrer les parcours ouverts entre deux dates: entre le %datefrom% et le %dateto%" ## aggregators -Group people by nationality: Aggréger les personnes par nationalités +Group people by nationality: Grouper les personnes par nationalités Group by level: Grouper par niveau Group by continents: Grouper par continent Group by country: Grouper par pays -Group people by gender: Aggréger les personnes par genre -Group people by their professional situation: Aggréger les personnes par situation professionelle -Group people by marital status: Aggréger les personnes par état matrimonial +Group people by gender: Grouper les personnes par genre +Group people by their professional situation: Grouper les personnes par situation professionelle +Group people by marital status: Grouper les personnes par état matrimonial -Aggregate by age: Aggréger par âge +Aggregate by age: Grouper par âge Calculate age in relation to this date: Calculer l'âge par rapport à cette date -Group people by country of birth: Aggréger les personnes par pays de naissance +Group people by country of birth: Grouper les personnes par pays de naissance Similar persons: Personnes similaires crud: From 72a5a6cd2704be839062577782e242447d470206 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Tue, 9 Aug 2022 15:15:27 +0200 Subject: [PATCH 2/3] hop --- .../Export/CountActivityLinkedToACP.php | 6 +++++- .../Export/Export/StatActivityDuration.php | 7 ++++++- .../config/services/export.yaml | 19 +++++++++++-------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Bundle/ChillActivityBundle/Export/Export/CountActivityLinkedToACP.php b/src/Bundle/ChillActivityBundle/Export/Export/CountActivityLinkedToACP.php index 02a358156..c182145a8 100644 --- a/src/Bundle/ChillActivityBundle/Export/Export/CountActivityLinkedToACP.php +++ b/src/Bundle/ChillActivityBundle/Export/Export/CountActivityLinkedToACP.php @@ -99,7 +99,11 @@ class CountActivityLinkedToACP implements ExportInterface, GroupedExportInterfac public function supportsModifiers() { - return [ExportDeclarations::PERSON_TYPE, Declarations::ACTIVITY, ExportDeclarations::ACP_SHARED]; + return [ + ExportDeclarations::PERSON_TYPE, + Declarations::ACTIVITY, + ExportDeclarations::ACP_SHARED + ]; } public function getGroup(): string diff --git a/src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php b/src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php index 5493046c2..5793c2b06 100644 --- a/src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php +++ b/src/Bundle/ChillActivityBundle/Export/Export/StatActivityDuration.php @@ -17,6 +17,8 @@ use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Export\ExportInterface; use Chill\MainBundle\Export\FormatterInterface; use Chill\MainBundle\Export\GroupedExportInterface; +use Chill\PersonBundle\Export\Declarations as Person_Declarations; +use Chill\ActivityBundle\Export\Declarations as Activity_Declarations; use Doctrine\ORM\Query; use LogicException; use Symfony\Component\Form\FormBuilderInterface; @@ -127,7 +129,10 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface public function supportsModifiers() { - return ['person', 'activity']; + return [ + Person_Declarations::PERSON_TYPE, + Activity_Declarations::ACTIVITY + ]; } public function getGroup(): string diff --git a/src/Bundle/ChillActivityBundle/config/services/export.yaml b/src/Bundle/ChillActivityBundle/config/services/export.yaml index daef12fed..366c9c1b1 100644 --- a/src/Bundle/ChillActivityBundle/config/services/export.yaml +++ b/src/Bundle/ChillActivityBundle/config/services/export.yaml @@ -3,6 +3,7 @@ services: autowire: true autoconfigure: true + ## Indicators chill.activity.export.count_activity: class: Chill\ActivityBundle\Export\Export\CountActivity tags: @@ -13,16 +14,17 @@ services: tags: - { name: chill.export, alias: 'count_activity_linked_to_acp' } - # chill.activity.export.sum_activity_duration: - # class: Chill\ActivityBundle\Export\Export\StatActivityDuration - # tags: - # - { name: chill.export, alias: 'sum_activity_duration' } + chill.activity.export.sum_activity_duration: + class: Chill\ActivityBundle\Export\Export\StatActivityDuration + tags: + - { name: chill.export, alias: 'sum_activity_duration' } - # chill.activity.export.list_activity: - # class: Chill\ActivityBundle\Export\Export\ListActivity - # tags: - # - { name: chill.export, alias: 'list_activity' } + chill.activity.export.list_activity: + class: Chill\ActivityBundle\Export\Export\ListActivity + tags: + - { name: chill.export, alias: 'list_activity' } + ## Filters chill.activity.export.reason_filter: class: Chill\ActivityBundle\Export\Filter\ActivityReasonFilter tags: @@ -45,6 +47,7 @@ services: name: chill.export_filter alias: 'activity_person_having_ac_bw_date_filter' + ## Aggregators chill.activity.export.reason_aggregator: class: Chill\ActivityBundle\Export\Aggregator\ActivityReasonAggregator tags: From 93d0fbead509cddec7e7a0f524a705780c903588 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Tue, 9 Aug 2022 16:06:32 +0200 Subject: [PATCH 3/3] exports: create new indicator to count evaluations --- .../ChillPersonExtension.php | 1 + .../ChillPersonBundle/Export/Declarations.php | 6 +- .../Export/Export/CountEvaluation.php | 135 ++++++++++++++++++ .../Export/Export/CountPerson.php | 6 +- .../config/services/exports_evaluation.yaml | 13 ++ .../translations/messages.fr.yml | 4 + 6 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Export/Export/CountEvaluation.php create mode 100644 src/Bundle/ChillPersonBundle/config/services/exports_evaluation.yaml diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php index 5818ef2ba..bf73b4f81 100644 --- a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php +++ b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php @@ -100,6 +100,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac } $loader->load('services/exports_accompanying_course.yaml'); $loader->load('services/exports_social_actions.yaml'); + $loader->load('services/exports_evaluation.yaml'); } /** diff --git a/src/Bundle/ChillPersonBundle/Export/Declarations.php b/src/Bundle/ChillPersonBundle/Export/Declarations.php index 72d702aa2..5a88d988b 100644 --- a/src/Bundle/ChillPersonBundle/Export/Declarations.php +++ b/src/Bundle/ChillPersonBundle/Export/Declarations.php @@ -22,7 +22,9 @@ abstract class Declarations public const ACP_TYPE = 'accompanying_period'; - public const SOCIAL_WORK_ACTION_TYPE = 'social_actions'; - public const ACP_SHARED = 'accompanying_period_shared'; + + public const SOCIAL_WORK_ACTION_TYPE = 'social_actions'; + + public const EVAL_TYPE = 'evaluation'; } diff --git a/src/Bundle/ChillPersonBundle/Export/Export/CountEvaluation.php b/src/Bundle/ChillPersonBundle/Export/Export/CountEvaluation.php new file mode 100644 index 000000000..985a69df6 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Export/Export/CountEvaluation.php @@ -0,0 +1,135 @@ +evaluationRepository = $em->getRepository(Evaluation::class); + } + + /** + * @inheritDoc + */ + public function buildForm(FormBuilderInterface $builder) + { + // TODO: Implement buildForm() method. + } + + /** + * @inheritDoc + */ + public function getTitle(): string + { + return 'Count evaluations'; + } + + /** + * @inheritDoc + */ + public function getAllowedFormattersTypes(): array + { + return [FormatterInterface::TYPE_TABULAR]; + } + + /** + * @inheritDoc + */ + public function getDescription(): string + { + return 'Count evaluation by various parameters.'; + } + + /** + * @inheritDoc + */ + public function getLabels($key, array $values, $data) + { + if ('export_result' !== $key) { + throw new LogicException("the key {$key} is not used by this export"); + } + + $labels = array_combine($values, $values); + $labels['_header'] = $this->getTitle(); + + return static function ($value) use ($labels) { + return $labels[$value]; + }; + } + + /** + * @inheritDoc + */ + public function getQueryKeys($data): array + { + return ['export_result']; + } + + /** + * @inheritDoc + */ + public function getResult($qb, $data) + { + return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR); + } + + /** + * @inheritDoc + */ + public function getType(): string + { + return Declarations::EVAL_TYPE; + } + + /** + * @inheritDoc + */ + public function initiateQuery(array $requiredModifiers, array $acl, array $data = []) + { + $qb = $this->evaluationRepository->createQueryBuilder('eval'); + + $qb->select('COUNT(eval.id) AS export_result'); + + return $qb; + } + + /** + * @inheritDoc + */ + public function requiredRole() + { + return new Role(AccompanyingPeriodVoter::STATS); + } + + /** + * @inheritDoc + */ + public function supportsModifiers(): array + { + return [ + Declarations::EVAL_TYPE, + ]; + } + + public function getGroup(): string + { + return 'Exports of evaluations'; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Export/Export/CountPerson.php b/src/Bundle/ChillPersonBundle/Export/Export/CountPerson.php index 96f669524..a2f3842e7 100644 --- a/src/Bundle/ChillPersonBundle/Export/Export/CountPerson.php +++ b/src/Bundle/ChillPersonBundle/Export/Export/CountPerson.php @@ -111,7 +111,11 @@ class CountPerson implements ExportInterface, GroupedExportInterface public function supportsModifiers() { - return [Declarations::PERSON_TYPE, Declarations::PERSON_IMPLIED_IN, Declarations::ACP_SHARED]; + return [ + Declarations::PERSON_TYPE, + Declarations::PERSON_IMPLIED_IN, + Declarations::ACP_SHARED + ]; } public function getGroup(): string diff --git a/src/Bundle/ChillPersonBundle/config/services/exports_evaluation.yaml b/src/Bundle/ChillPersonBundle/config/services/exports_evaluation.yaml new file mode 100644 index 000000000..03cd37ee3 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/config/services/exports_evaluation.yaml @@ -0,0 +1,13 @@ +services: + + ## Indicators + chill.person.export.count_evaluation: + class: Chill\PersonBundle\Export\Export\CountEvaluation + autowire: true + autoconfigure: true + tags: + - { name: chill.export, alias: count_evaluation } + + ## Filters + ## Aggregators + \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml index 9b0d72fbf..750bbf0ba 100644 --- a/src/Bundle/ChillPersonBundle/translations/messages.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/messages.fr.yml @@ -350,6 +350,10 @@ Exports of social work actions: Exports des actions d'accompangement Count social work actions: Nombre d'actions d'accompagnement Count social work actions by various parameters: Compte le nombre d'actions d'accompagnement en fonction de différents filtres. +Exports of evaluations: Exports des évaluations +Count evaluations: Nombre d'évaluations +Count evaluation by various parameters.: Compte le nombre d'évaluations selon différents filtres. + ## filters Filter by person gender: Filtrer par genre de la personne Accepted genders: Genres acceptés