Example #1
0
 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();
 }