Add option to send alert to HRM when a work is added - refs BT#12955

pull/2487/head
Angel Fernando Quiroz Campos 8 years ago
parent 244a84b839
commit 4e84b9e438
  1. 1
      main/course_info/infocours.php
  2. 24
      main/template/default/mail/new_work_alert_hrm.tpl
  3. 66
      main/work/work.lib.php
  4. 2
      main/work/work.php

@ -311,6 +311,7 @@ $form->addGroup($group, '', array(get_lang("NewUserEmailAlert")));
$group = array();
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', get_lang('NewHomeworkEmailAlert'), get_lang('NewHomeworkEmailAlertEnable'), 1);
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', null, get_lang('NewHomeworkEmailAlertToDrhEnable'), 2);
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', null, get_lang('NewHomeworkEmailAlertDisable'), 0);
$form->addGroup($group, '', array(get_lang("NewHomeworkEmailAlert")));

@ -0,0 +1,24 @@
<p>{{ 'Dear'|get_lang ~ ', ' ~ hrm_name }}</p>
<p>{{ 'HrmNewWorkAlertBodyIntro' }}</p>
<dl>
<dt>{{ 'Student'|get_lang }}</dt>
<dd>{{ student_name }}</dd>
<dt>{{ 'Course'|get_lang }}</dt>
<dd>{{ course.name }} - {{ course.code }}</dd>
<dt>{{ 'AssignmentName'|get_lang }}</dt>
<dd>{{ work.title }}</dd>
<dd>{{ work.description }}</dd>
{% if work.qualification %}
<dt>{{ 'QualificationNumeric'|get_lang }}</dt>
<dd>{{ work.qualification }}</dd>
{% endif %}
{% if work.expires_on %}
<dt>{{ 'ExpiresAt'|get_lang }}</dt>
<dd>{{ work.expires_on|api_convert_and_format_date(6) }}</dd>
{% endif %}
{% if work.ends_on %}
<dt>{{ 'EndsAt'|get_lang }}</dt>
<dd>{{ work.ends_on|api_convert_and_format_date(6) }}</dd>
{% endif %}
</dl>

@ -2367,6 +2367,49 @@ function send_reminder_users_without_publication($task_data)
return $mails_sent_to;
}
/**
* @param int $courseId The course ID
* @param int $workId The work ID
* @param int $sessionId Optional. The session ID
*/
function sendEmailToDrhOnHomeworkCreation($courseId, $workId, $sessionId = 0)
{
$courseInfo = api_get_course_info_by_id($courseId);
$assignment = get_work_assignment_by_id($workId, $courseId);
$work = get_work_data_by_id($workId, $courseId, $sessionId);
$workInfo = array_merge($assignment, $work);
if (empty($session_id)) {
$students = CourseManager::get_student_list_from_course_code($courseInfo['code']);
} else {
$students = CourseManager::get_student_list_from_course_code($courseInfo['code'], true, $sessionId);
}
$bodyView = new Template(null, false, false, false, false, false);
foreach ($students as $student) {
$hrms = UserManager::getDrhListFromUser($student['id']);
foreach ($hrms as $hrm) {
$hrmName = api_get_person_name($hrm['firstname'], $hrm['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
$bodyView->assign('hrm_name', $hrmName);
$bodyView->assign('student_name', api_get_person_name($student["firstname"], $student["lastname"]));
$bodyView->assign('course', $courseInfo);
$bodyView->assign('course_link', api_get_course_url($courseInfo['code'], $sessionId));
$bodyView->assign('work', $workInfo);
$bodyTemplate = $bodyView->get_template('mail/new_work_alert_hrm.tpl');
MessageManager::send_message(
$hrm['id'],
get_lang('HrmNewWorkAlertSubject'),
$bodyView->fetch($bodyTemplate)
);
}
}
}
/**
* Sends an email to the students of a course when a homework is created
*
@ -4113,12 +4156,23 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $session_id)
$workFieldValue = new ExtraFieldValue('work');
$workFieldValue->saveFieldValues($formValues);
if (api_get_course_setting('email_alert_students_on_new_homework') == 1) {
sendEmailToStudentsOnHomeworkCreation(
$course_id,
$session ? $session->getId() : 0,
$workTable->getIid()
);
$sendEmailAlert = api_get_course_setting('email_alert_students_on_new_homework');
switch ($sendEmailAlert) {
case 1:
sendEmailToStudentsOnHomeworkCreation(
$course_id,
$session ? $session->getId() : 0,
$workTable->getIid()
);
break;
case 2:
sendEmailToDrhOnHomeworkCreation(
$course_id,
$workTable->getIid(),
$session ? $session->getId() : 0
);
break;
}
return $workTable->getIid();

@ -197,7 +197,7 @@ switch ($action) {
header('Location: '.$currentUrl);
exit;
} else {
$content = $form->return_form();
$content = $form->returnForm();
}
break;
case 'delete_dir':

Loading…
Cancel
Save