Calendar: Remove agenda.agenda_reminders setting and enabling the functionality as default #5316

pull/5322/head
Angel Fernando Quiroz Campos 1 year ago
parent 8c83eee825
commit 5faff0261d
  1. 7
      assets/vue/components/ccalendarevent/CalendarRemindersEditor.vue
  2. 2
      assets/vue/composables/calendar/calendarActionButtons.js
  3. 6
      assets/vue/composables/calendar/calendarReminders.js
  4. 5
      public/main/cron/agenda_reminders.php
  5. 14
      src/CoreBundle/Controller/Admin/IndexBlocksController.php
  6. 22
      src/CoreBundle/Controller/Api/UpdateCCalendarEventAction.php
  7. 1
      src/CoreBundle/Controller/PlatformConfigurationController.php
  8. 6
      src/CoreBundle/DataTransformer/CalendarEventTransformer.php
  9. 2
      src/CoreBundle/Migrations/Schema/V200/Version20230216122900.php
  10. 2
      src/CoreBundle/Settings/AgendaSettingsSchema.php
  11. 14
      src/CoreBundle/State/CCalendarEventProcessor.php

@ -8,7 +8,7 @@ import { useCalendarReminders } from "../../composables/calendar/calendarReminde
const { t } = useI18n()
const { agendaRemindersEnabled, periodList } = useCalendarReminders()
const { periodList } = useCalendarReminders()
const model = defineModel({
type: Object,
@ -25,10 +25,7 @@ function addEmptyReminder() {
</script>
<template>
<Fieldset
v-if="agendaRemindersEnabled"
:legend="t('Reminders')"
>
<Fieldset :legend="t('Reminders')">
<div class="reminder-list space-y-4">
<BaseButton
:label="t('Add reminder')"

@ -43,7 +43,7 @@ export function useCalendarActionButtons() {
showImportICalButton.value = true
if (course.value) {
if ("true" === platformConfigStore.getSetting("agenda.agenda_reminders") && isAllowedToEdit) {
if (isAllowedToEdit.value) {
showImportCourseEventsButton.value = true
}
}

@ -1,13 +1,8 @@
import { usePlatformConfig } from "../../store/platformConfig"
import { useI18n } from "vue-i18n"
export function useCalendarReminders() {
const platformConfigStore = usePlatformConfig()
const { t } = useI18n()
const agendaRemindersEnabled = "true" === platformConfigStore.getSetting("agenda.agenda_reminders")
const periodList = [
{ label: t("Minutes"), value: "i" },
{ label: t("Hours"), value: "h" },
@ -31,7 +26,6 @@ export function useCalendarReminders() {
}
return {
agendaRemindersEnabled,
periodList,
decodeDateInterval,
}

@ -7,13 +7,8 @@
*/
require_once __DIR__.'/../../main/inc/global.inc.php';
exit;
if ('true' !== api_get_setting('agenda.agenda_reminders')) {
exit;
}
$batchCounter = 0;
$batchSize = 100;

@ -394,15 +394,11 @@ class IndexBlocksController extends BaseController
'route' => ['name' => 'CCalendarEventList', 'query' => ['type' => 'global']],
'label' => $this->translator->trans('Global agenda'),
];
if ('true' === $this->settingsManager->getSetting('agenda.agenda_reminders')) {
$items[] = [
'class' => 'item-agenda-reminders',
'url' => $this->generateUrl('legacy_main', ['name' => 'admin/import_course_agenda_reminders.php']),
'label' => $this->translator->trans('Import course events'),
];
}
$items[] = [
'class' => 'item-agenda-reminders',
'url' => $this->generateUrl('legacy_main', ['name' => 'admin/import_course_agenda_reminders.php']),
'label' => $this->translator->trans('Import course events'),
];
$items[] = [
'class' => 'item-pages-list',
'route' => ['name' => 'PageList'],

@ -37,21 +37,19 @@ class UpdateCCalendarEventAction extends BaseResourceFileAction
->setCollective($result['collective'] ?? false)
;
if ('true' === $settingsManager->getSetting('agenda.agenda_reminders')) {
$calendarEvent->getReminders()->clear();
$calendarEvent->getReminders()->clear();
foreach ($result['reminders'] as $reminderInfo) {
$reminder = new AgendaReminder();
$reminder->count = $reminderInfo['count'];
$reminder->period = $reminderInfo['period'];
foreach ($result['reminders'] as $reminderInfo) {
$reminder = new AgendaReminder();
$reminder->count = $reminderInfo['count'];
$reminder->period = $reminderInfo['period'];
$reminder
->setType('')
->decodeDateInterval()
;
$reminder
->setType('')
->decodeDateInterval()
;
$calendarEvent->addReminder($reminder);
}
$calendarEvent->addReminder($reminder);
}
return $calendarEvent;

@ -58,7 +58,6 @@ class PlatformConfigurationController extends AbstractController
'agenda.allow_personal_agenda',
'agenda.personal_calendar_show_sessions_occupation',
'agenda.agenda_reminders',
'agenda.agenda_collective_invitations',
'agenda.agenda_event_subscriptions',

@ -78,11 +78,9 @@ class CalendarEventTransformer implements DataTransformerInterface
$calendarEvent->setType($eventType);
if ('true' === $this->settingsManager->getSetting('agenda.agenda_reminders')) {
$object->getReminders()->forAll(fn (int $i, AgendaReminder $reminder) => $reminder->encodeDateInterval());
$object->getReminders()->forAll(fn (int $i, AgendaReminder $reminder) => $reminder->encodeDateInterval());
$calendarEvent->reminders = $object->getReminders();
}
$calendarEvent->reminders = $object->getReminders();
return $calendarEvent;
}

@ -218,7 +218,6 @@ class Version20230216122900 extends AbstractMigrationChamilo
'personal_calendar_show_sessions_occupation',
'agenda_collective_invitations',
'agenda_event_subscriptions',
'agenda_reminders',
'agenda_reminders_sender_id',
'fullcalendar_settings',
],
@ -951,7 +950,6 @@ class Version20230216122900 extends AbstractMigrationChamilo
'Agenda' => [
'fullcalendar_settings',
'agenda_reminders_sender_id',
'agenda_reminders',
'agenda_event_subscriptions',
'agenda_collective_invitations',
'personal_calendar_show_sessions_occupation',

@ -34,7 +34,6 @@ class AgendaSettingsSchema extends AbstractSettingsSchema
'agenda_on_hover_info' => '',
'agenda_collective_invitations' => 'false',
'agenda_event_subscriptions' => 'false',
'agenda_reminders' => 'false',
'agenda_reminders_sender_id' => '0',
'fullcalendar_settings' => '',
]
@ -100,7 +99,6 @@ class AgendaSettingsSchema extends AbstractSettingsSchema
)
->add('agenda_collective_invitations', YesNoType::class)
->add('agenda_event_subscriptions', YesNoType::class)
->add('agenda_reminders', YesNoType::class)
->add('agenda_reminders_sender_id', TextType::class)
->add(
'fullcalendar_settings',

@ -46,15 +46,11 @@ class CCalendarEventProcessor implements ProcessorInterface
}
}
if ('true' === $this->settingsManager->getSetting('agenda.agenda_reminders')) {
$data->getReminders()->forAll(function (int $i, AgendaReminder $reminder) {
$reminder->setType('');
return $reminder->decodeDateInterval();
});
} else {
$data->getReminders()->clear();
}
$data->getReminders()->forAll(function (int $i, AgendaReminder $reminder) {
$reminder->setType('');
return $reminder->decodeDateInterval();
});
/** @var CCalendarEvent $result */
return $this->persistProcessor->process($data, $operation, $uriVariables, $context);

Loading…
Cancel
Save