Events Plugin 📅

I’d also like to able to filter events by tags. If you use the nav bar tag filter, it works only for the agenda view, not for the calendar and maps view. :frowning:
But that’s really complaining on a high level. I’ve just used the plugin on my site for the first time and its fantastic!

Edit: even better, if you could also negate tags, for instance “show me all events except those tagged ‘panel-discussion’”. And then the question becomes, can you do that with combinations of multiple tags? And could it also work for calendar subscriptions?

4 个赞

All good suggestions!

If you could make a formal feature request (and get @outofthebox and a couple of others to vote for it) I can add it into my workflow.

Feature Request (requires an account on my sandbox)

Cheers,

Angus

4 个赞

This great plugin has recently been installed over at https://community.coops.tech and I came here to ask that the date format be customisable, so very happy to discover it already is, thanks! :smiley:

I guess I’ll now just ask our admins to change it! :stuck_out_tongue:

5 个赞

There is an issue with the MIME type in the webcal generated link that prevents calendar from displaying events when imported into Office 365 calendar (Google calendar displays the events regardless).

Here’s the report from the validator:

Invalid MIME type detected, should be ‘text/calendar’ (found MIME type ‘text/plain; charset=utf-8’) near line # 1
Reference: RFC 5545 8.1. iCalendar Media Type Registration

On a side note: thank you for the fantastic work on this plugin! I’m eagerly awaiting the feature to add reminders to events, what is the current status on this?

1 个赞

Hi @angus, it seems to work very well. I have some extra feature requests:

EDIT : I have created some feature requests on Angus’ Sandbox for these proposals as suggested by @Ellibereth:

Hope they are clear enough, thank you for the work!

3 个赞

Glad to hear @jdaviescoates! Let us know how it goes!

We’ll take a look at this @md-misko - in the interim can you submit a bug report?

I’m not 100% sure, will check and get back to you.

Hey @Globulle, these are great ideas. Would you mind submitting feature requests for them? Link us to them here so we can go vote for them!

1 个赞

https://community.coops.tech/ now has much clearer dates, thanks! (and I’m now and admin too, so can tweak further if I so choose! :stuck_out_tongue: )

2 个赞

That explains why Mac OSX Calendar says the format is invalid :slight_smile:

Problem! Found 1 warning
Warnings
Invalid MIME type detected, should be 'text/calendar' (found MIME type 'text/html') near line # 1
Reference: RFC 5545 8.1. iCalendar Media Type Registration
Problem! Found 2 errors
Errors
This is not an iCalendar file or URL near line # 1
Reference: RFC 5545 3.4. iCalendar Object
Missing VCALENDAR object near line # 1
Reference: RFC 5545 3.4 iCalendar Object
Permalink: https://icalendar.org/validator.html?url=http://discourse.bd2l.com.au/c/cottage-singers/cs-concerts/l/calendar.ics?time_zone=Australia/Adelaide

Permalinks are available when validating by URL. You can use a permalink to send a link of the validation results page using e-mail or web posting.

JSON Permalink: https://icalendar.org/validator.html?url=http://discourse.bd2l.com.au/c/cottage-singers/cs-concerts/l/calendar.ics?time_zone=Australia/Adelaide&json=1

The JSON permalink formats the validation results in JSON format, which can be used by other programs for further analysis.
1 个赞

Done. I’ve edited my post to add the links: Events Plugin 📆 - #472 by Globulle

2 个赞

Would you be so kind and submit the bug report for me?

I tried to register on the Sandbox but I couldn’t—I never received the confirmation e-mail (it is not in spam folder either), even after multiple retries. Could you check the SMTP logs on your side?

1 个赞

Thanks @Globulle :+1:

Sorry about that @md-misko, I think this was a case of Outlook not behaving well with certain email services - I’ll check with angus but I’m not sure what the long term solution is. (Seen mentions of this pop up around meta every once in a while).

I validated your account manually so you should be able to log in and submit the report - let me know if you still run into any issues.

This has been slotted to be worked on in a couple of weeks per https://discourse.angusmcleod.com.au/t/add-event-reminders/879.

3 个赞

Thanks, it’s working now, bug report filed as

