Add setter for SavedExport and update SavedExport logic

Introduced a `setSavedExport` method in `ExportGeneration` entity to enable better association handling. Updated `SavedExportController` to use this setter and adjusted template reference for the 'new' action. Removed unused `TranslatableStringHelperInterface` dependency for cleaner code.
This commit is contained in:
Julien Fastré 2025-03-14 17:26:40 +01:00
parent e7cd9e00f9
commit 6a2aa77ecc
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
2 changed files with 10 additions and 4 deletions

View File

@ -21,7 +21,6 @@ use Chill\MainBundle\Form\SavedExportType;
use Chill\MainBundle\Repository\SavedExportRepositoryInterface; use Chill\MainBundle\Repository\SavedExportRepositoryInterface;
use Chill\MainBundle\Security\Authorization\ExportGenerationVoter; use Chill\MainBundle\Security\Authorization\ExportGenerationVoter;
use Chill\MainBundle\Security\Authorization\SavedExportVoter; use Chill\MainBundle\Security\Authorization\SavedExportVoter;
use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormFactoryInterface;
@ -47,7 +46,6 @@ final readonly class SavedExportController
private SessionInterface $session, private SessionInterface $session,
private TranslatorInterface $translator, private TranslatorInterface $translator,
private UrlGeneratorInterface $urlGenerator, private UrlGeneratorInterface $urlGenerator,
private TranslatableStringHelperInterface $translatableStringHelper,
) {} ) {}
#[Route(path: '/{_locale}/exports/saved/{id}/delete', name: 'chill_main_export_saved_delete')] #[Route(path: '/{_locale}/exports/saved/{id}/delete', name: 'chill_main_export_saved_delete')]
@ -107,6 +105,7 @@ final readonly class SavedExportController
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$this->entityManager->persist($savedExport); $this->entityManager->persist($savedExport);
$exportGeneration->setSavedExport($savedExport);
$this->entityManager->flush(); $this->entityManager->flush();
$this->session->getFlashBag()->add('success', $this->translator->trans('saved_export.Saved export is saved!')); $this->session->getFlashBag()->add('success', $this->translator->trans('saved_export.Saved export is saved!'));
@ -118,11 +117,11 @@ final readonly class SavedExportController
return new Response( return new Response(
$this->templating->render( $this->templating->render(
'@ChillMain/SavedExport/edit.html.twig', '@ChillMain/SavedExport/new.html.twig',
[ [
'form' => $form->createView(), 'form' => $form->createView(),
], ],
) ),
); );
} }

View File

@ -94,6 +94,13 @@ class ExportGeneration implements TrackCreationInterface
return $this->savedExport; return $this->savedExport;
} }
public function setSavedExport(SavedExport $savedExport): self
{
$this->savedExport = $savedExport;
return $this;
}
public static function fromSavedExport(SavedExport $savedExport, ?\DateTimeImmutable $deletedAt = null): self public static function fromSavedExport(SavedExport $savedExport, ?\DateTimeImmutable $deletedAt = null): self
{ {
return new self($savedExport->getExportAlias(), $savedExport->getOptions(), $deletedAt, $savedExport); return new self($savedExport->getExportAlias(), $savedExport->getOptions(), $deletedAt, $savedExport);