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\Security\Authorization\ExportGenerationVoter;
use Chill\MainBundle\Security\Authorization\SavedExportVoter;
use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormFactoryInterface;
@ -47,7 +46,6 @@ final readonly class SavedExportController
private SessionInterface $session,
private TranslatorInterface $translator,
private UrlGeneratorInterface $urlGenerator,
private TranslatableStringHelperInterface $translatableStringHelper,
) {}
#[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()) {
$this->entityManager->persist($savedExport);
$exportGeneration->setSavedExport($savedExport);
$this->entityManager->flush();
$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(
$this->templating->render(
'@ChillMain/SavedExport/edit.html.twig',
'@ChillMain/SavedExport/new.html.twig',
[
'form' => $form->createView(),
],
)
),
);
}

View File

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