denyAccessUnlessGranted('read', $part); return $this->render('Parts/info/show_part_info.html.twig', [ 'part' => $part, 'attachment_helper' => $attachmentHelper, 'pricedetail_helper' => $pricedetailHelper ] ); } /** * @Route("/part/{id}/edit", name="part_edit") * * @param Part $part * * @param Request $request * @param EntityManagerInterface $em * @return \Symfony\Component\HttpFoundation\Response */ public function edit(Part $part, Request $request, EntityManagerInterface $em, TranslatorInterface $translator, AttachmentHelper $attachmentHelper) { $this->denyAccessUnlessGranted('edit', $part); $form = $this->createForm(PartBaseType::class, $part); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { //Upload passed files $attachments = $form['attachments']; foreach ($attachments as $attachment) { /** @var $attachment FormInterface */ $attachmentHelper->upload( $attachment->getData(), $attachment['file']->getData()); } $em->persist($part); $em->flush(); $this->addFlash('info', $translator->trans('part.edited_flash')); //Reload form, so the SIUnitType entries use the new part unit $form = $this->createForm(PartBaseType::class, $part); } elseif ($form->isSubmitted() && ! $form->isValid()) { $this->addFlash('error', $translator->trans('part.edited_flash.invalid')); } return $this->render('Parts/edit/edit_part_info.html.twig', [ 'part' => $part, 'form' => $form->createView(), 'attachment_helper' => $attachmentHelper, ]); } /** * @Route("/part/new", name="part_new") * * @param Request $request * @param EntityManagerInterface $em * @param TranslatorInterface $translator * @return \Symfony\Component\HttpFoundation\Response */ public function new(Request $request, EntityManagerInterface $em, TranslatorInterface $translator, AttachmentHelper $attachmentHelper) { $new_part = new Part(); $this->denyAccessUnlessGranted('create', $new_part); $cid = $request->get('cid', 1); $category = $em->find(Category::class, $cid); $new_part->setCategory($category); $form = $this->createForm(PartBaseType::class, $new_part); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { //Upload passed files $attachments = $form['attachments']; foreach ($attachments as $attachment) { /** @var $attachment FormInterface */ $attachmentHelper->upload( $attachment->getData(), $attachment['file']->getData()); } $em->persist($new_part); $em->flush(); $this->addFlash('success', $translator->trans('part.created_flash')); return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]); } elseif ($form->isSubmitted() && ! $form->isValid()) { $this->addFlash('error', $translator->trans('part.created_flash.invalid')); } return $this->render('Parts/edit/new_part.html.twig', [ 'part' => $new_part, 'form' => $form->createView(), 'attachment_helper' => $attachmentHelper ]); } /** * @Route("/part/{id}/clone", name="part_clone") * @param Part $part * @param Request $request * @param EntityManagerInterface $em * @param TranslatorInterface $translator * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response */ public function clone(Part $part, Request $request, EntityManagerInterface $em, TranslatorInterface $translator) { /** @var Part $new_part */ $new_part = clone $part; $this->denyAccessUnlessGranted('create', $new_part); $form = $this->createForm(PartBaseType::class, $new_part); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em->persist($new_part); $em->flush(); $this->addFlash('success', $translator->trans('part.created_flash')); return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]); } return $this->render('Parts/edit/new_part.html.twig', [ 'part' => $new_part, 'form' => $form->createView(), ]); } }