exports: create new activity linked to acp exports indicators + title/descr/groups translations

This commit is contained in:
Mathieu Jaumotte 2022-08-17 11:44:15 +02:00
parent 57d00df460
commit d9b668e614
10 changed files with 372 additions and 25 deletions

View File

@ -0,0 +1,79 @@
<?php
namespace Chill\ActivityBundle\Export\Export\LinkedToACP;
use Chill\ActivityBundle\Export\Declarations;
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
use Closure;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Security\Core\Role\Role;
class AvgActivityDuration implements ExportInterface, GroupedExportInterface
{
public function buildForm(FormBuilderInterface $builder)
{
// TODO: Implement buildForm() method.
}
public function getTitle(): string
{
return 'Average activity linked to an accompanying period duration';
}
public function getAllowedFormattersTypes(): array
{
return [FormatterInterface::TYPE_TABULAR];
}
public function getDescription(): string
{
return 'Average activities linked to an accompanying period duration by various parameters.';
}
public function getLabels($key, array $values, $data)
{
// TODO: Implement getLabels() method.
}
public function getQueryKeys($data): array
{
return ['export_avg_activity_duration'];
}
public function getResult($qb, $data)
{
return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR);
}
public function getType(): string
{
return Declarations::ACTIVITY;
}
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{
// TODO: Implement initiateQuery() method.
}
public function requiredRole(): Role
{
return new Role(ActivityStatsVoter::STATS);
}
public function supportsModifiers(): array
{
return [
Declarations::ACTIVITY,
//PersonDeclarations::ACP_TYPE,
];
}
public function getGroup(): string
{
return 'Exports of activities linked to an accompanying period';
}
}

View File

@ -0,0 +1,79 @@
<?php
namespace Chill\ActivityBundle\Export\Export\LinkedToACP;
use Chill\ActivityBundle\Export\Declarations;
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
use Closure;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Security\Core\Role\Role;
class AvgActivityVisitDuration implements ExportInterface, GroupedExportInterface
{
public function buildForm(FormBuilderInterface $builder)
{
// TODO: Implement buildForm() method.
}
public function getTitle(): string
{
return 'Average activity linked to an accompanying period visit duration';
}
public function getAllowedFormattersTypes(): array
{
return [FormatterInterface::TYPE_TABULAR];
}
public function getDescription(): string
{
return 'Average activities linked to an accompanying period visit duration by various parameters.';
}
public function getLabels($key, array $values, $data)
{
// TODO: Implement getLabels() method.
}
public function getQueryKeys($data): array
{
return ['export_avg_activity_visit_duration'];
}
public function getResult($qb, $data)
{
return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR);
}
public function getType(): string
{
return Declarations::ACTIVITY;
}
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{
// TODO: Implement initiateQuery() method.
}
public function requiredRole(): Role
{
return new Role(ActivityStatsVoter::STATS);
}
public function supportsModifiers(): array
{
return [
Declarations::ACTIVITY,
//PersonDeclarations::ACP_TYPE,
];
}
public function getGroup(): string
{
return 'Exports of activities linked to an accompanying period';
}
}

View File

@ -37,28 +37,28 @@ class CountActivity implements ExportInterface, GroupedExportInterface
{ {
} }
public function getAllowedFormattersTypes() public function getAllowedFormattersTypes(): array
{ {
return [FormatterInterface::TYPE_TABULAR]; return [FormatterInterface::TYPE_TABULAR];
} }
public function getDescription() public function getDescription(): string
{ {
return 'Count activities linked to an accompanying period by various parameters.'; return 'Count activities linked to an accompanying period by various parameters.';
} }
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
{ {
if ('export_count_activity_acp' !== $key) { if ('export_count_activity' !== $key) {
throw new LogicException("the key {$key} is not used by this export"); throw new LogicException("the key {$key} is not used by this export");
} }
return static fn ($value) => '_header' === $value ? 'Number of activities linked to an accompanying period' : $value; return static fn ($value) => '_header' === $value ? 'Number of activities linked to an accompanying period' : $value;
} }
public function getQueryKeys($data) public function getQueryKeys($data): array
{ {
return ['export_count_activity_acp']; return ['export_count_activity'];
} }
public function getResult($qb, $data) public function getResult($qb, $data)
@ -66,12 +66,12 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR); return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR);
} }
public function getTitle() public function getTitle(): string
{ {
return 'Count activities linked to an accompanying period'; return 'Count activities linked to an accompanying period';
} }
public function getType() public function getType(): string
{ {
return Declarations::ACTIVITY; return Declarations::ACTIVITY;
} }
@ -83,7 +83,7 @@ class CountActivity implements ExportInterface, GroupedExportInterface
$qb = $this $qb = $this
->activityRepository ->activityRepository
->createQueryBuilder('activity') ->createQueryBuilder('activity')
->select('COUNT(activity.id) as export_count_activity_acp'); ->select('COUNT(activity.id) as export_count_activity');
$qb->andWhere( $qb->andWhere(
$qb->expr()->isNotNull('activity.accompanyingPeriod') $qb->expr()->isNotNull('activity.accompanyingPeriod')
@ -92,12 +92,12 @@ class CountActivity implements ExportInterface, GroupedExportInterface
return $qb; return $qb;
} }
public function requiredRole() public function requiredRole(): Role
{ {
return new Role(ActivityStatsVoter::STATS); return new Role(ActivityStatsVoter::STATS);
} }
public function supportsModifiers() public function supportsModifiers(): array
{ {
return [ return [
Declarations::ACTIVITY, Declarations::ACTIVITY,
@ -108,6 +108,6 @@ class CountActivity implements ExportInterface, GroupedExportInterface
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities'; return 'Exports of activities linked to an accompanying period';
} }
} }

