From 72dadc06d66576768b4483ab473869ecbba609c6 Mon Sep 17 00:00:00 2001 From: roadiz-ci Date: Mon, 17 Jun 2024 15:32:15 +0000 Subject: [PATCH] Merge branch hotfix/v2.3.11 --- config/services.yaml | 2 +- src/Form/AttributeChoiceType.php | 16 +++++++++------- src/Form/AttributeValueType.php | 3 --- src/Repository/AttributeValueRepository.php | 3 ++- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/config/services.yaml b/config/services.yaml index eb48f24e..3619b2d8 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -1,6 +1,6 @@ --- parameters: - roadiz_core.cms_version: '2.3.10' + roadiz_core.cms_version: '2.3.11' roadiz_core.cms_version_prefix: 'main' env(APP_NAMESPACE): "roadiz" env(APP_VERSION): "0.1.0" diff --git a/src/Form/AttributeChoiceType.php b/src/Form/AttributeChoiceType.php index 93c4554b..5c421243 100644 --- a/src/Form/AttributeChoiceType.php +++ b/src/Form/AttributeChoiceType.php @@ -4,7 +4,7 @@ namespace RZ\Roadiz\CoreBundle\Form; -use Doctrine\ORM\EntityManagerInterface; +use Doctrine\Persistence\ManagerRegistry; use RZ\Roadiz\CoreBundle\Entity\Attribute; use RZ\Roadiz\CoreBundle\Entity\Translation; use Symfony\Component\Form\AbstractType; @@ -14,8 +14,12 @@ use Symfony\Component\OptionsResolver\Options; use Symfony\Component\OptionsResolver\OptionsResolver; -class AttributeChoiceType extends AbstractType +final class AttributeChoiceType extends AbstractType { + public function __construct(private ManagerRegistry $managerRegistry) + { + } + /** * @inheritDoc */ @@ -28,8 +32,8 @@ function ($dataToForm) { } return null; }, - function ($formToData) use ($options) { - return $options['entityManager']->find(Attribute::class, $formToData); + function ($formToData) { + return $this->managerRegistry->getRepository(Attribute::class)->find($formToData); } )); } @@ -41,14 +45,12 @@ public function configureOptions(OptionsResolver $resolver): void { parent::configureOptions($resolver); $resolver->setDefault('empty_data', null); - $resolver->setRequired('entityManager'); - $resolver->setAllowedTypes('entityManager', [EntityManagerInterface::class]); $resolver->setRequired('translation'); $resolver->setAllowedTypes('translation', [Translation::class]); $resolver->setNormalizer('choices', function (Options $options) { $choices = []; /** @var Attribute[] $attributes */ - $attributes = $options['entityManager']->getRepository(Attribute::class)->findBy( + $attributes = $this->managerRegistry->getRepository(Attribute::class)->findBy( [], ['code' => 'ASC'] ); diff --git a/src/Form/AttributeValueType.php b/src/Form/AttributeValueType.php index 93aa5d4c..452523da 100644 --- a/src/Form/AttributeValueType.php +++ b/src/Form/AttributeValueType.php @@ -19,7 +19,6 @@ public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('attribute', AttributeChoiceType::class, [ 'label' => 'attribute_values.form.attribute', - 'entityManager' => $options['entityManager'], 'translation' => $options['translation'], ]); } @@ -31,8 +30,6 @@ public function configureOptions(OptionsResolver $resolver): void { parent::configureOptions($resolver); - $resolver->setRequired('entityManager'); - $resolver->setAllowedTypes('entityManager', [EntityManagerInterface::class]); $resolver->setRequired('translation'); $resolver->setAllowedTypes('translation', [Translation::class]); } diff --git a/src/Repository/AttributeValueRepository.php b/src/Repository/AttributeValueRepository.php index d494a49c..c49f0774 100644 --- a/src/Repository/AttributeValueRepository.php +++ b/src/Repository/AttributeValueRepository.php @@ -38,7 +38,8 @@ public function findByAttributable( ->addSelect('ad') ->addSelect('ag') ->addSelect('agt') - ->innerJoin('av.attributeValueTranslations', 'avt') + // We need to fetch values without translations too + ->leftJoin('av.attributeValueTranslations', 'avt') ->innerJoin('av.attribute', 'a') ->leftJoin('a.attributeDocuments', 'ad') ->leftJoin('a.attributeTranslations', 'at')