dsims
(Daniel)
2 أبريل 2025، 12:41م
1
إذا وضعت علامات اقتباس في اسم الحدث الخاص بي على Discourse Calendar (and Event) مثل اسم الحدث: RSVP “ذاهب” للانضمام
عند الحفظ، يتسبب ذلك في حدوث خطأ 500 في PUT /posts/123 (من المحتمل بسبب علامات Markdown معطلة) ولكن الجزء السيئ هو أن جميع الحاضرين يبدو أنهم قد تم مسحهم من الحدث.
ملاحظة: تم استخدام هذا مع Discourse Livestream ولكن أفترض أن هذا غير ذي صلة.
3 إعجابات
sam
(Sam Saffron)
2 أبريل 2025، 11:37م
2
يخ، سنلقي نظرة على هذا في وقت ما خلال الأسبوع القادم.
بالنظر إلى أنك تحصل على 500، هل يمكنك إلقاء نظرة في /logs وإخبارنا بما تراه هناك؟
إعجاب واحد (1)
dsims
(Daniel)
3 أبريل 2025، 3:11ص
3
أعتقد أن ما يحدث هو أن علامات الاقتباس غير المعالجة تكسر ترميز الحدث، لذلك لا يتم اكتشاف أي حدث ويتم تدمير الحدث. ثم عندما أقوم بإزالة علامات الاقتباس وأضغط على حفظ مرة أخرى، يتم إنشاء حدث جديد .
من المحتمل أن يكون خطأ 500 أثناء التسلسل نتيجة جانبية ذات صلة.
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)
شكراً على التقرير @dsims ، سيتم إصلاح هذا بمجرد دمج طلب السحب هذا.
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
إنه ليس أفضل إصلاح، ولكنه على الأقل لن يتعطل الحدث إذا أدخل المستخدم علامة " في أحد حقول نموذج الحدث.
إعجاب واحد (1)