mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-03 21:34:59 +00:00
add an "active" field on activity type
This commit is contained in:
@@ -65,30 +65,27 @@ class TranslatableActivityType extends AbstractType
|
||||
return EntityType::class;
|
||||
}
|
||||
|
||||
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options) {
|
||||
/* @var $qb \Doctrine\ORM\QueryBuilder */
|
||||
$qb = $options['query_builder'];
|
||||
|
||||
if ($options['active_only'] === true) {
|
||||
$qb->where($qb->expr()->eq('at.active', ':active'));
|
||||
$qb->setParameter('active', true, \Doctrine\DBAL\Types\Type::BOOLEAN);
|
||||
}
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
// create a local copy for use in closures
|
||||
$translatableStringHelper = $this->translatableStringHelper;
|
||||
$types = $this->activityTypeRepository->findAll();
|
||||
|
||||
// sort by alphabetical order
|
||||
usort($types, function(ActivityType $typeA, ActivityType $typeB) use ($translatableStringHelper) {
|
||||
$strA = $translatableStringHelper->localize($typeA->getName());
|
||||
$strB = $translatableStringHelper->localize($typeB->getName());
|
||||
|
||||
if ($strA === $strB) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $strA < $strB ? -1 : 1;
|
||||
});
|
||||
|
||||
$resolver->setDefaults(
|
||||
array(
|
||||
'class' => 'ChillActivityBundle:ActivityType',
|
||||
'choices' => $types,
|
||||
'choice_label' => function (ActivityType $type) use ($translatableStringHelper) {
|
||||
return $translatableStringHelper->localize($type->getName());
|
||||
'active_only' => true,
|
||||
'query_builder' => $this->activityTypeRepository
|
||||
->createQueryBuilder('at'),
|
||||
'choice_label' => function (ActivityType $type) {
|
||||
return $this->translatableStringHelper->localize($type->getName());
|
||||
}
|
||||
)
|
||||
);
|
||||
|
Reference in New Issue
Block a user