コード例 #1
0
ファイル: Step.php プロジェクト: claroline/distribution
 /**
  * Wrapper to access ResourceNode accessibleUntil property.
  *
  * @return \DateTime
  */
 public function getAccessibleUntil()
 {
     if (!empty($this->activity)) {
         return $this->activity->getResourceNode()->getAccessibleUntil();
     }
     return;
 }
コード例 #2
0
ファイル: Step.php プロジェクト: stmolivier/PathBundle
 /**
  * Wrapper to access Activity name
  * @return string
  */
 public function getName()
 {
     if (!empty($this->activity)) {
         return $this->activity->getResourceNode()->getName();
     } else {
         return '';
     }
 }
コード例 #3
0
 /**
  * @EXT\Route(
  *     "/workspace/manager/activity/{activityId}/evaluations/page/{page}",
  *     name="claro_workspace_manager_activity_evaluations_show",
  *     defaults={"page"=1}
  * )
  * @EXT\ParamConverter("currentUser", options={"authenticatedUser" = true})
  * @EXT\ParamConverter(
  *      "activity",
  *      class="ClarolineCoreBundle:Resource\Activity",
  *      options={"id" = "activityId", "strictId" = true}
  * )
  * @EXT\Template("ClarolineCoreBundle:Tool/workspace/analytics:workspaceManagerActivityEvaluations.html.twig")
  *
  * Displays evaluations of an activity for each user of the workspace
  *
  * @return Response
  *
  * @throws \Exception
  */
 public function workspaceManagerActivityEvaluationsShowAction(User $currentUser, Activity $activity, $page)
 {
     $roleNames = $currentUser->getRoles();
     $workspace = $activity->getResourceNode()->getWorkspace();
     $isWorkspaceManager = $this->isWorkspaceManager($workspace, $roleNames);
     if (!$isWorkspaceManager) {
         throw new AccessDeniedException();
     }
     $resourceNode = $activity->getResourceNode();
     $activityParams = $activity->getParameters();
     $roles = $this->roleManager->getRolesWithRightsByResourceNode($resourceNode);
     $usersPager = $this->userManager->getUsersByRolesIncludingGroups($roles, $page);
     $users = array();
     foreach ($usersPager as $user) {
         $users[] = $user;
     }
     $allEvaluations = $this->activityManager->getEvaluationsByUsersAndActivityParams($users, $activityParams);
     $evaluations = array();
     foreach ($allEvaluations as $evaluation) {
         $user = $evaluation->getUser();
         $evaluations[$user->getId()] = $evaluation;
     }
     $nbSuccess = 0;
     foreach ($users as $user) {
         if (!isset($evaluations[$user->getId()])) {
             $evaluations[$user->getId()] = $this->activityManager->createBlankEvaluation($user, $activityParams);
         }
         $status = $evaluations[$user->getId()]->getStatus();
         if ($status === AbstractEvaluation::STATUS_COMPLETED || $status === AbstractEvaluation::STATUS_PASSED) {
             $nbSuccess++;
         }
     }
     $progress = count($users) > 0 ? round($nbSuccess / count($users), 2) * 100 : 0;
     $ruleScore = null;
     if ($activityParams->getEvaluationType() === AbstractEvaluation::TYPE_AUTOMATIC && count($activityParams->getRules()) > 0) {
         $rule = $activityParams->getRules()->first();
         $score = $rule->getResult();
         $scoreMax = $rule->getResultMax();
         if (!is_null($score)) {
             $ruleScore = $score;
             if (!is_null($scoreMax)) {
                 $ruleScore .= ' / ' . $scoreMax;
             }
         }
     }
     return array('analyticsTab' => 'activities', 'activity' => $activity, 'activityParams' => $activityParams, 'workspace' => $workspace, 'users' => $usersPager, 'page' => $page, 'evaluations' => $evaluations, 'ruleScore' => $ruleScore, 'progress' => $progress);
 }
コード例 #4
0
 /**
  * What does it do ? I can't remember. It's annoying.
  * Initialize the resource permissions of an activity.
  *
  * @param Activity $activity
  */
 public function initializePermissions(Activity $activity)
 {
     $primary = $activity->getPrimaryResource();
     $secondaries = [];
     $nodes = [];
     $token = $this->tokenStorage->getToken();
     $user = $token === null ? $activity->getResourceNode()->getCreator() : $token->getUser();
     if ($primary) {
         $nodes[] = $primary;
     }
     foreach ($activity->getParameters()->getSecondaryResources() as $res) {
         $secondaries[] = $res;
     }
     $nodes = array_merge($nodes, $secondaries);
     $nodesInitialized = [];
     foreach ($nodes as $node) {
         $isNodeCreator = $node->getCreator() === $user;
         $ws = $node->getWorkspace();
         $roleWsManager = $this->roleRepo->findManagerRole($ws);
         $isWsManager = $user->hasRole($roleWsManager);
         if ($isNodeCreator || $isWsManager) {
             $nodesInitialized[] = $node;
         }
     }
     $rolesInitialized = [];
     $rights = $activity->getResourceNode()->getRights();
     foreach ($rights as $right) {
         $role = $right->getRole();
         if (!strpos('_' . $role->getName(), 'ROLE_WS_MANAGER') && $right->getMask() & 1) {
             $rolesInitialized[] = $role;
         }
     }
     $this->rightsManager->initializePermissions($nodesInitialized, $rolesInitialized);
 }