Internal: Fix score calculation across reports and interfaces - refs BT#22096

pull/5853/head
Christian Beeznest 11 months ago
parent 9b1f1e6b69
commit 248d6fd0a6
  1. 6
      public/main/inc/lib/TrackingCourseLog.php
  2. 4
      public/main/inc/lib/exercise.lib.php
  3. 9
      public/main/inc/lib/tracking.lib.php
  4. 4
      src/CourseBundle/Repository/CQuizRepository.php

@ -664,11 +664,7 @@ class TrackingCourseLog
$totalSurveys = 0;
$totalExercises = ExerciseLib::get_all_exercises(
$courseInfo,
$sessionId,
false,
null,
false,
3
$sessionId
);
if (empty($sessionId)) {

@ -3000,7 +3000,9 @@ EOT;
$repo = Container::getQuizRepository();
return $repo->findAllByCourse($course, $session, (string) $search, $active);
return $repo->findAllByCourse($course, $session, (string) $search, $active)
->getQuery()
->getResult();
}
/**

@ -2640,11 +2640,6 @@ class Tracking
$sessionId
) {
$result = 0;
if ($exercise_list instanceof \Doctrine\ORM\QueryBuilder) {
$exercise_list = $exercise_list->getQuery()->getResult();
}
if (!empty($exercise_list) && (is_array($exercise_list) || $exercise_list instanceof \Countable)) {
foreach ($exercise_list as $exercise_data) {
$exercise_id = $exercise_data->getIid();
@ -2652,7 +2647,8 @@ class Tracking
$user_id,
$exercise_id,
$courseId,
$sessionId
$sessionId,
false
);
if (!empty($best_attempt) && !empty($best_attempt['max_score'])) {
@ -2940,6 +2936,7 @@ class Tracking
WHERE
lp_id IN (".implode(',', $lp_list).")
$condition_user1
$sessionCondition
GROUP BY lp_id, user_id";
//AND session_id = $sessionId

@ -40,7 +40,9 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
$this->addCategoryQueryBuilder($categoryId, $qb);
$this->addActiveQueryBuilder($active, $qb);
$this->addNotDeletedQueryBuilder($qb);
$this->addTitleQueryBuilder($title, $qb);
if (!empty($title)) {
$this->addTitleQueryBuilder($title, $qb);
}
return $qb;
}

Loading…
Cancel
Save