Compare commits

..

2 Commits

Author SHA1 Message Date
add9249502 Merge branch '471-fix-inactive-user-group-api' into 'master'
Hide inactive user groups in API responses

Closes #471

See merge request Chill-Projet/chill-bundles!927
2025-11-19 15:19:25 +00:00
380d48c43a Hide inactive user groups in API responses 2025-11-19 15:19:25 +00:00
4 changed files with 22 additions and 25 deletions

View File

@@ -0,0 +1,7 @@
kind: Fixed
body: |
Hide the display of inactive user groups in the api
time: 2025-11-19T16:12:33.803084517+01:00
custom:
Issue: "471"
SchemaChange: No schema change

View File

@@ -1,6 +0,0 @@
kind: UX
body: Alphabetically order userJobs and mainLocations within user creation form
time: 2025-11-19T15:37:06.393470745+01:00
custom:
Issue: "470"
SchemaChange: No schema change

View File

@@ -12,5 +12,12 @@ declare(strict_types=1);
namespace Chill\MainBundle\Controller;
use Chill\MainBundle\CRUD\Controller\ApiController;
use Symfony\Component\HttpFoundation\Request;
class UserGroupApiController extends ApiController {}
class UserGroupApiController extends ApiController
{
protected function customizeQuery(string $action, Request $request, $query): void
{
$query->andWhere('e.active = TRUE');
}
}

View File

@@ -18,7 +18,6 @@ use Chill\MainBundle\Entity\UserJob;
use Chill\MainBundle\Form\Type\ChillDateType;
use Chill\MainBundle\Form\Type\ChillPhoneNumberType;
use Chill\MainBundle\Form\Type\PickCivilityType;
use Chill\MainBundle\Repository\UserJobRepository;
use Chill\MainBundle\Templating\TranslatableStringHelper;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
@@ -37,7 +36,7 @@ use Symfony\Component\Validator\Constraints\Regex;
class UserType extends AbstractType
{
public function __construct(private readonly TranslatableStringHelper $translatableStringHelper, protected ParameterBagInterface $parameterBag, private readonly UserJobRepository $userJobRepository) {}
public function __construct(private readonly TranslatableStringHelper $translatableStringHelper, protected ParameterBagInterface $parameterBag) {}
public function buildForm(FormBuilderInterface $builder, array $options)
{
@@ -81,7 +80,12 @@ class UserType extends AbstractType
'placeholder' => 'choose a job',
'class' => UserJob::class,
'choice_label' => fn (UserJob $c) => $this->translatableStringHelper->localize($c->getLabel()),
'choices' => $this->loadAndSortUserJobs(),
'query_builder' => static function (EntityRepository $er) {
$qb = $er->createQueryBuilder('uj');
$qb->where('uj.active = TRUE');
return $qb;
},
])
->add('mainLocation', EntityType::class, [
'label' => 'Main location',
@@ -92,7 +96,6 @@ class UserType extends AbstractType
'query_builder' => static function (EntityRepository $er) {
$qb = $er->createQueryBuilder('l');
$qb->orderBy('l.locationType');
$qb->orderBy('l.name', 'ASC');
$qb->where('l.availableForUsers = TRUE');
return $qb;
@@ -152,20 +155,6 @@ class UserType extends AbstractType
}
}
private function loadAndSortUserJobs(): array
{
$items = $this->userJobRepository->findBy(['active' => true]);
usort(
$items,
fn ($a, $b) => mb_strtolower((string) $this->translatableStringHelper->localize($a->getLabel()))
<=>
mb_strtolower((string) $this->translatableStringHelper->localize($b->getLabel()))
);
return $items;
}
/**
* @param OptionsResolverInterface $resolver
*/