Создание отдельных тем для повторяющихся событий

Я открыл PR, реализующий это как опциональный режим повторяющихся событий (recurring Event mode):

Он добавляет настройку сайта discourse_post_event_recurring_topic_mode с двумя вариантами:

  • reuse_topic — существующее поведение и значение по умолчанию
  • create_next_topic — сохранить топик завершившегося вхождения (occurrence) и создать новый топик для следующего вхождения

При использовании create_next_topic, когда вхождение завершается, его топик сохраняется, а событие закрепляется за этим завершившимся вхождением, при этом повторение удаляется. Затем для следующего повторения создается последующий топик (successor Topic), сохраняющий исходный заголовок, тело сообщения, категорию, теги и автора, при этом даты события продвигаются вперед.

Автоматические тесты также покрывают семантику переноса ответов (RSVP rollover): статус присутствия going для повторяющихся событий переносится в последующий топик, тогда как разовые ответы остаются в топике завершившегося вхождения.

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

Это конкретно реализует модель «создать следующий топик, когда текущее вхождение завершается». Он еще не генерирует отдельные топика для всех будущих вхождений заранее, что является альтернативной моделью, упомянутой выше @opcourdis.

Существующее поведение остается значением по умолчанию, поэтому для сайтов, которые хотят, чтобы топик завершившегося события служил архивом, это опция, которую нужно включать вручную (opt-in).

1 лайк