Angus' 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 „GefĂ€llt mir“

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.

https://discourse.angusmcleod.com.au/w/feature-request (requires an account on my sandbox)

Cheers,

Angus

4 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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

2 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

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 „GefĂ€llt mir“

Hallo zusammen,

ich glaube, es gibt einen Fehler im Event-Plugin. Habt ihr eine Idee?

1 „GefĂ€llt mir“

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 „GefĂ€llt mir“

@Jeremie_Leroy @SDKAAA @icaria36 Vielen Dank fĂŒr eure Fehlerberichte.

Nach diesem Commit sollte das Problem nicht mehr auftreten:

FĂŒr weiteren Kontext:

3 „GefĂ€llt mir“

Dieser Patch scheint zu funktionieren! Der Unterschied, ob wir diesen Patch haben oder nicht, bedeutete fĂŒr uns, entweder eine defekte Website oder eine (offensichtlich) voll funktionsfĂ€hige Website zu haben.

Dies waren die Auswirkungen des Fehlers:

  • Discourse wurde fĂŒr anonyme Nutzer nicht ĂŒber die Kopfzeile hinaus gerendert (völlig unbenutzbare Website).
  • FĂŒr registrierte Nutzer wurden wahrscheinlich nicht zwischengespeicherte Inhalte (z. B. „Neueste“-Listen) nicht gerendert, und der Rest war GlĂŒckssache.
  • Seltsamerweise verloren von drei Administratoren zwei den vollstĂ€ndigen Zugriff auf die Web-OberflĂ€che, wĂ€hrend ein dritter (ich) weiterhin auf die Admin-Schnittstelle zugreifen und vor dem Neuaufbau ein Backup erstellen konnte.

Mit anderen Worten: Egal, was der Fehler ist, er kann zu einem schwerwiegenden Problem werden, das die Website lahmlegt.

Gestern Morgen haben wir Discourse aktualisiert, und der Fehler trat einige Stunden spÀter auf.

2 „GefĂ€llt mir“

Beachten Sie, dass Sie, falls Sie von diesem Fehler betroffen waren, auch nach dem Update möglicherweise weiterhin Probleme mit der „Agenda“-Themenliste haben (der Rest der FunktionalitĂ€t ist von diesem speziellen Problem nicht betroffen). Ich habe einen PR an Discourse eingereicht, um dieses sekundĂ€re Problem zu beheben.

2 „GefĂ€llt mir“

Die Kalenderansicht weist ebenfalls Probleme auf (Fehler 500). Siehe https://discuss-space.wmflabs.org/calendar & https://discuss-space.wmflabs.org/c/events

1 „GefĂ€llt mir“

Äh
 und jetzt funktioniert es, ohne dass wir irgendetwas verĂ€ndert haben. :thinking:

BEARBEITET: Und jetzt ist es wieder kaputt


1 „GefĂ€llt mir“