From c0f4f5aa66dfc0cfaf399cf7a8d56e6668c812b0 Mon Sep 17 00:00:00 2001 From: Angel Fernando Quiroz Campos Date: Thu, 13 May 2021 18:44:22 -0500 Subject: [PATCH] Portfolio: Add course setting to allow send notification - refs BT#18201 --- main/course_info/infocours.php | 23 ++++++++++++++++++++- main/inc/lib/PortfolioController.php | 31 ++++++++++++++++++++++++++++ main/inc/lib/add_course.lib.inc.php | 1 + main/inc/lib/course.lib.php | 1 + 4 files changed, 55 insertions(+), 1 deletion(-) diff --git a/main/course_info/infocours.php b/main/course_info/infocours.php index 141b3f6757..7603e267b1 100755 --- a/main/course_info/infocours.php +++ b/main/course_info/infocours.php @@ -50,6 +50,8 @@ if (api_get_setting('pdf_export_watermark_by_course') === 'true') { } } +$allowPortfolioTool = api_get_configuration_value('allow_portfolio_tool'); + $categories = CourseCategory::getCategoriesCanBeAddedInCourse($_course['categoryCode']); // Build the form @@ -493,6 +495,25 @@ $group[] = $form->createElement( ); $form->addGroup($group, '', [get_lang("EmailToTeachersWhenNewWorkFeedback")]); +if ($allowPortfolioTool) { + $group = []; + $group[] = $form->createElement( + 'radio', + 'email_alert_teachers_new_post', + get_lang('EmailToTeachersWhenNewPost'), + get_lang('Yes'), + 1 + ); + $group[] = $form->createElement( + 'radio', + 'email_alert_teachers_new_post', + null, + get_lang('No'), + 2 + ); + $form->addGroup($group, '', [get_lang("EmailToTeachersWhenNewPost")]); +} + $form->addButtonSave(get_lang('SaveSettings'), 'submit_save'); $form->addHtml(' @@ -922,7 +943,7 @@ $form->addPanelOption( $globalGroup ); -if (api_get_configuration_value('allow_portfolio_tool')) { +if ($allowPortfolioTool) { $globalGroup = [ get_lang('QualifyPortfolioItems') => [ $form->createElement('radio', 'qualify_portfolio_item', null, get_lang('Yes'), 1), diff --git a/main/inc/lib/PortfolioController.php b/main/inc/lib/PortfolioController.php index e4cf41320b..4e8e37996c 100644 --- a/main/inc/lib/PortfolioController.php +++ b/main/inc/lib/PortfolioController.php @@ -311,6 +311,37 @@ class PortfolioController $hook->setEventData(['portfolio' => $portfolio]); $hook->notifyItemAdded(); + if (1 == api_get_course_setting('email_alert_teachers_new_post')) { + if ($this->session) { + $messageCourseTitle = "{$this->course->getTitle()} ({$this->session->getName()})"; + + $teachers = SessionManager::getCoachesByCourseSession( + $this->session->getId(), + $this->course->getId() + ); + $userIdListToSend = array_values($teachers); + } else { + $messageCourseTitle = $this->course->getTitle(); + + $teachers = CourseManager::get_teacher_list_from_course_code($this->course->getCode()); + + $userIdListToSend = array_keys($teachers); + } + + $messageSubject = sprintf(get_lang('PortfolioAlertNewPostSubject'), $messageCourseTitle); + + foreach ($userIdListToSend as $userIdToSend) { + $messageContent = sprintf( + get_lang('PortfolioAlertNewPostContent'), + $this->owner->getCompleteName(), + $messageCourseTitle, + $this->baseUrl.http_build_query(['action' => 'view', 'id' => $portfolio->getId()]) + ); + + MessageManager::send_message_simple($userIdToSend, $messageSubject, $messageContent, 0, false, false, [], false); + } + } + Display::addFlash( Display::return_message(get_lang('PortfolioItemAdded'), 'success') ); diff --git a/main/inc/lib/add_course.lib.inc.php b/main/inc/lib/add_course.lib.inc.php index 7316375844..73a26c6c62 100755 --- a/main/inc/lib/add_course.lib.inc.php +++ b/main/inc/lib/add_course.lib.inc.php @@ -662,6 +662,7 @@ class AddCourse 'documents_default_visibility' => ['default' => 'visible', 'category' => 'document'], 'show_course_in_user_language' => ['default' => 2, 'category' => null], 'email_to_teachers_on_new_work_feedback' => ['default' => 1, 'category' => null], + 'email_alert_teachers_new_post' => ['default' => 2, 'category' => 'portfolio'], ]; $counter = 1; diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index baf877f3fb..128b28ad42 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -5856,6 +5856,7 @@ class CourseManager } if (api_get_configuration_value('allow_portfolio_tool')) { + $courseSettings[] = 'email_alert_teachers_new_post'; $courseSettings[] = 'qualify_portfolio_item'; $courseSettings[] = 'qualify_portfolio_comment'; $courseSettings[] = 'portfolio_max_score';