View File

@ -0,0 +1,79 @@
<?php
namespace Chill\ActivityBundle\Export\Export\LinkedToACP;
use Chill\ActivityBundle\Export\Declarations;
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
use Closure;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Security\Core\Role\Role;
class SumActivityDuration implements ExportInterface, GroupedExportInterface
{
public function buildForm(FormBuilderInterface $builder)
{
// TODO: Implement buildForm() method.
}
public function getTitle(): string
{
return 'Sum activity linked to an accompanying period duration';
}
public function getAllowedFormattersTypes(): array
{
return [FormatterInterface::TYPE_TABULAR];
}
public function getDescription(): string
{
return 'Sum activities linked to an accompanying period duration by various parameters.';
}
public function getLabels($key, array $values, $data)
{
// TODO: Implement getLabels() method.
}
public function getQueryKeys($data): array
{
return ['export_sum_activity_duration'];
}
public function getResult($qb, $data)
{
return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR);
}
public function getType(): string
{
return Declarations::ACTIVITY;
}
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{
// TODO: Implement initiateQuery() method.
}
public function requiredRole(): Role
{
return new Role(ActivityStatsVoter::STATS);
}
public function supportsModifiers(): array
{
return [
Declarations::ACTIVITY,
//PersonDeclarations::ACP_TYPE,
];
}
public function getGroup(): string
{
return 'Exports of activities linked to an accompanying period';
}
}

View File

@ -0,0 +1,78 @@
<?php
namespace Chill\ActivityBundle\Export\Export\LinkedToACP;
use Chill\ActivityBundle\Export\Declarations;
use Chill\ActivityBundle\Security\Authorization\ActivityStatsVoter;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\GroupedExportInterface;
use Closure;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Security\Core\Role\Role;
class SumActivityVisitDuration implements ExportInterface, GroupedExportInterface
{
public function buildForm(FormBuilderInterface $builder)
{
// TODO: Implement buildForm() method.
}
public function getTitle(): string
{
return 'Sum activity linked to an accompanying period visit duration';
}
public function getAllowedFormattersTypes(): array
{
return [FormatterInterface::TYPE_TABULAR];
}
public function getDescription(): string
{
return 'Sum activities linked to an accompanying period visit duration by various parameters.';
}
public function getLabels($key, array $values, $data)
{
// TODO: Implement getLabels() method.
}
public function getQueryKeys($data): array
{
return ['export_sum_activity_visit_duration'];
}
public function getResult($qb, $data)
{
return $qb->getQuery()->getResult(Query::HYDRATE_SCALAR);
}
public function getType(): string
{
return Declarations::ACTIVITY;
}
public function initiateQuery(array $requiredModifiers, array $acl, array $data = [])
{
// TODO: Implement initiateQuery() method.
}
public function requiredRole(): Role
{
return new Role(ActivityStatsVoter::STATS);
}
public function supportsModifiers(): array
{
return [
Declarations::ACTIVITY,
//PersonDeclarations::ACP_TYPE,
];
}
public function getGroup(): string
{
return 'Exports of activities linked to an accompanying period';
}
}

View File

@ -108,6 +108,6 @@ class CountActivity implements ExportInterface, GroupedExportInterface
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities'; return 'Exports of activities linked to a person';
} }
} }

View File

@ -97,7 +97,7 @@ class ListActivity implements ListInterface, GroupedExportInterface
public function getDescription() public function getDescription()
{ {
return 'List activities description'; return 'List activities linked to a person description';
} }
public function getLabels($key, array $values, $data) public function getLabels($key, array $values, $data)
@ -183,7 +183,7 @@ class ListActivity implements ListInterface, GroupedExportInterface
public function getTitle() public function getTitle()
{ {
return 'List activities'; return 'List activities linked to a person';
} }
public function getType() public function getType()
@ -285,6 +285,6 @@ class ListActivity implements ListInterface, GroupedExportInterface
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities'; return 'Exports of activities linked to a person';
} }
} }

View File

