Истекшие события с указанным временем окончания удаляются из upcoming-events, даже если параметр установлен в -1

Я пытаюсь использовать плагин «Календарь», но он удаляет событие из календаря сразу после его завершения, несмотря на то, что в настройках указано значение -1 для отключения удаления. Я также пробовал установить срок действия на два года (17532 часа), но это тоже приводило к удалению события сразу после его завершения.

Единственный способ, который я нашёл для сохранения событий в календаре, — это убрать дату/время окончания.

Подскажите, пожалуйста, почему значение -1 не работает и как решить эту проблему?

Спасибо.

Привет и добро пожаловать @Helen22 :slight_smile:

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

У меня календарь размещён в теме, и он сохраняет просроченные элементы:

Также у меня он используется как заголовок категории:

А ещё у меня есть календарь /upcoming-event для элементов в стиле событий:

Пока у меня нет календаря в стиле событий как заголовка категории, поэтому, возможно, проблема именно в нём… :slight_smile:


На самом деле, позвольте мне перепроверить время окончания…

Да, похоже, что указание времени окончания заставляет событие исчезать из календаря /upcoming-event, что действительно противоречит поведению других календарей. Думаю, стоит перенести это в категорию Contribute > Bug и посмотреть, сможем ли мы привлечь кого-то для проверки. :+1:

(и, для полноты картины, календарь не в стиле событий работает как положено, даже при указании дат окончания)

Если вы имеете в виду настройку delete expired event posts after, я думаю, что она предотвращает удаление поста, но не отображение события. Кроме того, термин «событие» здесь, на мой взгляд, вводит в заблуждение: поскольку речь идёт о разделе календаря, под этим подразумевается скорее «что-то связанное с датой», а не «событие в смысле возможности подтверждения участия».
Это событие календаря, а не событие-мероприятие.

События-мероприятия предназначены для отображения в /upcoming-events, поэтому там ничего из прошлого не должно быть…

На самом деле по этому поводу есть PR: FEATURE: Show all events in past (add deleted_at in discourse_calendar_post_event_dates) + add show_past_event in settings by ledadu · Pull Request #199 · discourse/discourse-calendar · GitHub

Я не мог решить, заключается ли особенность в том, что она показывает прошлые события, если у них нет времени окончания, или в том, что она не показывает события с указанным временем окончания. Возможно, это то, что я мог бы включить в переписывание темы плагина, если речь идет о расхождении между ожиданиями и фактическим поведением?

:thinking: Может ли событие быть в прошлом, если у него нет времени окончания?

Car Chase Action GIF by Regal

Сейчас такое поведение кажется ожидаемым — события, у которых время окончания уже прошло, не отображаются. Однако было бы неплохо добавить опцию для отображения всех событий (хотя это может привести к непредвиденным побочным эффектам в интерфейсе, например, см. здесь: GitHub - paviliondev/layouts-event-list-widget: The Event List Widget allows you to display upcoming events in a sidebar using Pavilion's Custom Layouts Plugin. · GitHub).

Если вы планируете переписывать тему, пожалуйста :sweat_smile: слово «event» («событие») должно использоваться исключительно для описания связанных со событиями вещей — это очень запутывает, когда речь идёт о календаре.

Да. :+1: И, возможно, даже немного изменить некоторые описания настроек. :crossed_fingers:

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

Но спасибо, что вы так хорошо разбираетесь в этом плагине, это действительно помогает. :+1: :slight_smile:

Спасибо всем за ваши комментарии —

У нас есть календарь предстоящих событий из меню-гамбургера и предстоящие события в категории. Ни один из них не сохраняет события.

Где я могу это найти?

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

Вы можете создать обычный календарь, добавив следующее в первый пост (OP) темы: (с установленной опцией calendar enabled)

[calendar]
[/calendar]

Затем все последующие посты с описанием и датой будут добавлены в него. Например:

Это мой день рождения!
[date-range from=2022-12-20 to=2020-12-21 timezone="America/Boise"]

Затем вы можете взять идентификатор категории, где хотите отображать календарь более заметно, из конца URL-адреса категории, и идентификатор поста темы календаря (это можно получить из JSON), и добавить их в эту настройку:

Посты с элементами календаря в этих темах контролируются настройкой delete expired event posts after. :+1:

Более подробная информация доступна в теме Discourse Calendar and Events, хотя, если вам нужна дополнительная помощь, не стесняйтесь создать новую тему в разделе Support. :slightly_smiling_face:

На самом деле, сейчас подходящий момент, чтобы перенести эту тему в раздел Support для её постоянного проживания, поскольку мы знаем, что настройка работает как ожидается. После того как я обновлю документацию по Calendar & Event, может быть целесообразно создать новые темы в разделах Contribute > UX или Contribute > Feature, чтобы охватить любые недостающие идеи. :+1:

Спасибо за вашу помощь, @JammyDodger. Я очень это ценю.

Так что, чтобы вернуться к моему первоначальному вопросу и уточнить ответ: в настоящее время нет способа сохранить события в календаре предстоящих событий после того, как они произошли, если только я не удалю время окончания?

Не переживайте. Рад помочь. :slight_smile:

Но да, единственный способ сохранить элементы в стиле событий в календаре событий/предстоящих событиях сейчас — это удалить их дату окончания. Я задумался, не может ли другим обходным путём для достижения чего-то подобного стать создание темы календаря «Прошедшие события» или «История событий» с использованием элементов календаря? Не уверен, подойдёт ли это вам, но, возможно, стоит это изучить?

Да, это может сработать. Я изучу этот вопрос. Спасибо!