Skip to content

Commit 4e84b9e

Browse files
committed
Add option to send alert to HRM when a work is added - refs BT#12955
1 parent 244a84b commit 4e84b9e

File tree

4 files changed

+86
-7
lines changed

4 files changed

+86
-7
lines changed

main/course_info/infocours.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ function is_settings_editable()
311311

312312
$group = array();
313313
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', get_lang('NewHomeworkEmailAlert'), get_lang('NewHomeworkEmailAlertEnable'), 1);
314+
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', null, get_lang('NewHomeworkEmailAlertToDrhEnable'), 2);
314315
$group[] = $form->createElement('radio', 'email_alert_students_on_new_homework', null, get_lang('NewHomeworkEmailAlertDisable'), 0);
315316
$form->addGroup($group, '', array(get_lang("NewHomeworkEmailAlert")));
316317

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<p>{{ 'Dear'|get_lang ~ ', ' ~ hrm_name }}</p>
2+
<p>{{ 'HrmNewWorkAlertBodyIntro' }}</p>
3+
<dl>
4+
<dt>{{ 'Student'|get_lang }}</dt>
5+
<dd>{{ student_name }}</dd>
6+
<dt>{{ 'Course'|get_lang }}</dt>
7+
<dd>{{ course.name }} - {{ course.code }}</dd>
8+
<dt>{{ 'AssignmentName'|get_lang }}</dt>
9+
<dd>{{ work.title }}</dd>
10+
<dd>{{ work.description }}</dd>
11+
12+
{% if work.qualification %}
13+
<dt>{{ 'QualificationNumeric'|get_lang }}</dt>
14+
<dd>{{ work.qualification }}</dd>
15+
{% endif %}
16+
{% if work.expires_on %}
17+
<dt>{{ 'ExpiresAt'|get_lang }}</dt>
18+
<dd>{{ work.expires_on|api_convert_and_format_date(6) }}</dd>
19+
{% endif %}
20+
{% if work.ends_on %}
21+
<dt>{{ 'EndsAt'|get_lang }}</dt>
22+
<dd>{{ work.ends_on|api_convert_and_format_date(6) }}</dd>
23+
{% endif %}
24+
</dl>

main/work/work.lib.php

Lines changed: 60 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2367,6 +2367,49 @@ function send_reminder_users_without_publication($task_data)
23672367
return $mails_sent_to;
23682368
}
23692369

2370+
/**
2371+
* @param int $courseId The course ID
2372+
* @param int $workId The work ID
2373+
* @param int $sessionId Optional. The session ID
2374+
*/
2375+
function sendEmailToDrhOnHomeworkCreation($courseId, $workId, $sessionId = 0)
2376+
{
2377+
$courseInfo = api_get_course_info_by_id($courseId);
2378+
$assignment = get_work_assignment_by_id($workId, $courseId);
2379+
$work = get_work_data_by_id($workId, $courseId, $sessionId);
2380+
$workInfo = array_merge($assignment, $work);
2381+
2382+
if (empty($session_id)) {
2383+
$students = CourseManager::get_student_list_from_course_code($courseInfo['code']);
2384+
} else {
2385+
$students = CourseManager::get_student_list_from_course_code($courseInfo['code'], true, $sessionId);
2386+
}
2387+
2388+
$bodyView = new Template(null, false, false, false, false, false);
2389+
2390+
foreach ($students as $student) {
2391+
$hrms = UserManager::getDrhListFromUser($student['id']);
2392+
2393+
foreach ($hrms as $hrm) {
2394+
$hrmName = api_get_person_name($hrm['firstname'], $hrm['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
2395+
2396+
$bodyView->assign('hrm_name', $hrmName);
2397+
$bodyView->assign('student_name', api_get_person_name($student["firstname"], $student["lastname"]));
2398+
$bodyView->assign('course', $courseInfo);
2399+
$bodyView->assign('course_link', api_get_course_url($courseInfo['code'], $sessionId));
2400+
$bodyView->assign('work', $workInfo);
2401+
2402+
$bodyTemplate = $bodyView->get_template('mail/new_work_alert_hrm.tpl');
2403+
2404+
MessageManager::send_message(
2405+
$hrm['id'],
2406+
get_lang('HrmNewWorkAlertSubject'),
2407+
$bodyView->fetch($bodyTemplate)
2408+
);
2409+
}
2410+
}
2411+
}
2412+
23702413
/**
23712414
* Sends an email to the students of a course when a homework is created
23722415
*
@@ -4113,12 +4156,23 @@ function addDir($formValues, $user_id, $courseInfo, $groupId, $session_id)
41134156
$workFieldValue = new ExtraFieldValue('work');
41144157
$workFieldValue->saveFieldValues($formValues);
41154158

4116-
if (api_get_course_setting('email_alert_students_on_new_homework') == 1) {
4117-
sendEmailToStudentsOnHomeworkCreation(
4118-
$course_id,
4119-
$session ? $session->getId() : 0,
4120-
$workTable->getIid()
4121-
);
4159+
$sendEmailAlert = api_get_course_setting('email_alert_students_on_new_homework');
4160+
4161+
switch ($sendEmailAlert) {
4162+
case 1:
4163+
sendEmailToStudentsOnHomeworkCreation(
4164+
$course_id,
4165+
$session ? $session->getId() : 0,
4166+
$workTable->getIid()
4167+
);
4168+
break;
4169+
case 2:
4170+
sendEmailToDrhOnHomeworkCreation(
4171+
$course_id,
4172+
$workTable->getIid(),
4173+
$session ? $session->getId() : 0
4174+
);
4175+
break;
41224176
}
41234177

41244178
return $workTable->getIid();

main/work/work.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@
197197
header('Location: '.$currentUrl);
198198
exit;
199199
} else {
200-
$content = $form->return_form();
200+
$content = $form->returnForm();
201201
}
202202
break;
203203
case 'delete_dir':

0 commit comments

Comments
 (0)