/** * @EXT\Route( * "/{workspaceId}/activity/parameters/{activityParametersId}/user/{userId}/past/evaluations/show/{displayType}", * name="claro_workspace_activities_past_evaluations_show", * options = {"expose": true} * ) * @EXT\ParamConverter("currentUser", options={"authenticatedUser" = true}) * @EXT\ParamConverter( * "user", * class="ClarolineCoreBundle:User", * options={"id" = "userId", "strictId" = true} * ) * @EXT\ParamConverter( * "workspace", * class="ClarolineCoreBundle:Workspace\Workspace", * options={"id" = "workspaceId", "strictId" = true} * ) * @EXT\ParamConverter( * "activityParameters", * class="ClarolineCoreBundle:Activity\ActivityParameters", * options={"id" = "activityParametersId", "strictId" = true} * ) * @EXT\Template("ClarolineCoreBundle:Tool/workspace/analytics:workspaceActivitiesPastEvaluations.html.twig") * * Displays past evaluations of one activity for one user * * @return Response * * @throws \Exception */ public function workspaceActivitiesPastEvaluationsShowAction(User $currentUser, User $user, Workspace $workspace, ActivityParameters $activityParameters, $displayType) { if (!$this->authorization->isGranted('analytics', $workspace)) { throw new AccessDeniedException(); } $roleNames = $currentUser->getRoles(); $isWorkspaceManager = $this->isWorkspaceManager($workspace, $roleNames); if (!$isWorkspaceManager && $currentUser->getId() !== $user->getId()) { throw new AccessDeniedException(); } $activity = $activityParameters->getActivity(); $ruleScore = null; $isResultVisible = false; if ($activityParameters->getEvaluationType() === AbstractEvaluation::TYPE_AUTOMATIC && count($activityParameters->getRules()) > 0) { $rule = $activityParameters->getRules()->first(); $score = $rule->getResult(); $scoreMax = $rule->getResultMax(); if (!is_null($score)) { $ruleScore = $score; if (!is_null($scoreMax)) { $ruleScore .= ' / ' . $scoreMax; } $ruleResultVisible = $rule->getIsResultVisible(); $isResultVisible = !empty($ruleResultVisible); } } $pastEvals = $this->activityManager->getPastEvaluationsByUserAndActivityParams($user, $activityParameters); return array('user' => $user, 'activity' => $activity, 'pastEvals' => $pastEvals, 'displayType' => $displayType, 'isWorkspaceManager' => $isWorkspaceManager, 'ruleScore' => $ruleScore, 'isResultVisible' => $isResultVisible); }
/** * Creates an empty activity evaluation for a user, so that an evaluation * is available for display and edition even when the user hasn't actually * performed the activity. * * @param User $user * @param ActivityParameters $activityParams * * @return Evaluation */ public function createBlankEvaluation(User $user, ActivityParameters $activityParams) { $evaluationType = $activityParams->getEvaluationType(); $status = null; $nbAttempts = null; if ($evaluationType === AbstractEvaluation::TYPE_AUTOMATIC) { $status = AbstractEvaluation::STATUS_NOT_ATTEMPTED; $nbAttempts = 0; } $evaluation = new Evaluation(); $evaluation->setUser($user); $evaluation->setActivityParameters($activityParams); $evaluation->setType($evaluationType); $evaluation->setStatus($status); $evaluation->setAttemptsCount($nbAttempts); $this->om->persist($evaluation); $this->om->flush(); return $evaluation; }