dsims
(Daniel)
2 Abril, 2025 12:41
1
Si pongo comillas en el nombre de mi evento de Discourse Calendar (and Event) como Nombre del evento: RSVP “Ir” para unirse
Al guardar, se produce un error 500 en PUT /posts/123 (probablemente debido a markdown roto), pero lo malo es que todos los asistentes parecen ser eliminados del evento.
Nota: esto se usó con Discourse Livestream , pero supongo que no está relacionado.
3 Me gusta
sam
(Sam Saffron)
2 Abril, 2025 23:37
2
Vaya, echaremos un vistazo a esto la próxima semana.
Dado que está recibiendo un 500, ¿puede mirar en /logs y decirnos qué ve allí?
1 me gusta
dsims
(Daniel)
3 Abril, 2025 03:11
3
Creo que lo que está sucediendo es que las comillas sin escapar rompen el marcado del evento, por lo que no se detecta ningún evento y el evento es destruido . Luego, cuando elimino las comillas y vuelvo a guardar, se crea un nuevo evento.
El error 500 durante la serialización es probablemente un efecto secundario relacionado.
NoMethodError (undefined method `end_of_day' for nil)
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:93:in `expired?'
plugins/discourse-calendar/app/models/discourse_post_event/event.rb:279:in `can_user_update_attendance'
plugins/discourse-calendar/app/serializers/discourse_post_event/event_serializer.rb:93:in `can_update_attendance'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):4:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/json/encoding.rb:23:in `encode'
activesupport (7.2.2.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:506:in `render_json_dump'
app/controllers/posts_controller.rb:301:in `update'
2 Me gusta
Gracias por el informe @dsims , esto se solucionará una vez que se fusione esta PR.
main ← fix-escape-quotes
opened 01:12PM - 08 Apr 25 UTC
…kdown
This is not the best UX as user might enter an event name with double … quotes and they'll be deleted once they click save. But at least it won't break their event because the double quote breaks the BBCode/Markdown.
A proper fix would be to manipulate an AST instead of using regular expressions on a a string.
Meta - https://meta.discourse.org/t/-/360010
No es la “mejor” solución, pero al menos el evento no fallará si un usuario introduce un \" en uno de los campos del modal del evento.
1 me gusta