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 = [
'Create',
'Ars Nouveau',
'Oculus',
'Tectonic',
'Iris',
'JEI',
];
$isEdit = $options['data']?->getId() !== null;
$mods = [];
if ($isEdit) {
$mods = $this->modRepository->findAvailableDependances($builder->getData());
}
$mods = $this->modRepository->findAvailableDependances($builder->getData());
$builder
->add('nom', TextType::class, [
@ -73,10 +70,9 @@ class ModType extends AbstractType
'multiple' => true,
'required' => false,
'choices' => $mods,
'disabled' => !$isEdit,
'attr' => [
'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 Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
use function PHPUnit\Framework\isNull;
/**
* @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)
* 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[] = $mod->getId();
$excludedIds = [];
if (!isnull($mod)) {
$excludedIds = $this->collectDependencyIds($mod, []);
$excludedIds[] = $mod->getId();
}
$qb = $this->createQueryBuilder('m');
if (!empty($excludedIds)) {