Exercises: Use exe_user_id instead of current user for notification

See BT#17787
pull/3643/head
Julio Montoya 5 years ago
parent f8ccabc6bb
commit 6512076094
  1. 22
      main/inc/lib/exercise.lib.php

@ -5840,7 +5840,7 @@ EOT;
return $total;
}
public static function parseContent($content, $stats, $exercise, $trackInfo)
public static function parseContent($content, $stats, $exercise, $trackInfo, $currentUserId = 0)
{
$wrongAnswersCount = $stats['failed_answers_count'];
$attemptDate = substr($trackInfo['exe_date'], 0, 10);
@ -5861,8 +5861,10 @@ EOT;
$content
);
$currentUserId = empty($currentUserId) ? api_get_user_id() : (int) $currentUserId;
$content = AnnouncementManager::parseContent(
api_get_user_id(),
$currentUserId,
$content,
api_get_course_id(),
api_get_session_id()
@ -5878,15 +5880,14 @@ EOT;
return false;
}
$studentId = $exercise_stat_info['exe_user_id'];
$exerciseExtraFieldValue = new ExtraFieldValue('exercise');
//$attemptCountToSend = $attempt_count++;
$wrongAnswersCount = $stats['failed_answers_count'];
$exercisePassed = $stats['exercise_passed'];
$countPendingQuestions = $stats['count_pending_questions'];
// If there are no pending questions (Open questions).
if (0 === $countPendingQuestions) {
//$totalScore = self::show_score($total_score, $max_score, false, true);
$subject = sprintf(get_lang('WrongAttemptXInCourseX'), $attemptCountToSend, $courseInfo['title']);
if ($exercisePassed) {
$subject = sprintf(get_lang('ExerciseValidationInCourseX'), $courseInfo['title']);
@ -5906,7 +5907,7 @@ EOT;
if ($extraFieldData && isset($extraFieldData['value'])) {
$content = $extraFieldData['value'];
$content = self::parseContent($content, $stats, $objExercise, $exercise_stat_info);
$content = self::parseContent($content, $stats, $objExercise, $exercise_stat_info, $studentId);
if (false === $exercisePassed) {
if (0 !== $wrongAnswersCount) {
$content .= $stats['failed_answers_html'];
@ -5917,11 +5918,6 @@ EOT;
MessageManager::send_message($currentUserId, $subject, $content);
}
// Subject for notifications
/*$subject = sprintf(get_lang('WrongAttemptXInCourseX'), $attemptCountToSend, $courseInfo['title']);
if ($exercisePassed) {
$subject = sprintf(get_lang('ExerciseValidationInCourseX'), $courseInfo['title']);
}*/
$extraFieldData = $exerciseExtraFieldValue->get_values_by_handler_and_field_variable(
$objExercise->iId,
'notifications'
@ -5984,7 +5980,8 @@ EOT;
$pdfExtraData['value'],
$stats,
$objExercise,
$exercise_stat_info
$exercise_stat_info,
$studentId
);
@$pdf = new PDF();
@ -6021,7 +6018,8 @@ EOT;
$content,
$stats,
$objExercise,
$exercise_stat_info
$exercise_stat_info,
$studentId
);
foreach ($emailList as $email) {
if (empty($email)) {

Loading…
Cancel
Save