Error interno del servidor al previsualizar correos electrónicos de resumen

Hello,

I’m on Discourse 3.6.0.beta1-dev and facing an issue when trying to preview the digest email from the admin panel:
/admin/email/preview-digest

Problem description

  • When I click to send the digest, I get an Internal Server Error.
  • The email is not sent, and the error message appears as shown in the screenshots.

Screenshots


Error details

Message

ArgumentError (comparison of String with ActiveSupport::TimeWithZone failed)
app/controllers/list_controller.rb:525:in `>'
app/controllers/list_controller.rb:525:in `best_periods_for'
app/controllers/list_controller.rb:512:in `best_period_with_topics_for'
app/controllers/list_controller.rb:504:in `best_period_for'
app/models/topic.rb:560:in `for_digest'
app/mailers/user_notifications.rb:246:in `digest'
app/controllers/admin/email_controller.rb:49:in `respond_to?'
app/controllers/admin/email_controller.rb:49:in `send_digest'
app/controllers/application_controller.rb:429:in `block in with_resolved_locale'
app/controllers/application_controller.rb:429:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/middleware/crawler_hooks.rb:11:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
lib/middleware/default_headers.rb:13:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/processing_request.rb:12:in `call'
lib/middleware/request_tracker.rb:410:in `call'

Backtrace

app/controllers/list_controller.rb:525:in `>'
app/controllers/list_controller.rb:525:in `best_periods_for'
app/controllers/list_controller.rb:512:in `best_period_with_topics_for'
app/controllers/list_controller.rb:504:in `best_period_for'
app/models/topic.rb:560:in `for_digest'
app/mailers/user_notifications.rb:246:in `digest'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:163:in `process'
actionmailer (8.0.2.1) lib/action_mailer/rescuable.rb:29:in `block in process'
actionmailer (8.0.2.1) lib/action_mailer/rescuable.rb:21:in `handle_exceptions'
actionmailer (8.0.2.1) lib/action_mailer/rescuable.rb:28:in `process'
actionview (8.0.2.1) lib/action_view/rendering.rb:40:in `process'
actionmailer (8.0.2.1) lib/action_mailer/base.rb:652:in `block in process'
activesupport (8.0.2.1) lib/active_support/notifications.rb:212:in `instrument'
actionmailer (8.0.2.1) lib/action_mailer/base.rb:651:in `process'
actionmailer (8.0.2.1) lib/action_mailer/message_delivery.rb:136:in `block in processed_mailer'
<internal:kernel>:90:in `tap'
actionmailer (8.0.2.1) lib/action_mailer/message_delivery.rb:135:in `processed_mailer'
actionmailer (8.0.2.1) lib/action_mailer/message_delivery.rb:32:in `__getobj__'
/usr/local/lib/ruby/3.3.0/delegate.rb:101:in `respond_to_missing?'
app/controllers/admin/email_controller.rb:49:in `respond_to?'
app/controllers/admin/email_controller.rb:49:in `send_digest'
actionpack (8.0.2.1) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:226:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:120:in `block in run_callbacks'
app/controllers/application_controller.rb:429:in `block in with_resolved_locale'
i18n (1.14.7) lib/i18n.rb:353:in `with_locale'
app/controllers/application_controller.rb:429:in `with_resolved_locale'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack (8.0.2.1) lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `block in instrument'
activesupport (8.0.2.1) lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport (8.0.2.1) lib/active_support/notifications.rb:210:in `instrument'
actionpack (8.0.2.1) lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack (8.0.2.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (8.0.2.1) lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack (8.0.2.1) lib/abstract_controller/base.rb:163:in `process'
actionview (8.0.2.1) lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler (4.0.1) lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack (8.0.2.1) lib/action_controller/metal.rb:252:in `dispatch'
actionpack (8.0.2.1) lib/action_controller/metal.rb:335:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/routing/mapper.rb:32:in `block in <class:Constraints>'
actionpack (8.0.2.1) lib/action_dispatch/routing/mapper.rb:62:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `each'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack (8.0.2.1) lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack (8.0.2.1) lib/action_dispatch/routing/route_set.rb:908:in `call'
lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
lib/middleware/crawler_hooks.rb:11:in `call'
rack (2.2.17) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.17) lib/rack/conditional_get.rb:40:in `call'
rack (2.2.17) lib/rack/head.rb:12:in `call'
actionpack (8.0.2.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:415:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
rack (2.2.17) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.17) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (8.0.2.1) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2.1) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster (2.20.1) lib/logster/middleware/reporter.rb:40:in `call'
lib/middleware/default_headers.rb:13:in `call'
railties (8.0.2.1) lib/rails/rack/logger.rb:41:in `call_app'
railties (8.0.2.1) lib/rails/rack/logger.rb:29:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/request_id.rb:34:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
rack (2.2.17) lib/rack/method_override.rb:24:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/executor.rb:16:in `call'
rack (2.2.17) lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler (4.0.1) lib/mini_profiler.rb:191:in `call'
lib/middleware/processing_request.rb:12:in `call'
message_bus (4.4.1) lib/message_bus/rack/middleware.rb:60:in `call'
lib/middleware/request_tracker.rb:410:in `call'
actionpack (8.0.2.1) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
railties (8.0.2.1) lib/rails/engine.rb:535:in `call'
railties (8.0.2.1) lib/rails/railtie.rb:226:in `public_send'
railties (8.0.2.1) lib/rails/railtie.rb:226:in `method_missing'
rack (2.2.17) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.17) lib/rack/urlmap.rb:58:in `each'
rack (2.2.17) lib/rack/urlmap.rb:58:in `call'
unicorn (6.1.0) lib/unicorn/http_server.rb:634:in `process_client'
unicorn (6.1.0) lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn (6.1.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn (6.1.0) lib/unicorn/http_server.rb:143:in `start'
unicorn (6.1.0) bin/unicorn:128:in `<top (required)>'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'

Warning details

Message

Failed to handle exception in exception app middleware : ArgumentError : comparison of String with ActiveSupport::TimeWithZone failed

Backtrace

/var/www/discourse/app/controllers/list_controller.rb:525:in `>'
/var/www/discourse/app/controllers/list_controller.rb:525:in `best_periods_for'
/var/www/discourse/app/controllers/list_controller.rb:512:in `best_period_with_topics_for'
/var/www/discourse/app/controllers/list_controller.rb:504:in `best_period_for'
/var/www/discourse/app/models/topic.rb:560:in `for_digest'
/var/www/discourse/app/mailers/user_notifications.rb:246:in `digest'
actionpack-8.0.2.1/lib/abstract_controller/base.rb:226:in `process_action'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack-8.0.2.1/lib/abstract_controller/base.rb:163:in `process'
actionmailer-8.0.2.1/lib/action_mailer/rescuable.rb:29:in `block in process'
actionmailer-8.0.2.1/lib/action_mailer/rescuable.rb:21:in `handle_exceptions'
actionmailer-8.0.2.1/lib/action_mailer/rescuable.rb:28:in `process'
actionview-8.0.2.1/lib/action_view/rendering.rb:40:in `process'
actionmailer-8.0.2.1/lib/action_mailer/base.rb:652:in `block in process'
activesupport-8.0.2.1/lib/active_support/notifications.rb:212:in `instrument'
actionmailer-8.0.2.1/lib/action_mailer/base.rb:651:in `process'
actionmailer-8.0.2.1/lib/action_mailer/message_delivery.rb:136:in `block in processed_mailer'
<internal:kernel>:90:in `tap'
actionmailer-8.0.2.1/lib/action_mailer/message_delivery.rb:135:in `processed_mailer'
actionmailer-8.0.2.1/lib/action_mailer/message_delivery.rb:32:in `__getobj__'
/usr/local/lib/ruby/3.3.0/delegate.rb:101:in `respond_to_missing?'
/var/www/discourse/app/controllers/admin/email_controller.rb:49:in `respond_to?'
/var/www/discourse/app/controllers/admin/email_controller.rb:49:in `send_digest'
actionpack-8.0.2.1/lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'
actionpack-8.0.2.1/lib/abstract_controller/base.rb:226:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/rendering.rb:193:in `process_action'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:261:in `block in process_action'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:120:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:429:in `block in with_resolved_locale'
i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:429:in `with_resolved_locale'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:140:in `run_callbacks'
actionpack-8.0.2.1/lib/abstract_controller/callbacks.rb:260:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/rescue.rb:27:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/instrumentation.rb:76:in `block in process_action'
activesupport-8.0.2.1/lib/active_support/notifications.rb:210:in `block in instrument'
activesupport-8.0.2.1/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
activesupport-8.0.2.1/lib/active_support/notifications.rb:210:in `instrument'
actionpack-8.0.2.1/lib/action_controller/metal/instrumentation.rb:75:in `process_action'
actionpack-8.0.2.1/lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord-8.0.2.1/lib/active_record/railties/controller_runtime.rb:39:in `process_action'
actionpack-8.0.2.1/lib/abstract_controller/base.rb:163:in `process'
actionview-8.0.2.1/lib/action_view/rendering.rb:40:in `process'
rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
actionpack-8.0.2.1/lib/action_controller/metal.rb:252:in `dispatch'
actionpack-8.0.2.1/lib/action_controller/metal.rb:335:in `dispatch'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:67:in `dispatch'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:50:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:32:in `block in <class:Constraints>'
actionpack-8.0.2.1/lib/action_dispatch/routing/mapper.rb:62:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:53:in `block in serve'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:133:in `block in find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `each'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:126:in `find_routes'
actionpack-8.0.2.1/lib/action_dispatch/journey/router.rb:34:in `serve'
actionpack-8.0.2.1/lib/action_dispatch/routing/route_set.rb:908:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:35:in `call'
/var/www/discourse/lib/middleware/crawler_hooks.rb:11:in `call'
rack-2.2.17/lib/rack/tempfile_reaper.rb:15:in `call'
rack-2.2.17/lib/rack/conditional_get.rb:40:in `call'
rack-2.2.17/lib/rack/head.rb:12:in `call'
actionpack-8.0.2.1/lib/action_dispatch/http/permissions_policy.rb:38:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:415:in `call'
/var/www/discourse/lib/middleware/csp_script_nonce_injector.rb:12:in `call'
/var/www/discourse/config/initializers/008-rack-cors.rb:14:in `call'
rack-2.2.17/lib/rack/session/abstract/id.rb:266:in `context'
rack-2.2.17/lib/rack/session/abstract/id.rb:260:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/cookies.rb:706:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport-8.0.2.1/lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack-8.0.2.1/lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
logster-2.20.1/lib/logster/middleware/reporter.rb:40:in `call'
/var/www/discourse/lib/middleware/default_headers.rb:13:in `call'
railties-8.0.2.1/lib/rails/rack/logger.rb:41:in `call_app'
railties-8.0.2.1/lib/rails/rack/logger.rb:29:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:20:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/request_id.rb:34:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:23:in `call'
rack-2.2.17/lib/rack/method_override.rb:24:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/executor.rb:16:in `call'
rack-2.2.17/lib/rack/sendfile.rb:110:in `call'
rack-mini-profiler-4.0.1/lib/mini_profiler.rb:191:in `call'
/var/www/discourse/lib/middleware/processing_request.rb:12:in `call'
message_bus-4.4.1/lib/message_bus/rack/middleware.rb:60:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:410:in `call'
actionpack-8.0.2.1/lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
railties-8.0.2.1/lib/rails/engine.rb:535:in `call'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `public_send'
railties-8.0.2.1/lib/rails/railtie.rb:226:in `method_missing'
rack-2.2.17/lib/rack/urlmap.rb:74:in `block in call'
rack-2.2.17/lib/rack/urlmap.rb:58:in `each'
rack-2.2.17/lib/rack/urlmap.rb:58:in `call'
unicorn-6.1.0/lib/unicorn/http_server.rb:634:in `process_client'
unicorn-6.1.0/lib/unicorn/http_server.rb:739:in `worker_loop'
unicorn-6.1.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'
unicorn-6.1.0/lib/unicorn/http_server.rb:143:in `start'
unicorn-6.1.0/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/bin/unicorn:25:in `<main>'
1 me gusta

