public function createOrderedToolByToolForAllUsers(LoggerInterface $logger, Tool $tool, $type = 0, $isVisible = true) { $toolName = $tool->getName(); $usersQuery = $this->userRepo->findAllEnabledUsers(false); $users = $usersQuery->iterate(); $this->om->startFlushSuite(); $index = 0; $countUser = $this->userRepo->countAllEnabledUsers(); $logger->info(sprintf("%d users to check tools on.", $countUser)); foreach ($users as $row) { $user = $row[0]; /** @var \Claroline\CoreBundle\Entity\Tool\OrderedTool[] $orderedTools */ $orderedTools = $this->orderedToolRepo->findOrderedToolsByToolAndUser($tool, $user, $type); if (count($orderedTools) === 0) { $orderedTool = new OrderedTool(); $orderedTool->setName($toolName); $orderedTool->setTool($tool); $orderedTool->setUser($user); $orderedTool->setVisibleInDesktop($isVisible); $orderedTool->setOrder(1); $orderedTool->setType($type); $this->om->persist($orderedTool); $index++; if ($index % 100 === 0) { $this->om->forceFlush(); $this->om->clear($orderedTool); $logger->info(sprintf(" %d users checked.", 100)); } } else { $orderedTool = $orderedTools[0]; if ($orderedTool->isVisibleInDesktop() !== $isVisible) { $orderedTool->setVisibleInDesktop($isVisible); $this->om->persist($orderedTool); $index++; if ($index % 100 === 0) { $this->om->forceFlush(); $this->om->clear($orderedTool); $logger->info(sprintf(" %d users checked.", 100)); } } } } if ($index % 100 !== 0) { $logger->info(sprintf(" %d users checked.", 100 - $index)); } $this->om->endFlushSuite(); }
/** * @EXT\Route( * "tool/{tool}/config", * name="claro_desktop_tool_config" * ) * * @param Tool $tool * @return Response */ public function openDesktopToolConfig(Tool $tool) { $event = $this->ed->dispatch(strtolower('configure_desktop_tool_' . $tool->getName()), 'ConfigureDesktopTool', array($tool)); return new Response($event->getContent()); }
protected static function createDesktopTool(Tool $tool, User $user, $position) { $orderedTool = new OrderedTool(); $orderedTool->setName($tool->getName()); $orderedTool->setTool($tool); $orderedTool->setUser($user); $orderedTool->setOrder($position); self::create("orderedTool/{$user->getUsername()}-{$tool->getName()}", $orderedTool); }
/** * @EXT\Route( * "/{workspace}/tool/{tool}/config", * name="claro_workspace_tool_config" * ) * * @param Workspace $workspace * @param Tool $tool * * @return Response */ public function openWorkspaceToolConfig(Workspace $workspace, Tool $tool) { $this->checkAccess($workspace); $event = $this->eventDispatcher->dispatch(strtolower('configure_workspace_tool_' . $tool->getName()), 'ConfigureWorkspaceTool', array($tool, $workspace)); return new Response($event->getContent()); }