Esempio n. 1
0
 public function createMyBadgeWorkspaceTool()
 {
     $myBadgesToolName = 'my_badges';
     $myBadgesTool = $this->objectManager->getRepository('ClarolineCoreBundle:Tool\\Tool')->findOneByName($myBadgesToolName);
     if (null === $myBadgesTool) {
         $this->log('Creating new tool for displaying user badges in workspace...');
         $newBadgeTool = new Tool();
         $newBadgeTool->setName($myBadgesToolName)->setClass('icon-trophy')->setIsWorkspaceRequired(false)->setIsDesktopRequired(false)->setDisplayableInWorkspace(true)->setDisplayableInDesktop(false)->setExportable(false)->setIsConfigurableInWorkspace(false)->setIsConfigurableInDesktop(false)->setIsLockedForAdmin(false)->setIsAnonymousExcluded(true);
         $this->objectManager->persist($newBadgeTool);
         $this->log('New tool for displaying user badges in workspace created.');
         $this->objectManager->flush();
     }
 }
Esempio n. 2
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')));
     }
 }
Esempio n. 3
0
 private function createWorkspaceLearningOutcomesTool()
 {
     $this->log('Creating workspace learning outcomes tool...');
     $learningOutcomesTool = $this->em->getRepository('ClarolineCoreBundle:Tool\\Tool')->findOneBy(array('name' => 'learning_outcomes'));
     if (!$learningOutcomesTool) {
         $wsTool = new Tool();
         $wsTool->setName('learning_outcomes');
         $wsTool->setClass('graduation-cap');
         $wsTool->setIsWorkspaceRequired(true);
         $wsTool->setIsDesktopRequired(false);
         $wsTool->setDisplayableInWorkspace(true);
         $wsTool->setDisplayableInDesktop(false);
         $wsTool->setExportable(false);
         $wsTool->setIsConfigurableInWorkspace(false);
         $wsTool->setIsConfigurableInDesktop(false);
         $this->em->persist($wsTool);
     }
 }
Esempio n. 4
0
 private function createMessageDesktopTool()
 {
     $this->log('Creating message tool...');
     $tool = $this->toolManager->getOneToolByName('message');
     if (is_null($tool)) {
         $tool = new Tool();
         $tool->setName('message');
         $tool->setClass('envelope');
         $tool->setDisplayableInWorkspace(false);
         $tool->setDisplayableInDesktop(true);
         $this->toolManager->create($tool);
         $this->createMessageDesktopOrderedTools($tool);
     }
 }
 /**
  * {@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();
     }
 }
Esempio n. 6
0
 /**
  * @param array  $toolConfiguration
  * @param Plugin $plugin
  * @param Tool   $tool
  */
 private function persistTool($toolConfiguration, Plugin $plugin, Tool $tool)
 {
     $tool->setName($toolConfiguration['name']);
     $tool->setDisplayableInDesktop($toolConfiguration['is_displayable_in_desktop']);
     $tool->setDisplayableInWorkspace($toolConfiguration['is_displayable_in_workspace']);
     $tool->setIsDesktopRequired(false);
     $tool->setIsWorkspaceRequired(false);
     $tool->setPlugin($plugin);
     $tool->setExportable($toolConfiguration['is_exportable']);
     $tool->setIsConfigurableInWorkspace($toolConfiguration['is_configurable_in_workspace']);
     $tool->setIsConfigurableInDesktop($toolConfiguration['is_configurable_in_desktop']);
     $tool->setIsLockedForAdmin($toolConfiguration['is_locked_for_admin']);
     $tool->setIsAnonymousExcluded($toolConfiguration['is_anonymous_excluded']);
     if (isset($toolConfiguration['class'])) {
         $tool->setClass("{$toolConfiguration['class']}");
     } else {
         $tool->setClass("wrench");
     }
     $this->toolManager->create($tool);
     $this->persistCustomToolRights($toolConfiguration['tool_rights'], $tool);
 }
