Course announcement: Validated script sql to get item property and set checkbox an extrafield

pull/3928/head
Tony ID 4 years ago
parent 09f911e8f8
commit 4355c0d5ec
  1. 31
      main/announcements/announcements.php
  2. 5
      main/cron/course_announcement.php
  3. 3
      main/install/configuration.dist.php

@ -621,8 +621,27 @@ switch ($action) {
$form->addHidden('sec_token', $token);
$announcementScheduledByDate = api_get_configuration_value('course_announcement_scheduled_by_date');
if (empty($sessionId)) {
$form->addCheckBox('send_to_users_in_session', null, get_lang('SendToUsersInSessions'));
if ($announcementScheduledByDate) {
$extraField = new ExtraField('course_announcement');
$extraFieldValue = new ExtraFieldValue('course_announcement');
$extra = $extraField->addElements(
$form,
$id ? $id : 0,
[],
false,
false,
['send_to_users_in_session'],
[],
[],
false,
true
);
} else {
$form->addCheckBox('send_to_users_in_session', null, get_lang('SendToUsersInSessions'));
}
}
$config = api_get_configuration_value('announcements_hide_send_to_hrm_users');
@ -639,9 +658,7 @@ switch ($action) {
$form->addCheckBox('send_me_a_copy_by_email', null, get_lang('SendAnnouncementCopyToMyself'));
$defaults['send_me_a_copy_by_email'] = true;
if (api_get_configuration_value('course_announcement_scheduled_by_date')) {
// Extra fields
if ($announcementScheduledByDate) {
$extraField = new ExtraField('course_announcement');
$extraFieldValue = new ExtraFieldValue('course_announcement');
$valueCheckbox = $extraFieldValue->get_values_by_handler_and_field_variable($id, 'send_notification_at_a_specific_date');
@ -727,7 +744,11 @@ switch ($action) {
if ($form->validate()) {
$data = $form->getSubmitValues();
$data['users'] = isset($data['users']) ? $data['users'] : [];
$sendToUsersInSession = isset($data['send_to_users_in_session']) ? true : false;
if ($announcementScheduledByDate) {
$sendToUsersInSession = isset($data['extra_send_to_users_in_session']) ? true : false;
} else {
$sendToUsersInSession = isset($data['send_to_users_in_session']) ? true : false;
}
$sendMeCopy = isset($data['send_me_a_copy_by_email']) ? true : false;
if (isset($id) && $id) {

@ -44,12 +44,13 @@ foreach ($result as $announcement) {
$courseInfo = api_get_course_info_by_id($announcement->getCId());
$query = "SELECT ip FROM ChamiloCourseBundle:CItemProperty ip
WHERE ip.ref = :announcementId AND ip.course = :courseId";
WHERE ip.ref = :announcementId AND ip.course = :courseId
AND ip.tool = 'announcement'";
$sql = Database::getManager()->createQuery($query);
$itemProperty = $sql->execute(['announcementId' => $announcement->getId(), 'courseId' => $announcement->getCId()]);
$senderId = $itemProperty[0]->getInsertUser()->getId();
$sendToUsersInSession = $itemProperty[0]->getSession() ? $itemProperty[0]->getSession()->getId() : false;
$sendToUsersInSession = (bool) $extraFieldValue->get_values_by_handler_and_field_variable($announcement->getId(), 'send_to_users_in_session');
$email = new AnnouncementEmail($courseInfo, 0, $announcement->getId());
$sendTo = $email->send($sendToUsersInSession, false, $senderId);

@ -1970,7 +1970,8 @@ ALTER TABLE gradebook_comment ADD CONSTRAINT FK_C3B70763AD3ED51C FOREIGN KEY (gr
/*
INSERT INTO extra_field (extra_field_type, field_type, variable, display_text, field_order, visible_to_self, visible_to_others, changeable, filter, created_at)
VALUES (21, 13, 'send_notification_at_a_specific_date', 'Send notification at a specific date', 0, 1, 0, 0, 0, NOW()),
(21, 6, 'date_to_send_notification', 'Date to send notification', 0, 1, 0, 0, 0, NOW());
(21, 6, 'date_to_send_notification', 'Date to send notification', 0, 1, 0, 0, 0, NOW()),
(21, 13, 'send_to_users_in_session', 'Send to users in session', 0, 1, 0, 0, 0, NOW());
*/
//$_configuration['course_announcement_scheduled_by_date'] = false;

Loading…
Cancel
Save