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. 27
      main/announcements/announcements.php
  2. 5
      main/cron/course_announcement.php
  3. 3
      main/install/configuration.dist.php

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

@ -44,12 +44,13 @@ foreach ($result as $announcement) {
$courseInfo = api_get_course_info_by_id($announcement->getCId()); $courseInfo = api_get_course_info_by_id($announcement->getCId());
$query = "SELECT ip FROM ChamiloCourseBundle:CItemProperty ip $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); $sql = Database::getManager()->createQuery($query);
$itemProperty = $sql->execute(['announcementId' => $announcement->getId(), 'courseId' => $announcement->getCId()]); $itemProperty = $sql->execute(['announcementId' => $announcement->getId(), 'courseId' => $announcement->getCId()]);
$senderId = $itemProperty[0]->getInsertUser()->getId(); $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()); $email = new AnnouncementEmail($courseInfo, 0, $announcement->getId());
$sendTo = $email->send($sendToUsersInSession, false, $senderId); $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) 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()), 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; //$_configuration['course_announcement_scheduled_by_date'] = false;

Loading…
Cancel
Save