事件构建器高级设置中的事件提醒数值和单位会重置

在事件构建器的“高级设置”中,修改提醒的时间数量或单位无法保存。该字段会立即恢复到之前的状态。

复现步骤

  1. 开始一个新话题,并使用编辑器的“创建事件”选项添加一个事件。
  2. 点击事件卡片上的齿轮图标以打开“高级设置”。
  3. 滚动到“提醒”部分。将单位从分钟更改为小时,或输入一个新的数字。
  4. 单位变回分钟,数字也变回原来的值。

编辑器中的紧凑事件卡片能够保留新的数字,但它只提供分钟选项。手动编辑事件标记代码也是有效的,例如 reminders=notification.2.hours,卡片随后会显示“2小时前”。因此,这个问题似乎仅限于“高级设置”表单中的提醒字段。

我们在 Discourse 2026.11.0-latest (fd7b62cb87)、默认主题、macOS 上的 Chrome 浏览器中遇到了此问题。我们的一位成员首先发现了这个问题,我自己也进行了复现。

这看起来与八月修复的自定义字段 bug 类似( Potential bug where data in custom fields is cleared if certain fields change ),在那个 bug 中,此表单中的值在另一个字段更改时会被清除。我猜测提醒功能也需要类似的修复,但我尚未在代码中确认这一点。

我们在寻找解决方法时还发现了一个小问题。标记中的单位即使是对于数字 1 也必须使用复数形式,所以 reminders=notification.1.days 是有效的。如果使用单数形式 reminders=notification.1.day,事件卡片会显示原始的翻译键 “[en.discourse_post_event.composer.reminder.units.day count=1] before”,而不是 “1天前”。如果能接受单数形式,或者至少能正确显示,将会很有帮助。