https://discourse.angusmcleod.com.au/t/incorrect-mime-type-in-the-webcal-generated-link/1128

:heart:

1 个赞

There’s finally a feature request for this. Please vote!
https://discourse.angusmcleod.com.au/t/events-tag-filter-in-calendar-and-maps-views/1165

3 个赞

大家好,

我认为事件插件存在一个 bug,有人知道吗?

1 个赞

Is the bellow error related to this plugin? (also posted here)

a user created a topic by copy pasting some content from a facebook page; this has crashed the topic iteslf, the category and his activities page. (the rest of the topics and categories of the site remained accessible)
I managed to destroy the topic from the console and everything went back to normal for the user and category.
Is this error related to the mentioned plugin “discourse-events”?
here follows the errors:
info:

NoMethodError (undefined method `nonzero?' for [1564826442, 1564826442]:Array)
/var/www/discourse/plugins/discourse-events/plugin.rb:155:in `has_event?'

backtrace:

/var/www/discourse/plugins/discourse-events/plugin.rb:155:in `has_event?'
/var/www/discourse/plugins/discourse-events/plugin.rb:223:in `include_event?'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:375:in `include?'
(eval):59:in `_fast_attributes'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:468:in `rescue in attributes'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:455:in `attributes'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:480:in `_serializable_hash'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:359:in `serializable_hash'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:347:in `as_json'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/json/encoding.rb:22:in `encode'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/json/encoding.rb:22:in `encode'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/core_ext/object/json.rb:41:in `to_json'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:331:in `to_json'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/multi_json-1.13.1/lib/multi_json/adapters/oj.rb:40:in `dump'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/multi_json-1.13.1/lib/multi_json/adapters/oj.rb:40:in `dump'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/multi_json-1.13.1/lib/multi_json/adapter.rb:25:in `dump'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/multi_json-1.13.1/lib/multi_json.rb:139:in `dump'
/var/www/discourse/app/controllers/topics_controller.rb:946:in `block (2 levels) in perform_show_response'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/mime_responds.rb:203:in `respond_to'
/var/www/discourse/app/controllers/topics_controller.rb:943:in `perform_show_response'
/var/www/discourse/app/controllers/topics_controller.rb:131:in `show'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:194:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:132:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/notifications.rb:168:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/abstract_controller/base.rb:134:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-5.2.3/lib/action_view/rendering.rb:32:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/journey/router.rb:35:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/routing/route_set.rb:840:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-protection-2.0.5/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/conditional_get.rb:25:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:220:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:98:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.3.0/lib/logster/middleware/reporter.rb:30:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-5.2.3/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiler.rb:281:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.0/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:163:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/engine.rb:524:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-5.2.3/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.7/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.1/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
2 个赞

@Jeremie_Leroy @SDKAAA @icaria36 感谢你们提交的错误报告。

在此提交之后,该问题应该不再出现:

更多背景信息:

3 个赞

这个补丁似乎有效!我们可以看出,是否应用这个补丁对我们来说,意味着网站是完全无法使用还是(看起来)完全正常运行。

以下是该 bug 造成的影响:

  • Discourse 对匿名用户仅渲染到页头部分(网站完全无法使用)。
  • 对于注册用户,可能非缓存内容(例如“最新”列表)无法渲染,其余内容则时好时坏。
  • 奇怪的是,在三位管理员中,有两位完全无法访问 Web UI,而第三位(我本人)仍能访问管理界面,并在重建之前成功创建了备份。

换句话说:无论该 bug 是什么,它都可能演变成导致网站瘫痪的重大问题。

昨天上午我们升级了 Discourse,几个小时后该 bug 就出现了。

2 个赞

请注意,如果您曾受此漏洞影响,即使已应用更新,您仍可能在“议程”主题列表方面遇到问题(此特定问题不影响其余功能)。我已向 Discourse 提交了一个拉取请求(PR)以解决这一后续问题。

2 个赞

日历视图也存在一些问题(错误 500)。请参阅 https://discuss-space.wmflabs.org/calendarhttps://discuss-space.wmflabs.org/c/events

1 个赞

呃……现在它又好了,我们什么都没动。:thinking:

已编辑:现在又坏了…

1 个赞