private function createCorrection($grade = null, $valid = true, $finished = true) { $correction = new Correction(); $correction->setFinished($finished); $correction->setValid($valid); $correction->setTotalGrade($grade); }
/** * @Route( * "/{resourceId}/remove/report/{dropId}/{correctionId}/{invalidate}", * name="innova_collecticiel_remove_report", * requirements={"resourceId" = "\d+", "dropId" = "\d+", "correctionId" = "\d+", "invalidate" = "0|1"} * ) * @ParamConverter("dropzone", class="InnovaCollecticielBundle:Dropzone", options={"id" = "resourceId"}) * @ParamConverter("drop", class="InnovaCollecticielBundle:Drop", options={"id" = "dropId"}) * @ParamConverter("correction", class="InnovaCollecticielBundle:Correction", options={"id" = "correctionId"}) * @Template() */ public function removeReportAction(Dropzone $dropzone, Drop $drop, Correction $correction, $invalidate) { $this->get('innova.manager.dropzone_voter')->isAllowToOpen($dropzone); $this->get('innova.manager.dropzone_voter')->isAllowToEdit($dropzone); $em = $this->getDoctrine()->getManager(); $correction->setReporter(false); if ($invalidate === 1) { $correction->setValid(false); } $em->persist($correction); $em->flush(); $correctionRepo = $this->getDoctrine()->getRepository('InnovaCollecticielBundle:Correction'); if ($correctionRepo->countReporter($dropzone, $drop) === 0) { $drop->setReported(false); $em->persist($drop); $em->flush(); } $event = new LogCorrectionUpdateEvent($dropzone, $drop, $correction); $this->dispatch($event); return $this->redirect($this->generateUrl('innova_collecticiel_drops_detail', ['resourceId' => $dropzone->getId(), 'dropId' => $drop->getId()])); }
/** * @Route( * "/{resourceId}/drops/detail/correction/validation/{value}/{correctionId}", * name="innova_collecticiel_drops_detail_correction_validation", * requirements={"resourceId" = "\d+", "correctionId" = "\d+", "value" = "no|yes"}, * defaults={"routeParam"="default"} * ) * @Route( * "/{resourceId}/drops/detail/correction/validation/byUser/{value}/{correctionId}", * name="innova_collecticiel_drops_detail_correction_validation_by_user", * requirements={"resourceId" = "\d+", "correctionId" = "\d+", "value" = "no|yes"}, * defaults={"routeParam"="byUser"} * ) * @ParamConverter("dropzone", class="InnovaCollecticielBundle:Dropzone", options={"id" = "resourceId"}) * @ParamConverter("correction", class="InnovaCollecticielBundle:Correction", options={"id" = "correctionId"}) * @Template() */ public function setCorrectionValidationAction(Dropzone $dropzone, Correction $correction, $value, $routeParam) { $this->get('innova.manager.dropzone_voter')->isAllowToOpen($dropzone); $this->get('innova.manager.dropzone_voter')->isAllowToEdit($dropzone); $em = $this->getDoctrine()->getManager(); if ($value == 'yes') { $correction->setValid(true); $correction->setFinished(true); } else { $correction->setValid(false); } $em->persist($correction); $em->flush(); $event = new LogCorrectionValidationChangeEvent($dropzone, $correction->getDrop(), $correction); $this->dispatch($event); //Notify user his copy has an available note $this->checkUserGradeAvailableByDrop($correction->getDrop()); if ($routeParam == 'default') { return $this->redirect($this->generateUrl('innova_collecticiel_drops_detail', array('resourceId' => $dropzone->getId(), 'dropId' => $correction->getDrop()->getId()))); } else { if ($routeParam == "byUser") { return $this->redirect($this->generateUrl('innova_collecticiel_examiner_corrections', array('resourceId' => $dropzone->getId(), 'userId' => $correction->getUser()->getId()))); } } }