public function load(ObjectManager $manager) { $exercisequestion = new ExerciseQuestion($this->getReference('exercise1'), $this->getReference('question1')); $exercisequestion->setOrdre(1); $manager->persist($exercisequestion); $manager->flush(); $exercisequestion = new ExerciseQuestion($this->getReference('exercise1'), $this->getReference('question2')); $exercisequestion->setOrdre(2); $manager->persist($exercisequestion); $manager->flush(); }
/** * To link a question with an exercise * * @access public * * @param UJM\ExoBundle\Entity\Exercise $exercise instance of Exercise * @param InteractionQCM or InteractionGraphic or ... $interX * */ public function setExerciseQuestion($exercise, $interX, $order = -1) { $eq = new ExerciseQuestion($exercise, $interX->getInteraction()->getQuestion()); if ($order == -1) { $dql = 'SELECT max(eq.ordre) FROM UJM\\ExoBundle\\Entity\\ExerciseQuestion eq ' . 'WHERE eq.exercise=' . $exercise->getId(); $query = $this->doctrine->getManager()->createQuery($dql); $maxOrdre = $query->getResult(); $eq->setOrdre((int) $maxOrdre[0][1] + 1); } else { $eq->setOrdre($order); } $this->om->persist($eq); $this->om->flush(); }
public function onCopy(CopyResourceEvent $event) { $em = $this->container->get('doctrine.orm.entity_manager'); $resource = $event->getResource(); $exerciseToCopy = $em->getRepository('UJMExoBundle:Exercise')->find($resource->getId()); $listQuestionsExoToCopy = $em->getRepository('UJMExoBundle:ExerciseQuestion')->findBy(array('exercise' => $exerciseToCopy->getId())); $newExercise = new Exercise(); $newExercise->setName($resource->getName()); $newExercise->setTitle($exerciseToCopy->getTitle()); $newExercise->setDescription($exerciseToCopy->getDescription()); $newExercise->setShuffle($exerciseToCopy->getShuffle()); $newExercise->setNbQuestion($exerciseToCopy->getNbQuestion()); $newExercise->setDateCreate($exerciseToCopy->getDateCreate()); $newExercise->setDuration($exerciseToCopy->getDuration()); $newExercise->setNbQuestionPage($exerciseToCopy->getNbQuestionPage()); $newExercise->setDoprint($exerciseToCopy->getDoprint()); $newExercise->setMaxAttempts($exerciseToCopy->getMaxAttempts()); $newExercise->setCorrectionMode($exerciseToCopy->getCorrectionMode()); $newExercise->setDateCorrection($exerciseToCopy->getDateCorrection()); $newExercise->setMarkMode($exerciseToCopy->getMarkMode()); $newExercise->setStartDate($exerciseToCopy->getStartDate()); $newExercise->setUseDateEnd($exerciseToCopy->getUseDateEnd()); $newExercise->setEndDate($exerciseToCopy->getEndDate()); $newExercise->setDispButtonInterrupt($exerciseToCopy->getDispButtonInterrupt()); $newExercise->setLockAttempt($exerciseToCopy->getLockAttempt()); $newExercise->setPublished($exerciseToCopy->getPublished()); $em->persist($newExercise); $em->flush(); foreach ($listQuestionsExoToCopy as $eq) { $questionToAdd = $em->getRepository('UJMExoBundle:Question')->find($eq->getQuestion()); $exerciseQuestion = new ExerciseQuestion($newExercise, $questionToAdd); $exerciseQuestion->setOrdre($eq->getOrdre()); $em->persist($exerciseQuestion); } $user = $this->container->get('security.token_storage')->getToken()->getUser(); $subscription = new Subscription($user, $newExercise); $subscription->setAdmin(true); $subscription->setCreator(true); $em->persist($subscription); $em->flush(); $event->setCopy($newExercise); $event->stopPropagation(); }
/** * To record the question's import. * * @access public * * @return \Symfony\Component\HttpFoundation\Response */ public function importValidateAction() { $request = $this->container->get('request'); if ($request->isXmlHttpRequest()) { $exoID = $request->request->get('exoID'); $pageGoNow = $request->request->get('pageGoNow'); $qid = $request->request->get('qid'); $em = $this->getDoctrine()->getManager(); $dql = 'SELECT max(eq.ordre) FROM UJM\\ExoBundle\\Entity\\ExerciseQuestion eq ' . 'WHERE eq.exercise=' . $exoID; $query = $em->createQuery($dql); $result = $query->getResult(); $maxOrdre = (int) $result[0][1] + 1; foreach ($qid as $q) { $question = $this->getDoctrine()->getManager()->getRepository('UJMExoBundle:Question')->find($q); if (count($question) > 0) { $exo = $em->getRepository('UJMExoBundle:Exercise')->find($exoID); $question = $em->getRepository('UJMExoBundle:Question')->find($q); $eq = new ExerciseQuestion($exo, $question); $eq->setOrdre((int) $maxOrdre); $em->persist($eq); $maxOrdre++; } } $em->flush(); $url = (string) $this->generateUrl('ujm_exercise_questions', array('id' => $exoID, 'pageNow' => $pageGoNow)); return new \Symfony\Component\HttpFoundation\Response($url); } else { return $this->redirect($this->generateUrl('ujm_exercise_import_question', array('exoID' => $exoID))); } }