2 publicaciones se dividieron en un nuevo tema: Ver plantillas de correo electrónico en el editor WYSIWYG causa un error

sí, ya veo, con respecto al primer problema (Error interno del servidor), ¿puedes intentarlo desde tu lado?

https://xxx.xxx/admin/email/preview-digest

Me funcionó bien. ¿Qué ingresaste en “Último usuario visto”, el campo donde ingresas la fecha?

Nada, es por defecto: 25-08-23

¿Podrías compartir una captura de pantalla desde tu lado?

1 me gusta

Pude reproducir el error después de cambiar el idioma de mi interfaz al árabe. La vista previa del resumen de actividad funciona correctamente en alemán o inglés (con números ASCII), pero falla con números arábigos.

Pasos para reproducir:

  1. Cambia el idioma de tu interfaz al árabe
  2. Navega a /admin/email/preview-digest
  3. Selecciona una fecha en el selector de fechas y actualiza
    • Resultado esperado: Ves el resumen como lo harías cuando tu interfaz está en inglés
    • Resultado real: No hay resumen, solo un giro interminable en la interfaz, error 500 en la consola del navegador, entrada en /logs
  4. Recarga la página para detener el giro
  5. Introduce un correo electrónico y haz clic en “enviar”
    • Resultado esperado: El resumen se envía como lo haría cuando tu interfaz está en inglés
    • Resultado real: Ventana emergente con error interno del servidor, no se envía ningún correo electrónico, error 500 en la consola del navegador, entrada en /logs
