public function copySurveyAction(Request $request, Survey $survey) { $user = $this->get('security.token_storage')->getToken()->getUser(); $em = $this->getDoctrine()->getEntityManager(); $new_survey = new Survey(); // Check if user submitted a form with a survey $form = $this->createForm(new SurveyType(), $new_survey); $form->handleRequest($request); if ($form->isSubmitted()) { if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($new_survey); $em->flush(); return $this->redirect($this->generateUrl('surveys')); } else { return $this->render('survey/survey_create.html.twig', array('form' => $form->createView())); } } // Nothing was submitted, this is the first request. Make a new copy of the requested survey $new_survey = clone $survey; $new_survey->setSemester($em->getRepository('AppBundle:Semester')->findCurrentSemesterByDepartment($user->getFieldOfStudy()->getDepartment())); foreach ($survey->getSurveyQuestions() as $q) { $new_q = clone $q; foreach ($q->getAlternatives() as $a) { $new_a = clone $a; $new_q->addAlternative($new_a); $new_a->setSurveyQuestion($new_q); } $new_survey->addSurveyQuestion($new_q); } $form = $this->createForm(new SurveyType(), $new_survey); return $this->render('survey/survey_create.html.twig', array('form' => $form->createView())); }
/** * @param Survey $survey * @return \Symfony\Component\Form\Form */ private function createDeleteForm(Survey $survey) { return $this->createFormBuilder()->setAction($this->generateUrl('admin_survey_delete', ['id' => $survey->getId()]))->setMethod('DELETE')->add('submit', SubmitType::class, ['label' => ' ', 'attr' => ['class' => 'btn btn-minier btn-danger ace-icon fa fa-trash-o bigger-115']])->getForm(); }