@ -63,7 +63,7 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
public function getDescription() public function getDescription()
{ {
if (self::SUM === $this->action) { if (self::SUM === $this->action) {
return 'Sum activities duration by various parameters.'; return 'Sum activities linked to a person duration by various parameters.';
} }
} }
@ -91,7 +91,7 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
public function getTitle() public function getTitle()
{ {
if (self::SUM === $this->action) { if (self::SUM === $this->action) {
return 'Sum activity duration'; return 'Sum activity linked to a person duration';
} }
} }
@ -137,6 +137,6 @@ class StatActivityDuration implements ExportInterface, GroupedExportInterface
public function getGroup(): string public function getGroup(): string
{ {
return 'Exports of activities'; return 'Exports of activities linked to a person';
} }
} }

View File

@ -24,6 +24,26 @@ services:
tags: tags:
- { name: chill.export, alias: 'count_activity_linked_to_acp' } - { name: chill.export, alias: 'count_activity_linked_to_acp' }
chill.activity.export.sum_activity_duration_linked_to_acp:
class: Chill\ActivityBundle\Export\Export\LinkedToACP\SumActivityDuration
tags:
- { name: chill.export, alias: 'sum_activity_duration_linked_to_acp' }
chill.activity.export.sum_activity_visit_duration_linked_to_acp:
class: Chill\ActivityBundle\Export\Export\LinkedToACP\SumActivityVisitDuration
tags:
- { name: chill.export, alias: 'sum_activity_visit_duration_linked_to_acp' }
chill.activity.export.avg_activity_duration_linked_to_acp:
class: Chill\ActivityBundle\Export\Export\LinkedToACP\AvgActivityDuration
tags:
- { name: chill.export, alias: 'avg_activity_duration_linked_to_acp' }
chill.activity.export.avg_activity_visit_duration_linked_to_acp:
class: Chill\ActivityBundle\Export\Export\LinkedToACP\AvgActivityVisitDuration
tags:
- { name: chill.export, alias: 'avg_activity_visit_duration_linked_to_acp' }
## Filters ## Filters
chill.activity.export.reason_filter: chill.activity.export.reason_filter:
class: Chill\ActivityBundle\Export\Filter\ActivityReasonFilter class: Chill\ActivityBundle\Export\Filter\ActivityReasonFilter

View File

@ -203,17 +203,29 @@ Are you sure you want to remove the activity about "%name%" ?: Êtes-vous sûr d
The activity has been successfully removed.: L'activité a été supprimée. The activity has been successfully removed.: L'activité a été supprimée.
# exports # exports
Exports of activities: Exports des activités Exports of activities linked to a person: Exports des activités liées à une personne
Number of activities linked to a person: Nombre d'activités liées à une personne Number of activities linked to a person: Nombre d'activités liées à une personne
Count activities linked to a person: Nombre d'activités liées à une personne Count activities linked to a person: Nombre d'activités
Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à une personne en fonction de différents paramètres. Count activities linked to a person by various parameters.: Compte le nombre d'activités enregistrées et liées à une personne en fonction de différents paramètres.
Sum activity duration: Total de la durée des activités Sum activity linked to a person duration: Total de la durée des activités
Sum activities duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres. Sum activities linked to a person duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
List activities: Liste les activités List activities linked to a person: Liste les activités
List activities description: Créer la liste des activités List activities linked to a person description: Crée la liste des activités en fonction de différents paramètres.
Exports of activities linked to an accompanying period: Exports des activités liées à un parcours
Number of activities linked to an accompanying period: Nombre d'activités liées à un parcours Number of activities linked to an accompanying period: Nombre d'activités liées à un parcours
Count activities linked to an accompanying period: Nombre d'activités liées à un parcours Count activities linked to an accompanying period: Nombre d'activités
Count activities linked to an accompanying period by various parameters.: Compte le nombre d'activités enregistrées et liées à un parcours en fonction de différents paramètres. Count activities linked to an accompanying period by various parameters.: Compte le nombre d'activités enregistrées et liées à un parcours en fonction de différents paramètres.
Sum activity linked to an accompanying period duration: Somme de la durée des activités
Sum activities linked to an accompanying period duration by various parameters.: Additionne la durée des activités en fonction de différents paramètres.
Sum activity linked to an accompanying period visit duration: Somme de la durée de déplacement des activités
Sum activities linked to an accompanying period visit duration by various parameters.: Additionne la durée de déplacement des activités en fonction de différents paramètres.
Average activity linked to an accompanying period duration: Moyenne de la durée des activités
Average activities linked to an accompanying period duration by various parameters.: Moyenne de la durée des activités en fonction de différents paramètres.
Average activity linked to an accompanying period visit duration: Moyenne de la durée de déplacement des activités
Average activities linked to an accompanying period visit duration by various parameters.: Moyenne de la durée de déplacement des activités en fonction de différents paramètres.
#filters #filters
Filter by reason: Filtrer par sujet d'activité Filter by reason: Filtrer par sujet d'activité