Skip to content

Commit

Permalink
Plugin: Remedial Courses: Fix subscription to remedial courses after …
Browse files Browse the repository at this point in the history
…saving result - refs BT#18165
  • Loading branch information
AngelFQC committed Apr 15, 2021
1 parent 6fda6da commit af56798
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 66 deletions.
47 changes: 19 additions & 28 deletions main/exercise/exercise.class.php
Expand Up @@ -10852,7 +10852,7 @@ public function getRadar($labels, $dataSet, $dataSetLabels = [])
* @param int $sessionId
* @param array $attemps
*/
public function advancedCourseList($userId = 0, $sessionId = 0, $attempt = [])
public function advancedCourseList($userId = 0, $sessionId = 0)
{
$userId = (int) $userId;
$sessionId = (int) $sessionId;
Expand All @@ -10877,18 +10877,12 @@ public function advancedCourseList($userId = 0, $sessionId = 0, $attempt = [])
if (!isset($bestAttempt['exe_result'])) {
// In the case that the result is 0, get_best_attempt_exercise_results_per_user does not return data,
// for that this block is used
if (count($attempt) == 0) {
$exerciseStatInfo = Event::getExerciseResultsByUser(
$userId,
$this->id,
$this->course_id,
$sessionId
);
} else {
$exerciseStatInfo = $attempt;
}

unset($attempt);
$exerciseStatInfo = Event::getExerciseResultsByUser(
$userId,
$this->id,
$this->course_id,
$sessionId
);
$bestAttempt['exe_result'] = 0;
foreach ($exerciseStatInfo as $attempt) {
if ($attempt['exe_result'] >= $bestAttempt['exe_result']) {
Expand Down Expand Up @@ -11017,12 +11011,13 @@ public function isBlockedByPercentage($attempt = [])
* When a student completes the number of attempts and fails the exam, she is enrolled in a series of remedial
* courses BT#18165.
*
* @param int $userId
* @param int $sessionId
* @param array $attemps
* @param bool $review
* @param int $userId
* @param int $sessionId
* @param bool $review
*
* @return string|null
*/
public function remedialCourseList($userId = 0, $sessionId = 0, $attempt = [], $review = false)
public function remedialCourseList($userId = 0, $sessionId = 0, $review = false)
{
$userId = empty($userId) ? api_get_user_id() : (int) $userId;
$sessionId = (int) $sessionId;
Expand Down Expand Up @@ -11054,16 +11049,12 @@ public function remedialCourseList($userId = 0, $sessionId = 0, $attempt = [], $
ANNOTATION,
];

if (count($attempt) != 0) {
$exercise_stat_info = $attempt;
} else {
$exercise_stat_info = Event::getExerciseResultsByUser(
$userId,
$this->id,
$this->course_id,
$sessionId
);
}
$exercise_stat_info = Event::getExerciseResultsByUser(
$userId,
$this->id,
$this->course_id,
$sessionId
);
$bestAttempt = Event::get_best_attempt_exercise_results_per_user(
$userId,
$this->id,
Expand Down
2 changes: 1 addition & 1 deletion main/exercise/exercise_report.php
Expand Up @@ -266,7 +266,7 @@
Database::query($sql);

// See BT#18165
$remedialMessage = $objExerciseTmp->remedialCourseList($student_id, api_get_session_id(), [], true);
$remedialMessage = $objExerciseTmp->remedialCourseList($student_id, api_get_session_id(), true);
if (null != $remedialMessage) {
Display::addFlash(
Display::return_message($remedialMessage, 'warning', false)
Expand Down
23 changes: 5 additions & 18 deletions main/exercise/exercise_result.php
Expand Up @@ -270,29 +270,16 @@
$hookQuizEnd = HookQuizEnd::create();
$hookQuizEnd->setEventData(['exe_id' => $exeId]);
$hookQuizEnd->notifyQuizEnd();
$exerciseStatInfo = Event::getExerciseResultsByUser(
api_get_user_id(),
$exerciseId,
api_get_course_int_id(),
api_get_session_id()
);
$attempt_count = Event::get_attempt_count(
$currentUserId,
$exerciseId,
$learnpath_id,
$learnpath_item_id,
$learnpath_item_view_id
);
$advanceCourseMessage = $objExercise->advancedCourseList(api_get_user_id(), api_get_session_id(), $exerciseStatInfo);

$advanceCourseMessage = $objExercise->advancedCourseList(api_get_user_id(), api_get_session_id());
if (null != $advanceCourseMessage) {
Display::addFlash(
Display::return_message($advanceCourseMessage, 'info', false)
);
}
$remedialMessage = null;
if ($attempt_count >= $objExercise->selectAttempts() || $objExercise->isBlockedByPercentage($exercise_stat_info)) {
$remedialMessage = $objExercise->remedialCourseList(api_get_user_id(), api_get_session_id(), $exerciseStatInfo);
}

$remedialMessage = $objExercise->remedialCourseList(api_get_user_id(), api_get_session_id());

if (null != $remedialMessage) {
Display::addFlash(
Display::return_message($remedialMessage, 'warning', false)
Expand Down
23 changes: 4 additions & 19 deletions main/exercise/overview.php
Expand Up @@ -199,30 +199,15 @@
}
$advanceMessage = $objExercise->advancedCourseList(api_get_user_id(), api_get_session_id());
if (!empty($advanceMessage)) {
$message = Display::return_message(
$message .= Display::return_message(
$advanceMessage,
'info',
false
);
}
$exerciseAttempts = $objExercise->selectAttempts();
$remedialMessage = null;
$exercise_stat_info = Event::getExerciseResultsByUser(
api_get_user_id(),
$objExercise->iId,
$objExercise->course_id,
api_get_session_id()
);
$attempt_count = count($exercise_stat_info) + 1;
if ($exerciseAttempts > 0) {
if ($attempt_count > $exerciseAttempts) {
$remedialMessage .= $objExercise->remedialCourseList(api_get_user_id(), api_get_session_id(), $exercise_stat_info);
}
if (null != $remedialMessage) {
Display::addFlash(
Display::return_message($remedialMessage, 'warning', false)
);
}
$remedialMessage = $objExercise->remedialCourseList(api_get_user_id(), api_get_session_id());
if (null != $remedialMessage) {
$message .= Display::return_message($remedialMessage, 'warning', false);
}

if (!api_is_allowed_to_session_edit()) {
Expand Down

0 comments on commit af56798

Please sign in to comment.