Ejemplo n.º 1
0
 public function postUpdate()
 {
     /** @var \Claroline\CoreBundle\Repository\UserRepository $userRepository */
     $userRepository = $this->entityManager->getRepository('ClarolineCoreBundle:User');
     /** @var \Doctrine\ORM\Query $usersQuery */
     $usersQuery = $userRepository->findAllEnabledUsers(false);
     $users = $usersQuery->iterate();
     /** @var \Claroline\CoreBundle\Repository\OrderedToolRepository $orderedToolRepo */
     $orderedToolRepo = $this->entityManager->getRepository('ClarolineCoreBundle:Tool\\OrderedTool');
     $toolName = 'my_portfolios';
     $tool = $this->entityManager->getRepository('ClarolineCoreBundle:Tool\\Tool')->findOneByName($toolName);
     if (null === $tool) {
         $tool = new Tool();
         $tool->setDisplayableInWorkspace(false)->setName($toolName)->setClass('list-alt');
         $this->entityManager->persist($tool);
         $this->entityManager->flush();
     }
     $countUser = $userRepository->countAllEnabledUsers();
     $index = 0;
     $this->log(sprintf('%d ordered tools to add for users - %s', $countUser, date('Y/m/d H:i:s')));
     foreach ($users as $row) {
         $user = $row[0];
         /** @var \Claroline\CoreBundle\Entity\Tool\OrderedTool $orderedTools */
         $orderedTool = $orderedToolRepo->findOneBy(['tool' => $tool, 'user' => $user, 'type' => 1]);
         if (null === $orderedTool) {
             $orderedTool = new OrderedTool();
             $orderedTool->setName($toolName);
             $orderedTool->setTool($tool);
             $orderedTool->setUser($user);
             $orderedTool->setVisibleInDesktop(true);
             $orderedTool->setOrder(1);
             $orderedTool->setType(1);
             $this->entityManager->persist($orderedTool);
             ++$index;
             if ($index % 200 === 0) {
                 $this->entityManager->flush();
                 $this->entityManager->clear($orderedTool);
                 $this->log(sprintf('    %d ordered tools added - %s', 200, date('Y/m/d H:i:s')));
             }
         }
     }
     if ($index % 200 !== 0) {
         $this->entityManager->flush();
         $this->entityManager->clear();
         $this->log(sprintf('    %d ordered tools added - %s', $index % 200, date('Y/m/d H:i:s')));
     }
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function load(ObjectManager $om)
 {
     $messagePlugin = $this->getPluginFromIdentityMapOrScheduledForInsert($om, 'Claroline', 'MessageBundle');
     if (!is_null($messagePlugin)) {
         $toolRepo = $om->getRepository('ClarolineCoreBundle:Tool\\Tool');
         $messageTool = $toolRepo->findOneBy(array('name' => 'message'));
         if (is_null($messageTool)) {
             $messageTool = new Tool();
             $messageTool->setName('message');
             $messageTool->setClass('envelope');
             $messageTool->setDisplayableInWorkspace(false);
             $messageTool->setDisplayableInDesktop(true);
             $messageTool->setPlugin($messagePlugin);
             $om->persist($messageTool);
             $adminMessageOt = new OrderedTool();
             $adminMessageOt->setName('message');
             $adminMessageOt->setTool($messageTool);
             $adminMessageOt->setLocked(false);
             $adminMessageOt->setOrder(1);
             $adminMessageOt->setType(0);
             $adminMessageOt->setVisibleInDesktop(true);
             $om->persist($adminMessageOt);
             $userRepo = $om->getRepository('ClarolineCoreBundle:User');
             $users = $userRepo->findAllEnabledUsers();
             foreach ($users as $user) {
                 $messageOt = new OrderedTool();
                 $messageOt->setName('message');
                 $messageOt->setTool($messageTool);
                 $messageOt->setUser($user);
                 $messageOt->setLocked(false);
                 $messageOt->setOrder(1);
                 $messageOt->setType(0);
                 $messageOt->setVisibleInDesktop(true);
                 $om->persist($messageOt);
             }
         } else {
             $messageTool->setPlugin($messagePlugin);
             $om->persist($messageTool);
         }
         $om->flush();
     }
 }
Ejemplo n.º 3
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();
 }
Ejemplo n.º 4
0
 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);
 }