From 4be039e482a51950892fd2952d1f8c449104b8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Wed, 31 Jan 2024 18:05:56 +0100 Subject: [PATCH] feat: treat all uploads of type 'document' as global --- .../Admin/System/Document/EditController.php | 6 +--- .../Admin/System/Document/IndexController.php | 2 +- .../System/Document/ReplaceController.php | 2 +- .../System/Document/UploadController.php | 8 +----- src/Entity/Assignment.php | 28 ------------------- src/Entity/Upload.php | 15 ---------- src/Form/AssignmentType.php | 23 --------------- src/Repository/UploadRepository.php | 24 +++++++--------- templates/admin/assignment/_form.html.twig | 22 --------------- .../admin/system/document/edit.html.twig | 3 -- .../admin/system/document/index.html.twig | 9 +----- .../admin/system/document/upload.html.twig | 3 -- 12 files changed, 15 insertions(+), 130 deletions(-) diff --git a/src/Controller/Admin/System/Document/EditController.php b/src/Controller/Admin/System/Document/EditController.php index 17e3a70..e9cc56c 100644 --- a/src/Controller/Admin/System/Document/EditController.php +++ b/src/Controller/Admin/System/Document/EditController.php @@ -39,10 +39,6 @@ class EditController extends AbstractController 'placeholder' => $upload->getOriginalFilename(), ], ]) - ->add('global', CheckboxType::class, [ - 'label' => 'globales Dokument', - 'required' => false, - ]) ->getForm() ; $form->handleRequest($request); @@ -61,7 +57,7 @@ class EditController extends AbstractController $response->setCloseAndRedirect($this->generateUrl('app_admin_system_document_index')); } else { $response->setContent($this->renderView('admin/system/document/edit.html.twig', [ - 'form' => $form, + 'form' => $form->createView(), ])); } diff --git a/src/Controller/Admin/System/Document/IndexController.php b/src/Controller/Admin/System/Document/IndexController.php index 2534565..b754fff 100644 --- a/src/Controller/Admin/System/Document/IndexController.php +++ b/src/Controller/Admin/System/Document/IndexController.php @@ -22,7 +22,7 @@ class IndexController extends AbstractController #[IsGranted('ROLE_ADMINISTRATIVE')] public function index(Request $request): Response { - $query = $this->uploadRepository->getDocumentListQuery(); + $query = $this->uploadRepository->getGlobalListQuery(); $pagination = $this->paginator->paginate( $query, diff --git a/src/Controller/Admin/System/Document/ReplaceController.php b/src/Controller/Admin/System/Document/ReplaceController.php index f977bce..29f7b10 100644 --- a/src/Controller/Admin/System/Document/ReplaceController.php +++ b/src/Controller/Admin/System/Document/ReplaceController.php @@ -60,7 +60,7 @@ class ReplaceController extends AbstractController $response->setCloseAndRedirect($this->generateUrl('app_admin_system_document_index')); } else { $response->setContent($this->renderView('admin/system/document/replace.html.twig', [ - 'form' => $form, + 'form' => $form->createView(), ])); } diff --git a/src/Controller/Admin/System/Document/UploadController.php b/src/Controller/Admin/System/Document/UploadController.php index 57f09d5..e19db52 100644 --- a/src/Controller/Admin/System/Document/UploadController.php +++ b/src/Controller/Admin/System/Document/UploadController.php @@ -9,7 +9,6 @@ use App\Service\Upload\UploadHandler; use Doctrine\ORM\EntityManagerInterface; use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; -use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Attribute\Route; @@ -33,10 +32,6 @@ class UploadController extends AbstractController $form = $this ->createFormBuilder(null, ['action' => $formAction, 'ajax_submit' => true]) - ->add('global', CheckboxType::class, [ - 'label' => 'globale(s) Dokument(e)', - 'required' => false, - ]) ->getForm() ; $form->handleRequest($request); @@ -49,7 +44,6 @@ class UploadController extends AbstractController $user = $this->getUser(); foreach ($uploadSession->getUploads() as $upload) { $document = Upload::fromUploadDto($upload, $user, Upload::TYPE_DOCUMENT); - $document->setGlobal($form->get('global')->getData()); $uploadedDocuments[] = $document; $this->entityManager->persist($document); } @@ -72,7 +66,7 @@ class UploadController extends AbstractController $response->setCloseAndRedirect($this->generateUrl('app_admin_system_document_index')); } else { $response->setContent($this->renderView('admin/system/document/upload.html.twig', [ - 'form' => $form, + 'form' => $form->createView(), ])); } diff --git a/src/Entity/Assignment.php b/src/Entity/Assignment.php index 4b5b6ce..b2abf4d 100644 --- a/src/Entity/Assignment.php +++ b/src/Entity/Assignment.php @@ -81,9 +81,6 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa #[ORM\ManyToMany(targetEntity: Teamer::class, mappedBy: 'bookmarks')] private Collection $teamers; - #[ORM\ManyToMany(targetEntity: Upload::class)] - private Collection $documents; - #[ORM\ManyToOne] private ?User $owner = null; @@ -99,7 +96,6 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa $this->dispositions = new ArrayCollection(); $this->teamers = new ArrayCollection(); $this->benefits = "Anreise im E&P Reisebus\nUnterkunft\nVerpflegung\nSkipass\n"; - $this->documents = new ArrayCollection(); } public static function duplicate(Assignment $assignment): static @@ -432,30 +428,6 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa return $this; } - /** - * @return Collection - */ - public function getDocuments(): Collection - { - return $this->documents; - } - - public function addDocument(Upload $document): static - { - if (!$this->documents->contains($document)) { - $this->documents->add($document); - } - - return $this; - } - - public function removeDocument(Upload $document): static - { - $this->documents->removeElement($document); - - return $this; - } - public function getOwner(): ?User { return $this->owner; diff --git a/src/Entity/Upload.php b/src/Entity/Upload.php index fd690d6..9987b41 100644 --- a/src/Entity/Upload.php +++ b/src/Entity/Upload.php @@ -63,9 +63,6 @@ class Upload implements BlameableEntityInterface, TimestampableEntityInterface #[ORM\ManyToOne(inversedBy: 'documents')] private ?Disposition $disposition = null; - #[ORM\Column] - private bool $global = false; - #[ORM\Column(type: Types::TEXT, nullable: true)] private ?string $comment = null; @@ -222,18 +219,6 @@ class Upload implements BlameableEntityInterface, TimestampableEntityInterface return $this; } - public function isGlobal(): bool - { - return $this->global; - } - - public function setGlobal(bool $global): static - { - $this->global = $global; - - return $this; - } - public function getComment(): ?string { return $this->comment; diff --git a/src/Form/AssignmentType.php b/src/Form/AssignmentType.php index 7daa8a9..91c6dc5 100644 --- a/src/Form/AssignmentType.php +++ b/src/Form/AssignmentType.php @@ -108,29 +108,6 @@ class AssignmentType extends AbstractType ; }, ]) - ->add('documents', CollectionType::class, [ - 'label' => 'Dokumente', - 'entry_type' => EntityType::class, - 'entry_options' => [ - 'class' => Upload::class, - 'choice_label' => function (Upload $document) { - return $document->getDisplayName() ?? $document->getOriginalFilename(); - }, - 'placeholder' => 'Dokument...', - 'query_builder' => function (EntityRepository $repository) { - return $repository - ->createQueryBuilder('upload') - ->where('upload.type = :type') - ->setParameter('type', Upload::TYPE_DOCUMENT) - ->orderBy('upload.displayName') - ->addOrderBy('upload.originalFilename') - ; - }, - ], - 'allow_add' => true, - 'allow_delete' => true, - 'by_reference' => false, - ]) ->add('remarks', TextareaType::class, [ 'label' => 'Anmerkungen', 'required' => false, diff --git a/src/Repository/UploadRepository.php b/src/Repository/UploadRepository.php index b6c3773..554d02c 100644 --- a/src/Repository/UploadRepository.php +++ b/src/Repository/UploadRepository.php @@ -25,7 +25,7 @@ class UploadRepository extends ServiceEntityRepository parent::__construct($registry, Upload::class); } - public function getDocumentListQuery(): Query + public function getGlobalListQuery(): Query { $qb = $this->createQueryBuilder('upload'); @@ -36,6 +36,15 @@ class UploadRepository extends ServiceEntityRepository ; } + + public function getGlobal(): array + { + return $this + ->getGlobalListQuery() + ->getResult() + ; + } + public function getAutocompletionData(string $search): array { $qb = $this->createQueryBuilder('upload'); @@ -123,17 +132,4 @@ class UploadRepository extends ServiceEntityRepository ->getSingleScalarResult() ; } - - public function getGlobal(): array - { - $qb = $this->createQueryBuilder('upload'); - - return $qb - ->where($qb->expr()->eq('upload.global', ':global')) - ->setParameter('global', true) - ->orderBy('upload.createdAt', 'DESC') - ->getQuery() - ->getResult() - ; - } } diff --git a/templates/admin/assignment/_form.html.twig b/templates/admin/assignment/_form.html.twig index b0c296b..d1cb121 100644 --- a/templates/admin/assignment/_form.html.twig +++ b/templates/admin/assignment/_form.html.twig @@ -25,10 +25,6 @@ {{ form_widget(form.showAvailableDispositions) }} -{#
#} -{# {{ form_row(form.dateFrom) }}#} -{# {{ form_row(form.dateTo) }}#} -{#
#}
{{ form_row(form.jobProfile) }} {{ form_row(form.contact) }} @@ -44,25 +40,7 @@
{{ form_row(form.benefits) }} {{ form_row(form.fees) }} -
-
{{ form_row(form.remarks) }} -
-

