public function findDescendantSearchedCoursesByCursus(Cursus $cursus, $search = '', $orderedBy = 'title', $order = 'ASC', $executeQuery = true) { $dql = "\n SELECT c\n FROM Claroline\\CursusBundle\\Entity\\Course c\n WHERE (\n UPPER(c.title) LIKE :search\n OR UPPER(c.code) LIKE :search\n )\n AND EXISTS (\n SELECT cc\n FROM Claroline\\CursusBundle\\Entity\\Cursus cc\n WHERE cc.course = c\n AND cc.root = :root\n AND cc.lft >= :left\n AND cc.rgt <= :right\n )\n ORDER BY c.{$orderedBy} {$order}\n "; $query = $this->_em->createQuery($dql); $query->setParameter('root', $cursus->getRoot()); $query->setParameter('left', $cursus->getLft()); $query->setParameter('right', $cursus->getRgt()); $upperSearch = strtoupper($search); $query->setParameter('search', "%{$upperSearch}%"); return $executeQuery ? $query->getResult() : $query; }
public function __construct(Cursus $cursus, User $user) { $details = []; $details['username'] = $user->getUsername(); $details['firsName'] = $user->getFirstName(); $details['lastName'] = $user->getLastName(); $details['cursusId'] = $cursus->getId(); $details['cursusTitle'] = $cursus->getTitle(); $details['cursusCode'] = $cursus->getCode(); parent::__construct(self::ACTION, $details, $user); }
public function cursus($name, Cursus $parent = null, Course $course = null, $order = 0, $blocking = false) { $cursus = new Cursus(); $cursus->setTitle($name); $cursus->setCode($name); $cursus->setDescription($name); $cursus->setParent($parent); $cursus->setCourse($course); $cursus->setCursusOrder($order); $cursus->setBlocking($blocking); $this->om->persist($cursus); return $cursus; }
public function findDescendantHierarchyByCursus(Cursus $cursus, $orderedBy = 'cursusOrder', $order = 'ASC', $executeQuery = true) { $dql = "\n SELECT DISTINCT c\n FROM Claroline\\CursusBundle\\Entity\\Cursus c\n WHERE c.root = :root\n AND c.lft >= :left\n AND c.rgt <= :right\n ORDER BY c.{$orderedBy} {$order}\n "; $query = $this->_em->createQuery($dql); $query->setParameter('root', $cursus->getRoot()); $query->setParameter('left', $cursus->getLft()); $query->setParameter('right', $cursus->getRgt()); return $executeQuery ? $query->getResult() : $query; }
/** * @EXT\Route( * "cursus/{cursus}/order/update/with/cursus/{otherCursus}/mode/{mode}", * name="claro_cursus_update_order", * options={"expose"=true} * ) * @EXT\ParamConverter("authenticatedUser", options={"authenticatedUser" = true}) */ public function updateCursusOrderAction(Cursus $cursus, Cursus $otherCursus, $mode) { $this->checkToolAccess(); if ($cursus->getParent() === $otherCursus->getParent()) { $newOrder = $otherCursus->getCursusOrder(); if ($mode === 'next') { $this->cursusManager->updateCursusOrder($cursus, $newOrder); } else { $cursus->setCursusOrder($newOrder + 1); $this->cursusManager->persistCursus($cursus); } return new JsonResponse('success', 204); } else { return new JsonResponse('Forbidden', 403); } }
private function importCursusChildren(array $parent, array $children, array $courses, array $codes, array &$createdCursus, &$index) { if (isset($parent['id']) && isset($children[$parent['id']])) { foreach ($children[$parent['id']] as $child) { $cursus = new Cursus(); $cursus->setTitle($child['title']); $cursus->setDescription($child['description']); $cursus->setBlocking($child['blocking']); $cursus->setCursusOrder($child['cursus_order']); $cursus->setDetails($child['details']); if (isset($createdCursus[$parent['id']])) { $cursus->setParent($createdCursus[$parent['id']]); } if (!empty($child['course']) && isset($courses[$child['course']])) { $cursus->setCourse($courses[$child['course']]); } if (!empty($child['code'])) { $code = $this->generateValidCode($child['code'], $codes); $cursus->setCode($code); } $this->om->persist($cursus); $createdCursus[$child['id']] = $cursus; $index++; if ($index % 50 === 0) { $this->om->forceFlush(); } if (isset($children[$child['id']])) { $this->importCursusChildren($child, $children, $courses, $codes, $createdCursus, $index); } } } }
/** * @EXT\Route( * "/api/cursus/{cursus}/edit", * name="api_put_cursus_edition", * options = {"expose"=true} * ) * @EXT\ParamConverter("user", converter="current_user") * * Edits a cursus * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function putCursusEditionAction(Cursus $cursus) { $cursusDatas = $this->request->request->get('cursusDatas', false); $cursus->setTitle($cursusDatas['title']); $cursus->setCode($cursusDatas['code']); $cursus->setDescription($cursusDatas['description']); $cursus->setBlocking((bool) $cursusDatas['blocking']); $color = $cursusDatas['color']; $details = ['color' => $color]; $cursus->setDetails($details); if ($cursusDatas['workspace']) { $worskpace = $this->workspaceManager->getWorkspaceById($cursusDatas['workspace']); $cursus->setWorkspace($worskpace); } if ($this->request->files->get('cursusDatas')['icon']) { $icon = $this->cursusManager->saveIcon($this->request->files->get('cursusDatas')['icon']); $cursus->setIcon($icon); } $this->cursusManager->persistCursus($cursus); $event = new LogCursusEditEvent($cursus); $this->eventDispatcher->dispatch('log', $event); $serializedCursus = $this->serializer->serialize($cursus, 'json', SerializationContext::create()->setGroups(['api_workspace_min'])); return new JsonResponse($serializedCursus, 200); }
public function __construct(Cursus $cursus) { $details = []; $details['id'] = $cursus->getId(); $details['title'] = $cursus->getTitle(); $details['code'] = $cursus->getCode(); $details['blocking'] = $cursus->isBlocking(); $details['details'] = $cursus->getDetails(); $details['root'] = $cursus->getRoot(); $details['lvl'] = $cursus->getLvl(); $details['lft'] = $cursus->getLft(); $details['rgt'] = $cursus->getRgt(); $parent = $cursus->getParent(); $course = $cursus->getCourse(); $workspace = $cursus->getWorkspace(); if (!is_null($parent)) { $details['parentId'] = $parent->getId(); $details['parentTitle'] = $parent->getTitle(); $details['parentCode'] = $parent->getCode(); } if (!is_null($course)) { $details['courseId'] = $course->getId(); $details['courseTitle'] = $course->getTitle(); $details['courseCode'] = $course->getCode(); } if (!is_null($workspace)) { $details['workspaceId'] = $workspace->getId(); $details['workspaceName'] = $workspace->getName(); $details['workspaceCode'] = $workspace->getCode(); $details['workspaceGuid'] = $workspace->getGuid(); } parent::__construct(self::ACTION, $details); }