为重复事件创建独立的话题

我已经提交了一个 PR,实现了一种可选的重复 Event 模式:

它添加了一个站点设置 discourse_post_event_recurring_topic_mode,包含两个选项:

  • reuse_topic — 现有行为,也是默认选项
  • create_next_topic — 保留已完成的单次事件主题,并为下一次事件创建新主题

在使用 create_next_topic 时,当某次事件结束时,已完成的主题将被保留,其 Event 将固定在该次已完成的事件上,并移除重复设置。随后会为下一次重复事件创建一个继任主题,保留原标题、正文、分类、标签和作者,同时更新 Event 的日期。

自动化测试还涵盖了 RSVP 的滚动语义:重复的 going(参加)状态会延续到继任主题中,而单次参加状态则保留在已完成的事件中。

该滚动过程也是事务性的,因此如果创建继任主题失败,当前事件将保持待定状态,可以重试,而不会处于半完成状态。

这具体实现了“当当前事件结束时创建下一个主题”的模型。它目前不会提前为所有未来的事件生成独立主题,这是 @opcourdis 上面提到的另一种模型。

现有行为仍然是默认选项,因此对于希望已完成的事件主题充当存档的站点,此功能是可选启用的。

1 个赞