Редактирование даты окончания события → дата публикации события в заголовке темы не обновляется (после обновления 3.6.0.beta2)

Протестировано на версии 3.6.0.beta2. Насколько я помню, в beta1 эта проблема не возникала.

Шаги:

  1. Создайте новую тему с датой начала события в прошлом и датой окончания в будущем (например, через 3 часа).
  2. Опубликуйте тему; дата события в заголовке темы отображается корректно.
  3. Измените дату окончания события на более позднюю или более раннюю.
  4. Возникает проблема: дата события в заголовке темы остаётся прежней.

Я также пробовал обновить HTML, но проблема сохраняется.

Редактирование: Я столкнулся с той же проблемой при редактировании только даты начала события, но пока не смог воспроизвести её…

1 лайк

Как вы редактируете событие: через интерфейс или через Markdown?

Поведение в обоих случаях отличается?

Насколько я помню, проблема проявлялась в обоих случаях.

Иногда не обновлялась дата начала, а иногда затрагивалась дата окончания. У меня не было возможности должным образом воспроизвести проблему, так как это очень трудоёмко и сложно.

Я отправил небольшой PR, который частично исправил ситуацию. Пока мы используем его как вспомогательный плагин.

Текущее решение также следующее:

  1. Отредактируйте запись, удалите BB-код события, сохраните запись.
  2. Отредактируйте запись снова, добавьте BB-код события с нужной датой и сохраните запись.

Это заново записывает даты события в тему.

Привет,

Я создал FIX: Refresh event dates in topic lists - Pull Request #43285 - discourse/discourse - GitHub для этого.

Затем я сделал видеозапись ручного тестирования против head-коммита PR:

PR основан на main.

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

Я включил мои точные временные метки тестов и BBCode ниже в качестве дополнительных примечаний.

Первый тест — только изменение конца

Запланированное время:

начало измененное начало конец измененный конец
16:22 без изменений 16:25 16:28

Изначально BBCode выглядел так:

[event start="2026-09-04 16:22" status=public timezone=Europe/London end="2026-09-04 16:25"]
this is an event description
[/event]

Я явно изменил его на:

[event start="2026-09-04 16:22" status=public timezone=Europe/London end="2026-09-04 16:28"]
this is an event description
[/event]
Второй тест — только изменение начала

Запланированное время:

начало измененное начало конец измененный конец
16:31 16:32 16:35 без изменений

В этом прогоне я совершил ошибку в настройке: фактический исходный BBCode был таким:

[event start="2026-09-04 17:00" end="2026-09-04 18:00" status="public" timezone="Europe/London" reminders="notification.15.minutes"]
[/event]

Затем я явно изменил его на:

[event start="2026-09-04 16:32" status=public timezone=Europe/London end="2026-09-04 16:35" reminders=notification.15.minutes]
[/event]

Поэтому этот конкретный прогон не следует рассматривать как чистое сравнение только начала 16:3116:32.

Третий тест — изменение начала и конца

Запланированное время:

начало измененное начало конец измененный конец
16:38 16:39 16:42 16:45

Изначально BBCode выглядел так:

[event start="2026-09-04 16:38" status=public timezone=Europe/London end="2026-09-04 16:42" reminders=notification.15.minutes]
[/event]

Я явно изменил его на:

[event start="2026-09-04 16:39" status=public timezone=Europe/London end="2026-09-04 16:45" reminders=notification.15.minutes]
[/event]
Четвертый тест — только изменение конца

Запланированное время:

начало измененное начало конец измененный конец
16:47 без изменений 16:50 16:53

Изначально BBCode выглядел так:

[event start="2026-09-04 16:47" status=public timezone=Europe/London end="2026-09-04 16:50"]
[/event]

Я явно изменил его на:

[event start="2026-09-04 16:47" status=public timezone=Europe/London end="2026-09-04 16:53"]
[/event]
Пятый тест — только изменение начала

Запланированное время:

начало измененное начало конец измененный конец
16:56 16:57 17:00 без изменений

Финальный BBCode был таким:

[event start="2026-09-04 16:57" status=public timezone=Europe/London end="2026-09-04 17:00" reminders=notification.15.minutes]
[/event]

Проверка базы данных впоследствии подтверждает, что этот пост был отредактирован его автором один раз в течение 300-секундного периода редактирования Discourse (self_edits = 1). Поскольку редактирование было в пределах этого периода, пост остался на версии 1, и видимая ревизия/карандаш не был создан.

Поэтому исходное сырое значение больше недоступно из post_revisions, но тест не был неотредактированным постом.

Шестой тест — изменение начала и конца

Запланированное время:

начало измененное начало конец измененный конец
17:03 17:04 17:07 17:10

Финальный BBCode был таким:

[event start="2026-09-04 17:04" end="2026-09-04 17:10" status="public" timezone="Europe/London" reminders="notification.15.minutes"]
[/event]

Проверка базы данных впоследствии подтверждает, что этот пост был отредактирован его автором один раз в течение 300-секундного периода редактирования Discourse (self_edits = 1). Поскольку редактирование было в пределах этого периода, пост остался на версии 1, и видимая ревизия/карандаш не был создан.

Поэтому исходное сырое значение больше недоступно из post_revisions, но тест не был неотредактированным постом.