1 me gusta

Sí, este problema solo ocurrió en árabe. Intenté cambiar a inglés y funciona bien.

1 me gusta

¿Algún plan para solucionarlo? ¿Hay alguna forma de enviar un boletín a todos los miembros por correo electrónico sobre mi foro? ¿Como la plantilla en los correos electrónicos de resumen?

Poniendo un pr-welcome a esto, probablemente queramos hacer una conversión de fecha de números arábigos para que el resto del código no se rompa.

2 Me gusta

@xkhalid ¿Te funcionan otros selectores de fecha en Discourse?
Por ejemplo:

  • ¿funciona “insertar hora” desde el menú más en el compositor?

  • ¿funciona seleccionar un período de tiempo en tu panel de administración?

  • ¿funciona filtrar los registros de acciones del personal?

Si funcionan, podrían usarse como modelo para modificar el DatePicker en el resumen de actividad.

No


No


No

1 me gusta

Entonces no estoy seguro de si tiene sentido corregir el período de tiempo en el resumen de actividad individualmente, que es algo que podría haber podido hacer.
Para mí, esto parece un problema fundamental que requiere una solución general para todas las entradas de fecha.

1 me gusta

Estoy mirando esto, creo que tengo un código funcional para la segunda instancia (editor enriquecido) y para la primera creo que podemos crear un middleware que transforme los parámetros relacionados con la fecha local.

