Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/Entity/Repository/TrackExerciseRepository.php

115 lines
3.9 KiB

<?php
namespace Entity\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\NoResultException;
/**
* TrackExerciseRepository
*
*/
class TrackExerciseRepository extends EntityRepository
{
/**
* @param int $exerciseId
* @param int $courseId
* @param int $sessionId
* @return array
*/
public function getAverageScorePerForm($exerciseId, $courseId, $sessionId)
{
$qb = $this->createQueryBuilder('e');
$qb->select('AVG(e.exeResult) average, d.title')
->innerJoin('e.distribution', 'd')
->where('e.exeExoId = :exerciseId AND e.cId = :courseId AND e.sessionId = :sessionId AND e.status = :status')
->setParameters(
array(
'exerciseId' => $exerciseId,
'courseId' => $courseId,
'sessionId' => $sessionId,
'status' => '',
)
)
->groupBy('e.quizDistributionId');
return $qb->getQuery()->getArrayResult();
}
/**
* @param int $exerciseId
* @param int $courseId
* @param int $sessionId
* @param int $distributionId
* @return array
*/
public function getResults($exerciseId, $courseId, $sessionId, $distributionId)
{
$qb = $this->createQueryBuilder('e');
$qb->select('e.exeId, e.exeResult')
->where('e.exeExoId = :exerciseId AND e.cId = :courseId AND e.sessionId = :sessionId AND e.status = :status')
->andWhere('e.quizDistributionId = :distributionId')
->setParameters(
array(
'exerciseId' => $exerciseId,
'courseId' => $courseId,
'sessionId' => $sessionId,
'status' => '',
'distributionId' => $distributionId
)
);
$results = $qb->getQuery()->getArrayResult();
$results = \array_column($results, 'exeResult', 'exeId');
return $results;
}
/**
* @param int $exerciseId
* @param int $courseId
* @param int $distributionId
* @return array
*/
public function getResultsWithNoSession($exerciseId, $courseId, $distributionId)
{
$qb = $this->createQueryBuilder('e');
$qb->select('e.exeId, e.exeResult')
->where('e.exeExoId = :exerciseId AND e.cId = :courseId AND e.status = :status')
->andWhere('e.quizDistributionId = :distributionId')
->setParameters(
array(
'exerciseId' => $exerciseId,
'courseId' => $courseId,
'status' => '',
'distributionId' => $distributionId
)
);
$results = $qb->getQuery()->getArrayResult();
$results = \array_column($results, 'exeResult', 'exeId');
return $results;
}
/*public function getResultsPerGlobalCategory($exerciseId, $courseId, $sessionId, $distributionId, $globalCategory)
{
$qb = $this->createQueryBuilder('e');
$qb->select('e.exeId')
->innerJoin('e.exercise', 'ex')
->where('e.exeExoId = :exerciseId AND e.cId = :courseId AND e.sessionId = :sessionId AND e.status = :status')
->andWhere('e.quizDistributionId = :distributionId')
->setParameters(
array(
'e.exerciseId' => $exerciseId,
'e.courseId' => $courseId,
'e.sessionId' => $sessionId,
'e.status' => '',
'e.distributionId' => $distributionId,
'ex.globalCategoryId' => $globalCategory
)
);
$results = $qb->getQuery()->getArrayResult();
$results = \array_column($results, 'exeId');
return $results;
}*/
}