amelioration ajout de mods

on peut desormer choisir les dependances durant l ajout d un mod
This commit is contained in:
Ploush 2026-06-10 14:51:39 +02:00
parent bfcc83db24
commit 95483c552a
2 changed files with 11 additions and 12 deletions

View file

@ -20,15 +20,12 @@ class ModType extends AbstractType
{ {
$placeholderModNames = [ $placeholderModNames = [
'Create', 'Create',
'Ars Nouveau', 'Tectonic',
'Oculus', 'Iris',
'JEI', 'JEI',
]; ];
$isEdit = $options['data']?->getId() !== null; $isEdit = $options['data']?->getId() !== null;
$mods = []; $mods = $this->modRepository->findAvailableDependances($builder->getData());
if ($isEdit) {
$mods = $this->modRepository->findAvailableDependances($builder->getData());
}
$builder $builder
->add('nom', TextType::class, [ ->add('nom', TextType::class, [
@ -73,10 +70,9 @@ class ModType extends AbstractType
'multiple' => true, 'multiple' => true,
'required' => false, 'required' => false,
'choices' => $mods, 'choices' => $mods,
'disabled' => !$isEdit,
'attr' => [ 'attr' => [
'id' => 'dependances', 'id' => 'dependances',
'data-placeholder'=> $isEdit? 'Rechercher une dépendance...' : 'Ajouter une dependance après la création du mod', 'data-placeholder'=> 'Rechercher une dépendance...',
], ],
]) ])
; ;

View file

@ -5,6 +5,7 @@ namespace App\Repository;
use App\Entity\Mod; use App\Entity\Mod;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
use function PHPUnit\Framework\isNull;
/** /**
* @extends ServiceEntityRepository<Mod> * @extends ServiceEntityRepository<Mod>
@ -20,11 +21,13 @@ class ModRepository extends ServiceEntityRepository
* Retourne tous les mods qui ne sont pas une dépendance (directe ou indirecte) * Retourne tous les mods qui ne sont pas une dépendance (directe ou indirecte)
* du mod passé en paramètre, et qui n'est pas le mod lui-même. * du mod passé en paramètre, et qui n'est pas le mod lui-même.
*/ */
public function findAvailableDependances(Mod $mod): array public function findAvailableDependances(?Mod $mod): array
{ {
$excludedIds = $this->collectDependencyIds($mod, []); $excludedIds = [];
$excludedIds[] = $mod->getId(); if (!isnull($mod)) {
$excludedIds = $this->collectDependencyIds($mod, []);
$excludedIds[] = $mod->getId();
}
$qb = $this->createQueryBuilder('m'); $qb = $this->createQueryBuilder('m');
if (!empty($excludedIds)) { if (!empty($excludedIds)) {