diff --git a/Export/Filter/GenderFilter.php b/Export/Filter/GenderFilter.php index 14aba4376..81e6f731a 100644 --- a/Export/Filter/GenderFilter.php +++ b/Export/Filter/GenderFilter.php @@ -84,4 +84,9 @@ class GenderFilter implements FilterInterface { return NULL; } + + public function describeAction($data, $format = 'string') + { + + } } diff --git a/Export/Filter/NationalityFilter.php b/Export/Filter/NationalityFilter.php index 136002853..cc0c0c7d3 100644 --- a/Export/Filter/NationalityFilter.php +++ b/Export/Filter/NationalityFilter.php @@ -23,7 +23,9 @@ use Symfony\Component\Form\FormBuilderInterface; use Doctrine\ORM\QueryBuilder; use Chill\MainBundle\Export\FilterInterface; use Doctrine\ORM\Query\Expr; -use Symfony\Component\Security\Core\Role\Role; +use Chill\MainBundle\Templating\TranslatableStringHelper; +use Doctrine\ORM\EntityRepository; +use Chill\MainBundle\Entity\Country; /** * @@ -32,6 +34,17 @@ use Symfony\Component\Security\Core\Role\Role; */ class NationalityFilter implements FilterInterface { + /** + * + * @var TranslatableStringHelper + */ + private $translatableStringHelper; + + public function __construct(TranslatableStringHelper $helper) + { + $this->translatableStringHelper = $helper; + } + public function applyOn() { return 'person'; @@ -69,4 +82,18 @@ class NationalityFilter implements FilterInterface { return NULL; } + + public function describeAction($data, $format = 'string') + { + $countries = $data['nationalities']; + + $names = array_map(function(Country $c) { + return $this->translatableStringHelper->localize($c->getName()); + }, array($countries)); + + return array( + "Filtered by nationality : %nationalities%", + array('%nationalities%' => implode(", ", $names)) + ); + } } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index d2ae37056..3f753cf96 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -86,6 +86,8 @@ services: chill.person.export.filter_nationality: class: Chill\PersonBundle\Export\Filter\NationalityFilter + arguments: + - "@chill.main.helper.translatable_string" tags: - { name: chill.export_filter, alias: person_nationality_filter } diff --git a/Resources/translations/messages.fr.yml b/Resources/translations/messages.fr.yml index 1b828264f..b15e4a83e 100644 --- a/Resources/translations/messages.fr.yml +++ b/Resources/translations/messages.fr.yml @@ -136,6 +136,7 @@ Accepted genders: Genres acceptés Filter by person's nationality: Filtrer par nationalité Nationalities: Nationalités Choose countries: Choisir les nationalités +'Filtered by nationality : %nationalities%': 'Filtré par nationalité : seulement %nationalities%' ## aggregators Group people by nationality: Aggréger les personnes par nationalités