Esempio n. 7
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();
 }
 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(
  *     "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());
 }
 /**
  * @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());
 }
Esempio n. 11
0
 private function addMyContactsTool()
 {
     $this->log('Installing my_contacts tool...');
     $om = $this->container->get('claroline.persistence.object_manager');
     $toolManager = $this->container->get('claroline.manager.tool_manager');
     $myContactsTool = $toolManager->getOneToolByName('my_contacts');
     if (is_null($myContactsTool)) {
         $myContactsTool = new Tool();
         $myContactsTool->setName('my_contacts');
         $myContactsTool->setClass('users');
         $myContactsTool->setIsWorkspaceRequired(false);
         $myContactsTool->setIsDesktopRequired(false);
         $myContactsTool->setDisplayableInWorkspace(false);
         $myContactsTool->setDisplayableInDesktop(true);
         $myContactsTool->setExportable(false);
         $myContactsTool->setIsConfigurableInWorkspace(false);
         $myContactsTool->setIsConfigurableInDesktop(false);
         $myContactsTool->setIsLockedForAdmin(false);
         $myContactsTool->setIsAnonymousExcluded(true);
         $toolManager->create($myContactsTool);
         $myContactsOt = new OrderedTool();
         $myContactsOt->setTool($myContactsTool);
         $myContactsOt->setType(0);
         $myContactsOt->setOrder(10);
         $myContactsOt->setLocked(false);
         $myContactsOt->setName($myContactsTool->getName());
         $myContactsOt->setVisibleInDesktop(true);
         $om->persist($myContactsOt);
         $om->flush();
     }
 }
Esempio n. 12
0
 private function addAnalyticsWorkspaceTool()
 {
     $decoder = $this->om->getRepository('ClarolineCoreBundle:Tool\\Tool')->findOneBy(array('name' => 'analytics'));
     if (!$decoder) {
         $wsTool = new Tool();
         $wsTool->setName('analytics');
         $wsTool->setClass('icon-bar-chart');
         $wsTool->setIsWorkspaceRequired(false);
         $wsTool->setIsDesktopRequired(false);
         $wsTool->setDisplayableInWorkspace(true);
         $wsTool->setDisplayableInDesktop(false);
         $wsTool->setExportable(false);
         $wsTool->setIsConfigurableInWorkspace(false);
         $wsTool->setIsConfigurableInDesktop(false);
         $this->om->persist($wsTool);
         $this->log("Adding 'analytics' tool in workspaces");
     } else {
         $this->log("The 'analytics' tool already exists");
     }
     $this->om->flush();
 }
Esempio n. 13
0
 private function updateCompetenceTools()
 {
     $this->log('Creating admin referential competence tools...');
     $existingTool = $this->om->getRepository('ClarolineCoreBundle:Tool\\AdminTool')->findByName('competence_referencial');
     if (count($existingTool) === 0) {
         $competenceReferencial = new AdminTool();
         $competenceReferencial->setName('competence_referencial');
         $competenceReferencial->setClass('graduation-cap');
         $this->om->persist($competenceReferencial);
     }
     $existingTool = $this->om->getRepository('ClarolineCoreBundle:Tool\\AdminTool')->findByName('competence_subscription');
     if (count($existingTool) === 0) {
         $competenceSubscription = new AdminTool();
         $competenceSubscription->setName('competence_subscription');
         $competenceSubscription->setClass('code-fork');
         $this->om->persist($competenceSubscription);
     }
     $existingTool = $this->om->getRepository('ClarolineCoreBundle:Tool\\Tool')->findOneBy(array('name' => 'learning_profil'));
     if (!$existingTool) {
         $wsTool = new Tool();
         $wsTool->setName('learning_profil');
         $wsTool->setClass('graduation-cap');
         $wsTool->setIsWorkspaceRequired(true);
         $wsTool->setIsDesktopRequired(false);
         $wsTool->setDisplayableInWorkspace(true);
         $wsTool->setDisplayableInDesktop(false);
         $wsTool->setExportable(false);
         $wsTool->setIsConfigurableInWorkspace(false);
         $wsTool->setIsConfigurableInDesktop(false);
         $this->om->persist($wsTool);
     }
     $this->om->flush();
     $this->log('competence tools created ...');
 }
Esempio n. 14
0
 public function load(ObjectManager $manager)
 {
     $tools = array(array('home', 'home', false, false, true, true, true, false, false, false, false), array('parameters', 'cogs', false, false, true, true, false, false, false, true, true), array('resource_manager', 'folder-open', false, false, true, true, true, true, false, false, false), array('logs', 'list', false, false, true, false, false, false, false, false, true), array('analytics', 'bar-chart-o', false, false, true, false, false, false, false, false, true), array('users', 'user', true, false, true, false, false, false, false, false, true), array('my_contacts', 'users', false, false, false, true, false, false, false, false, true));
     foreach ($tools as $tool) {
         $entity = new Tool();
         $entity->setName($tool[0]);
         $entity->setClass($tool[1]);
         $entity->setIsWorkspaceRequired($tool[2]);
         $entity->setIsDesktopRequired($tool[3]);
         $entity->setDisplayableInWorkspace($tool[4]);
         $entity->setDisplayableInDesktop($tool[5]);
         $entity->setExportable($tool[6]);
         $entity->setIsConfigurableInWorkspace($tool[7]);
         $entity->setIsConfigurableInDesktop($tool[8]);
         $entity->setIsLockedForAdmin($tool[9]);
         $entity->setIsAnonymousExcluded($tool[10]);
         $manager->persist($entity);
         $this->createToolMaskDecoders($manager, $entity);
         $this->createPersonalWorkspaceToolConfig($manager, $entity);
         if ($tool[0] === 'parameters' || $tool[0] === 'resource_manager' || $tool[0] === 'my_contacts') {
             $this->createAdminOrderedTool($manager, $entity);
         }
     }
     $this->updatePersonalWorkspaceResourceRightsConfig($manager);
     $manager->flush();
 }