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

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

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

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

Спасибо.

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

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

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

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

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

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


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

Да, похоже, что указание времени окончания заставляет событие исчезать из календаря /upcoming-event, что действительно противоречит поведению других календарей. Думаю, стоит перенести это в категорию 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"]

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

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

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

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

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

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

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

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

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