Events Plugin 📅

该插件在更新 Discourse 时似乎会导致错误:

I, [2025-01-04T22:51:50.065854 #1]  INFO -- :
I, [2025-01-04T22:51:50.066464 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse ERROR:  null value in column "created_at" of relation "discourse_events_event_topics" violates not-null constraint
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse DETAIL:  Failing row contains (1, 1, 1239, null, events, null, null).
2025-01-04 22:52:07.682 UTC [1886] discourse@discourse STATEMENT:
              INSERT INTO discourse_events_event_topics (topic_id, event_id, client, series_id)
              SELECT ec.topic_id, ec.event_id, ec.client, ec.series_id
              FROM discourse_events_event_connections ec

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

PG::NotNullViolation: ERROR:  null value in column "created_at" of relation "discourse_events_event_topics" violates not-null constraint
DETAIL:  Failing row contains (1, 1, 1239, null, events, null, null).

禁用该插件后,更新运行正常。

3 个赞

谢谢提醒。我已经推送了一个修复程序。您能否在安装插件后尝试更新?

4 个赞

感谢您的快速修复,@Angus!我可以确认它又恢复正常运行了。

5 个赞

告知您,该插件物有所值!

3 个赞

你好

有人能给我解释一下这个选项的效果(和好处)吗?

我的大脑无法理解…… :brain:

谢谢

image

是的,可以更好地解释一下。

周期性事件是“一系列”事件。当您在通过此插件连接的外部服务(例如 Google 日历)中创建周期性事件时,此插件将导入该系列中的所有事件(在您设置的导入参数范围内)。

如果您为导入的事件设置了自动主题同步,此设置将决定是为该系列事件创建一个主题还是多个主题。如果启用了该设置,您将为该系列创建一个主题,并在前一个事件结束后,该主题将更新为系列中的下一个事件。如果禁用了该设置,您将为系列中的每个事件创建一个主题。

但是的,这需要一个更好的描述。

2 个赞

Angus 您好,

我更新了 UKDHC Discourse,之后 Discourse 网页应用无法加载。经过一些调查,似乎是 events 插件导致了这个问题。我不得不禁用该插件才能使网页应用重新加载。您能否调查并提供建议?先谢谢您。

François

5 个赞

Angus,在最新版本中,有一个问题可能会阻止 TC 工作(https://meta.discourse.org/t/3-5-0-beta2-dev-theme-component-have-become-nonoperative/357485)。

Uncaught Error: Could not find module `discourse/mixins/singleton` imported from `discourse/plugins/discourse-events/discourse/models/provider`
    at loader.js:247:1
    at h (loader.js:258:1)
    at u.findDeps (loader.js:168:1)
    at h (loader.js:262:1)
    at u.findDeps (loader.js:168:1)
    at h (loader.js:262:1)
    at requireModule (loader.js:24:1)
    at y (app.js:170:18)
    at b (app.js:193:19)
    at app.js:156:29
    at g.start (app.js:167:1)
    at HTMLDocument.<anonymous> (start-app.js:5:7)
    at discourse-boot.js:13:12
    at discourse-boot.js:1:1

我认为这与此更改有关,其中 mixin 已重构为类装饰器:https://github.com/discourse/discourse/pull/30498。

4 个赞

感谢 @Arkshine,我们将撤销此提交:Revert "DEV: remove singleton mixin (#31823)" by jjaffeux · Pull Request #31857 · discourse/discourse · GitHub

@kelv 将在本周晚些时候重新评估情况。

6 个赞

感谢 @j.jaffeux 的修复 :slight_smile:

错误发生在这里:discourse-events/assets/javascripts/discourse/models/provider.js at b38f3258115110c07951f18e2c3562ac3e68a301 · angusmcleod/discourse-events · GitHub

我们在年初弃用了那个 Singleton mixin 的用法。这个 PR 应该能提供一些关于如何重构类以使用 Singleton 作为装饰器的参考。

@angus 你能看一下吗?这应该是一个很小的改动,装饰器可以应用于 RestModel。

3 个赞

谢谢大家。我已经更新了这个插件以使用单例装饰器。

5 个赞

@G4sD0c 你能试着更新一下,然后告诉我你的问题是否解决了吗?

4 个赞

您好,

我在使用 Events 插件和 Location 插件创建主题时遇到了一个 bug。
bug 是创建的主题没有保存 Events 插件中输入的日期值。

详细信息:

  • 您可以重新打开主题并输入日期。
  • 如果在创建主题时没有添加位置信息,日期会正确保存。

Discourse 版本:3.5.0.beta1-dev
(402ec6bf5c)

Events 版本:0.9.5
c49ec2a

Location 版本:6.8.2
7eb7be3

示例:


非常感谢这两个插件,它们让我能够为 RPG 大会管理地图和日历。

我在此标记 @merefield 以供参考。

2 个赞

@G4sD0c 只是温和地提醒您将 Events Plugin 更新到与最新 Discourse 兼容的最新版本 :slight_smile:

2 个赞

@G4sD0c 已完成此操作,并且运行良好。

但我还注意到另一个小问题——当 Events 插件已安装但未激活时,它仍然会不恰当地将议程链接添加到顶部菜单。

1 个赞

各位团队成员,从昨天开始,活动管理面板无法正常运行。

我已将以下信息粘贴在下方:


今天早上在 iOS Safari PWA 上出现了附件问题


我的 discourse 版本是

v3.5.0.beta7 +463

昨天早上是

v3.5.0.beta7 +422

我的 iOS 版本是

昨天在 Discourse 日志中出现的最后一个错误是

我的 Sidekiq 显示为

昨天我的 Sidekiq 显示为

1 个赞

大家好,

这是 UI 暂时有效的更新。

管理 UI 显示

奇怪的是——我禁用了自定义页眉链接(图标),但在截图上它们却显示出来了。是使用了向后兼容的默认设置吗?

Sidekiq 显示为

/logs 中的最后一个错误是


我正在运行的 Discourse 是 latest-release +463,落后 21 个提交。

1 个赞

在更新 discourse 之前,我遇到了和之前一样的问题,然后在启用“自定义页眉链接(图标)”后再次遇到同样的问题。


更新后

1 个赞

此讨论继续自:Discourse-events 'this.router' error - #11 by david


我的 Discourse 也已完全更新,但错误略有变化:

截图

我在日历上有很多事件是此插件使用的,但此后已禁用。


我们认为此插件已损坏,应标记为 broken

这与其他报告一致:


还值得一提的是:@Ethsim2discourse-calendar 插件中提出了 iCal Feed 同步支持 作为一项原生功能。该主题已有两位 Discourse 团队成员点赞 — 因此,如果其他人也受到此问题的影响,这是一个值得关注或支持的好主题。

2 个赞

也许也值得注意,@Halden42


但是,我无法真正推断出这个库的升级是否会提供该功能,许多此插件的用户能够依赖或知道如何修复