Plugin de eventos 📅

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 Me gusta

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 Me gusta

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 Me gusta

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 me gusta

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 Me gusta

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 me gusta

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 Me gusta

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 me gusta

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

2 Me gusta

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 me gusta

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 Me gusta

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 me gusta

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 Me gusta

Hola a todos,

Creo que hay un error con el plugin de eventos, ¿alguien tiene alguna idea?

1 me gusta

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 Me gusta

@Jeremie_Leroy @SDKAAA @icaria36 Gracias por sus informes de errores.

Después de este commit, el problema ya no debería aparecer:

Para más contexto:

3 Me gusta

¡Este parche parece funcionar! Puedo decir que la diferencia entre tener este parche o no para nosotros significaba tener un sitio roto o uno (aparentemente) totalmente funcional.

Estos fueron los efectos del error:

  • Discourse no se renderizaba para usuarios anónimos más allá del encabezado (sitio totalmente inutilizable).
  • Para usuarios registrados, es probable que el contenido no en caché (es decir, las listas de lo más reciente) no se renderizara, y el resto era una lotería.
  • Extrañamente, de tres administradores, dos perdieron el acceso a la interfaz web por completo, mientras que el tercero (yo) aún podía acceder a la interfaz de administración y crear una copia de seguridad antes de reconstruir.

En otras palabras: sea cual sea el error, puede convertirse en uno grave que rompa el sitio.

Ayer por la mañana actualizamos Discourse, y el error apareció horas después.

2 Me gusta

Tenga en cuenta que, si se vio afectado por este error, incluso después de la actualización, es posible que siga teniendo un problema con la lista de temas “Agenda” (el resto de la funcionalidad no se ve afectada por este problema en particular). He realizado una solicitud de extracción (PR) a Discourse para abordar este problema secundario.

2 Me gusta

La vista de Calendario también presenta problemas (Error 500). Consulta https://discuss-space.wmflabs.org/calendar y https://discuss-space.wmflabs.org/c/events

1 me gusta

Eh… y ahora funciona sin que hayamos tocado nada. :thinking:

EDITADO: Y ahora está roto de nuevo…

1 me gusta