Events Plugin 📆

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!

1 Like

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!

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: )

1 Like

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.

Done. I’ve edited my post to add the links: Events Plugin 📆

1 Like

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?

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 Add event reminders - Public Work - Angus' Sandbox.

2 Likes

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

:heart:

There’s finally a feature request for this. Please vote!

2 Likes

Hi All,

i beleive there is a bug with the event plugin, any idea ?

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>'
1 Like

@Jeremie_Leroy @SDKAAA @quimgil Thanks for your bug reports.

After this commit the issue should no longer appear:

For further context:

2 Likes

This patch seems to work! I can tell that the difference between having this patch or not for us meant having a broken site or a(n apparently) fully functional one.

These were the effects of the bug:

  • Discourse not rendering to anonymous users beyond the header (totally unusable site).
  • For registered users, probably non-cached content (i.e. Latest lists) wouldn’t render, and the rest was a hit or miss.
  • Strangely enough, from three admins two would lose access to the web UI completely while a third (myself) still could access the admin interface and create a backup before rebuilding.

In other words: whatever is the bug, it can become a major one breaking the site.

Yesterday morning we upgraded Discourse, and the bug appeared hours later

1 Like

Note that if you were affected by this bug, even after the update you may still be having an issue with the “Agenda” topic list (the rest of the functionality is unaffected by this particular issue). I’ve made a PR to Discourse to address this secondary issue.

1 Like

The Calendar view has issues as well (Error 500). See https://discuss-space.wmflabs.org/calendar & Events - Wikimedia Space

Er… and now it works without us having touched anything. :thinking:

EDITED: And now it’s broken again…

Second this. Colors are better than icons IMO because they come across visually on the calendar easier.

It would be great if a user could “subscribe” to each type, on the Calendar/Agenda pages, by un/checking boxes and having it save their preferences. Then they could elect to be notified each time one of their preferred type of events were posted. Less noise, more signal.

Thank you again for all of your development so far. This has been a great addition to our little non-profit. Amazing work!

1 Like

@quimgil @Jeremie_Leroy The calendar and agenda views should work again once you update.

See further:

2 Likes

Great, thanks @angus , i was wondering, is there somewhere i can sort the events by the soon on top ? -> Sortir - Activités - Français à Londres

Updated and so far it works. Thank you very much.

1 Like