Estoy subiendo mis cambios en esta rama del repositorio: GitHub - ghassanmas/discourse at local-date-fix-ar

1 me gusta

Gracias @ghassan por tu contribución.

Estoy pensando en probar esto en mi propio foro, pero es mejor probarlo primero en un entorno de pruebas.

Sí, todavía no está listo, encontré otro caso extremo para los números persas/urdu.

Además, creo que podría haber una solución más simple, de modo que los números/fechas se guarden y transfieran en formato ASCII y solo se localicen en la capa de visualización.

Esto debería funcionar asumiendo que momentjs o moment-timezone siempre conocen la configuración regional correcta.

Con respecto a la imagen que subiste. ¿estás de acuerdo en que la fecha debe rotarse `٢٥-٠٨-٢٠٢٤`?

Si los números se invierten, sería muy confuso para los usuarios árabes, ya que en árabe naturalmente comenzamos de izquierda a derecha con día → mes → año.

La forma en que se muestra la fecha en árabe en nuestro lado es correcta, como se muestra en la captura de pantalla.

Dicho esto, me gusta mucho tu idea: la mejor solución sería, de hecho, almacenar los números en inglés (ASCII) y solo localizarlos en la capa de vista según el idioma. Ese es un enfoque excelente.

1 me gusta

Interesante, soy hablante nativo de árabe, pero pensaría de otra manera.

@xkhalid aquí tienes un parche para el segundo enfoque GitHub - ghassanmas/discourse at local-date-fix-improvment

¿Puedes confirmar desde tu lado que resolvió los dos casos?

1 me gusta

@ghassan Lamentablemente, no tengo un entorno de pruebas separado; solo tengo el servidor de producción con el que trabajar :frowning:

Lo he probado en desarrollo local.

Aquí está el PR fix: when date locale isnt ascii by ghassanmas · Pull Request #34914 · discourse/discourse · GitHub

Todavía necesita arreglar algunas pruebas (porque también agregué mejoras para que el editor enriquecido muestre fechas locales), probablemente necesite agregar más pruebas.

Sería mejor obtener un :+1: sobre la dirección antes de dedicarme a arreglar/agregar las pruebas.

1 me gusta