Merge branch 'master' into upgrade-php82

This commit is contained in:
Julien Fastré 2023-02-28 22:02:13 +01:00
commit d7737af4f3
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB

View File

@ -18,8 +18,10 @@ use Chill\DocGeneratorBundle\Service\Context\BaseContextData;
use Chill\DocStoreBundle\Entity\StoredObject; use Chill\DocStoreBundle\Entity\StoredObject;
use Chill\MainBundle\Templating\TranslatableStringHelperInterface; use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Repository\PersonRepository;
use Chill\PersonBundle\Templating\Entity\PersonRender; use Chill\PersonBundle\Templating\Entity\PersonRender;
use Chill\ThirdPartyBundle\Entity\ThirdParty; use Chill\ThirdPartyBundle\Entity\ThirdParty;
use Chill\ThirdPartyBundle\Repository\ThirdPartyRepository;
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender; use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
@ -41,6 +43,10 @@ final class CalendarContext implements CalendarContextInterface
private PersonRender $personRender; private PersonRender $personRender;
private PersonRepository $personRepository;
private ThirdPartyRepository $thirdPartyRepository;
private ThirdPartyRender $thirdPartyRender; private ThirdPartyRender $thirdPartyRender;
private TranslatableStringHelperInterface $translatableStringHelper; private TranslatableStringHelperInterface $translatableStringHelper;
@ -50,14 +56,18 @@ final class CalendarContext implements CalendarContextInterface
EntityManagerInterface $entityManager, EntityManagerInterface $entityManager,
NormalizerInterface $normalizer, NormalizerInterface $normalizer,
PersonRender $personRender, PersonRender $personRender,
PersonRepository $personRepository,
ThirdPartyRender $thirdPartyRender, ThirdPartyRender $thirdPartyRender,
ThirdPartyRepository $thirdPartyRepository,
TranslatableStringHelperInterface $translatableStringHelper TranslatableStringHelperInterface $translatableStringHelper
) { ) {
$this->baseContextData = $baseContextData; $this->baseContextData = $baseContextData;
$this->entityManager = $entityManager; $this->entityManager = $entityManager;
$this->normalizer = $normalizer; $this->normalizer = $normalizer;
$this->personRender = $personRender; $this->personRender = $personRender;
$this->personRepository = $personRepository;
$this->thirdPartyRender = $thirdPartyRender; $this->thirdPartyRender = $thirdPartyRender;
$this->thirdPartyRepository = $thirdPartyRepository;
$this->translatableStringHelper = $translatableStringHelper; $this->translatableStringHelper = $translatableStringHelper;
} }
@ -229,12 +239,36 @@ final class CalendarContext implements CalendarContextInterface
public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array
{ {
// TODO: Implement publicFormTransform() method. $normalized['title'] = $data['title'] ?? '';
foreach (['mainPerson', 'thirdParty'] as $k) {
if (isset($data[$k])) {
$normalized[$k] = $data[$k]->getId();
}
}
return $normalized;
} }
public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array
{ {
// TODO: Implement publicFormReverseTransform() method. $denormalized['title'] = $data['title'];
if (null !== ($data['mainPerson'] ?? null)) {
if (null === $person = $this->personRepository->find($data['mainPerson'])) {
throw new \RuntimeException('person not found');
}
$denormalized['mainPerson'] = $person;
}
if (null !== ($data['thirdParty'] ?? null)) {
if (null === $thirdParty = $this->thirdPartyRepository->find($data['thirdParty'])) {
throw new \RuntimeException('third party not found');
}
$denormalized['thirdParty'] = $thirdParty;
}
return $denormalized;
} }
/** /**