adapt filters to new interface + add message for nationality filter

This commit is contained in:
Julien Fastré 2016-12-01 22:36:04 +01:00
parent b73259b49f
commit e412fbf34c
4 changed files with 36 additions and 1 deletions

View File

@ -84,4 +84,9 @@ class GenderFilter implements FilterInterface
{ {
return NULL; return NULL;
} }
public function describeAction($data, $format = 'string')
{
}
} }

View File

@ -23,7 +23,9 @@ use Symfony\Component\Form\FormBuilderInterface;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Chill\MainBundle\Export\FilterInterface; use Chill\MainBundle\Export\FilterInterface;
use Doctrine\ORM\Query\Expr; 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 class NationalityFilter implements FilterInterface
{ {
/**
*
* @var TranslatableStringHelper
*/
private $translatableStringHelper;
public function __construct(TranslatableStringHelper $helper)
{
$this->translatableStringHelper = $helper;
}
public function applyOn() public function applyOn()
{ {
return 'person'; return 'person';
@ -69,4 +82,18 @@ class NationalityFilter implements FilterInterface
{ {
return NULL; 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))
);
}
} }

View File

@ -86,6 +86,8 @@ services:
chill.person.export.filter_nationality: chill.person.export.filter_nationality:
class: Chill\PersonBundle\Export\Filter\NationalityFilter class: Chill\PersonBundle\Export\Filter\NationalityFilter
arguments:
- "@chill.main.helper.translatable_string"
tags: tags:
- { name: chill.export_filter, alias: person_nationality_filter } - { name: chill.export_filter, alias: person_nationality_filter }

View File

@ -136,6 +136,7 @@ Accepted genders: Genres acceptés
Filter by person's nationality: Filtrer par nationalité Filter by person's nationality: Filtrer par nationalité
Nationalities: Nationalités Nationalities: Nationalités
Choose countries: Choisir les nationalités Choose countries: Choisir les nationalités
'Filtered by nationality : %nationalities%': 'Filtré par nationalité : seulement %nationalities%'
## aggregators ## aggregators
Group people by nationality: Aggréger les personnes par nationalités Group people by nationality: Aggréger les personnes par nationalités