Добавление повторяющихся элементов в диапазоне дат

Используя плагин discourse-calendar-and-event, мы с моими однокурсниками заметили отсутствие функции, которая, по нашему мнению, значительно улучшила бы полезность этого расширения.

Представьте следующую ситуацию:
Мы используем тему календаря для организации использования и занятости конкретной комнаты.
В течение двенадцати подряд идущих сред комната будет занята курсами с 10:00 до 15:00, за исключением одной среды.

На данный момент мы видим два варианта добавления повторяющихся событий, у которых есть дата начала и дата окончания:
Либо мы публикуем каждую дату отдельно — что засоряет тему и требует много времени, — либо добавляем событие как повторяющееся и просто принимаем тот факт, что оно будет длиться вечно, отображая курсы, которые на самом деле не проводятся (что создаёт необходимость в другом календарном приложении или в каком-то виде комментариев).

Кроме того: возможность создания повторяющегося события доступна только в том случае, если вы не указываете время окончания:

2023-11-22T09:00:00Z
[date=2023-11-22 time=10:00:00 timezone="Europe/Berlin" recurring="1.weeks"]

Для нашего случая время окончания крайне важно. В результате запись в календаре будет распространяться бесконечно как в будущее, так и в прошлое.

Я представляю два способа добавления этой функции в вставку времени/даты:

  1. Если вы указываете диапазон дат, превышающий два дня, у вас появляется возможность указать несколько исключений по шаблонам, таким как пятницы, выходные, праздники, или по индивидуальным датам.
    Это не учитывает время начала и окончания отдельных вхождений, но всё же предлагает жизнеспособное решение.
  2. Возможность повторения должна сохраняться при указании времени окончания, имеющего ту же дату. Тогда при выборе повторения появится возможность указать дату окончания, обозначающую последнее вхождение. Дата начала должна соответствовать первому вхождению повторяющегося события.

Надеюсь, это понятно, и кто-то сможет откликнуться и помочь нам реализовать это.
Спасибо за вашу отличную работу!

3 лайка

Я только что осознал ещё один вариант решения этой задачи для нашего конкретного случая:
Как студенты, мы можем скачивать .ics-файлы для конкретных курсов, содержащие все события в течение семестра.
Поэтому, полагаю, ещё одним решением мог бы стать вариант (для администраторов) импортировать эти файлы каким-либо образом.
Это, вероятно, требует отдельного запроса на новую функцию?

1 лайк

Я бы также хотел выразить свой интерес к такой функции.

Сценарий использования — форум, созданный для школы, где у каждого класса есть своя категория, и мы хотим поддерживать календарь в теме, где каждый может добавить запись, ответив в теме и используя «Вставить дату».

В отличие от диалогового окна «Создать событие», где можно указать дату окончания, в диалоговом окне «Вставить дату / время» нет возможности указать дату окончания.

Я надеюсь на лучшее, но не уверен, является ли это распространённым запросом, учитывая, что нас всего двое в этой теме.

Просто оставляю свой голос здесь, так как это очень полезно. Кстати, похоже, это что-то, что подглядывает за Discourse :slight_smile:

Повторяющиеся события набирают обороты на Meta: Create individual event topics for recurring events - #18 by Ethsim2

Также, более по теме: 📅 New Calendar Feature: End Date for Recurring Events - #10 by MiniForum