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;
}
public function describeAction($data, $format = 'string')
{
}
}

View File

@ -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))
);
}
}

View File

@ -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 }

View File

@ -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