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