- Dokumente -

-
- {% do form.documents.setRendered %} - {%- for document in form.documents -%}{{- _self.collectionRow(document) -}}{%- endfor -%} -
-
- -
-
diff --git a/templates/admin/system/document/edit.html.twig b/templates/admin/system/document/edit.html.twig index 6daa980..f12e21b 100644 --- a/templates/admin/system/document/edit.html.twig +++ b/templates/admin/system/document/edit.html.twig @@ -2,9 +2,6 @@
{{ form_row(form.displayName) }}
-
- {{ form_row(form.global) }} -
diff --git a/templates/admin/system/document/index.html.twig b/templates/admin/system/document/index.html.twig index c9928cb..02a8ff3 100644 --- a/templates/admin/system/document/index.html.twig +++ b/templates/admin/system/document/index.html.twig @@ -17,9 +17,6 @@ Dateigröße - - global - Upload am @@ -38,10 +35,6 @@ {{ document.size|file_size }} - - {% set icon = document.global ? 'check' : 'minus' %} - {{ icon(icon, 'w-4 h-4') }} - {{ document.createdAt|date('d.m.Y') }} @@ -85,7 +78,7 @@ {% else %} - + Keine Daten... diff --git a/templates/admin/system/document/upload.html.twig b/templates/admin/system/document/upload.html.twig index 4c7f8a2..76a0b9f 100644 --- a/templates/admin/system/document/upload.html.twig +++ b/templates/admin/system/document/upload.html.twig @@ -6,9 +6,6 @@ 'accepted_files': 'application/pdf', } %}
-
- {{ form_row(form.global) }} -