Plugin de Ubicaciones 🌍

  • CORRECCIÓN: abrir el mapa global de Temas directamente no debería causar ningún problema
  • CORRECCIÓN: la transición entre un mapa de Categoría y el mapa global ahora debería funcionar correctamente
  • Pruebas de mapa WIP no funcionales

@vincefrommtl, @Stephane_Roy @packman, ¿podrían probar esta actualización? Tengan en cuenta el alcance de las correcciones. Otra corrección llegará pronto.

(Nota técnica: debido a que la biblioteca Leaflet es un objeto global, aparentemente QUnit no puede verlo, por lo que no he podido proporcionar pruebas FE completamente integradas para estas correcciones. Si alguien sabe cómo hacer que Leaflet y QUnit funcionen juntos, por favor hágamelo saber).

3 Me gusta

Mis comentarios:

  • La transición entre el mapa global y un mapa de categoría funciona. Pero lo contrario está roto (del mapa de categoría al mapa global), al igual que de categoría a categoría.
  • No he visto este error en mi registro desde que actualicé: ActionView::Template::Error (No route matches {:action=>"map_feed", :controller=>"list"}). :slight_smile:
  • Nuevo error: A veces, los enlaces agrupados en el mapa solo muestran el marcador de posición en el mapa cuando se amplía, no la etiqueta.
  • Nuevo error: A veces, las etiquetas de los marcadores en el mapa no enlazan al tema correspondiente.
  • Nuevo error: el mapa global ahora se ve afectado por el mismo error que los mapas de categoría: solo muestra algunos marcadores (ver más abajo).

En cuanto a los mapas que tienen menos marcadores de lo esperado: lo he examinado detenidamente y solo muestra marcadores de temas activos en los últimos 20 días (o algo así), y un máximo de 30 de ellos. ¿Es posible que sea un problema de configuración en nuestro foro? ¡Parece muy específico! Pero no hemos cambiado nada en esa configuración. Tengo un máximo de 1700 temas máximos del mapa de ubicación y no creo que haya ninguna configuración relacionada con el tiempo que lleve a mostrar solo marcadores de temas activos en los últimos 20 días.

1 me gusta

Después de actualizar, abrí el mapa global y no se mostraban marcadores (tema). Si edito la ubicación de un tema con un marcador y simplemente guardo sin cambios, el marcador aparece. Todos mis marcadores tienen más de 20 días, ¿así que tal vez este sea el mismo problema que @vincefrommtl está viendo?

Editar: El botón Mostrar mapa para cada tema todavía muestra la ubicación correcta del marcador cuando ese marcador no se muestra en el mapa global.

1 me gusta

Gracias chicos, le echaré otro vistazo.

2 Me gusta

Esto no es una solución completa, pero creo que debería restaurar las ubicaciones de los temas antiguos y evitar el error del mapa al cargar directamente desde un enlace externo o al actualizar el navegador:

Problema conocido: No he resuelto la transición directa de Mapa => Mapa de Categoría (pero este debería ser un caso extremo), pero todo lo demás debería estar mejor.

1 me gusta

Probaré mañana, pero un usuario acaba de señalar que las ubicaciones de EE. UU. ahora se nombran como Ciudad, País, Estado, por ejemplo, Atlanta, EE. UU., Georgia.

Prueba rápida: Puedo confirmar que puedo ver todos los marcadores en el mapa con esta nueva actualización. Muchas gracias. :slight_smile:

Por el momento, aconsejaré a mis usuarios que no salten de un mapa de categoría a otro, para evitar la transición rota.

1 me gusta

Los únicos cambios recientes están relacionados con la población del mapa.

El orden de país/estado no es la versión más reciente. Lo mencioné porque no recuerdo haberlo visto antes de las versiones de los últimos días.

1 me gusta

@packman por ahora he solucionado tu problema anterior:

y esto ahora está cubierto por pruebas.

gracias de nuevo a @david por sacarme de el búnker en ese.

3 Me gusta

@merefield Hola, solo para avisarte, el método modify_user_params ha estado obsoleto por un tiempo y pronto será eliminado ahora que Discourse está en la versión 3.2.0.beta1-dev

discourse-locations/lib/users_map.rb
35:  def modify_user_params(attrs)

¿Podrías trabajar en actualizarlo para usar el modificador users_controller_update_user_params cuando tengas oportunidad? ¡Gracias!

1 me gusta

Claro, gracias por el aviso adicional, lo revisaré esta semana.

1 me gusta

Blake, esto está hecho, ¿te importa si te añado como revisor?

3 Me gusta

¡Genial, gracias!

2 Me gusta

¡Gracias, fusionado!

1 me gusta

Lamento dar malas noticias, pero tengo un informe de error.

Actualmente estamos ejecutando la última versión, actualizamos esta mañana: 3.2.0.beta1-dev (7ca5ee6cd2)

Estamos encontrando un problema extraño, que no existía hace dos semanas cuando actualizamos por última vez, por el cual ya no podemos editar el perfil de un usuario si tiene campos personalizados.

Deseo editar este usuario: https://example.com/u/username/preferences/profile

La página se carga bien:

Tan pronto como hago clic en Guardar, obtengo un error:

Esto salió a la luz porque uno de nuestros otros sitios web actualiza el campo personalizado “membership” cuando nuestros miembros del club se actualizan, y el endpoint de la API de Discourse estaba lanzando un error 500.

Esto es evidente cuando intento reproducirlo usando Postman también:

Los logs de Discourse muestran:

y:

plugins/discourse-locations/plugin.rb:188:in `block (2 levels) in activate!'

lib/discourse_plugin_registry.rb:293:in `apply_modifier'

app/controllers/users_controller.rb:2036:in `user_params'

app/controllers/users_controller.rb:198:in `update'

actionpack (7.0.7) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack (7.0.7) lib/abstract_controller/base.rb:215:in `process_action'

actionpack (7.0.7) lib/action_controller/metal/rendering.rb:165:in `process_action'

actionpack (7.0.7) lib/abstract_controller/callbacks.rb:234:in `block in process_action'

activesupport (7.0.7) lib/active_support/callbacks.rb:118:in `block in run_callbacks'

app/controllers/application_controller.rb:420:in `block in with_resolved_locale'

i18n (1.14.1) lib/i18n.rb:322:in `with_locale'

app/controllers/application_controller.rb:420:in `with_resolved_locale'

activesupport (7.0.7) lib/active_support/callbacks.rb:127:in `block in run_callbacks'

activesupport (7.0.7) lib/active_support/callbacks.rb:138:in `run_callbacks'

actionpack (7.0.7) lib/abstract_controller/callbacks.rb:233:in `process_action'

actionpack (7.0.7) lib/action_controller/metal/rescue.rb:23:in `process_action'

actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'

activesupport (7.0.7) lib/active_support/notifications.rb:206:in `block in instrument'

activesupport (7.0.7) lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport (7.0.7) lib/active_support/notifications.rb:206:in `instrument'

actionpack (7.0.7) lib/action_controller/metal/instrumentation.rb:66:in `process_action'

actionpack (7.0.7) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'

activerecord (7.0.7) lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack (7.0.7) lib/abstract_controller/base.rb:151:in `process'

actionview (7.0.7) lib/action_view/rendering.rb:39:in `process'

actionpack (7.0.7) lib/action_controller/metal.rb:188:in `dispatch'

actionpack (7.0.7) lib/action_controller/metal.rb:251:in `dispatch'

actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'

actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:32:in `serve'

actionpack (7.0.7) lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `each'

actionpack (7.0.7) lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack (7.0.7) lib/action_dispatch/routing/route_set.rb:852:in `call'

lib/middleware/omniauth_bypass_middleware.rb:74:in `call'

rack (2.2.8) lib/rack/tempfile_reaper.rb:15:in `call'

rack (2.2.8) lib/rack/conditional_get.rb:40:in `call'

rack (2.2.8) lib/rack/head.rb:12:in `call'

actionpack (7.0.7) lib/action_dispatch/http/permissions_policy.rb:38:in `call'

lib/content_security_policy/middleware.rb:12:in `call'

lib/middleware/anonymous_cache.rb:389:in `call'

lib/middleware/gtm_script_nonce_injector.rb:10:in `call'

rack (2.2.8) lib/rack/session/abstract/id.rb:266:in `context'

rack (2.2.8) lib/rack/session/abstract/id.rb:260:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/cookies.rb:704:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport (7.0.7) lib/active_support/callbacks.rb:99:in `run_callbacks'

actionpack (7.0.7) lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/show_exceptions.rb:29:in `call'

logster (2.12.2) lib/logster/middleware/reporter.rb:43:in `call'

railties (7.0.7) lib/rails/rack/logger.rb:40:in `call_app'

railties (7.0.7) lib/rails/rack/logger.rb:27:in `call'

config/initializers/100-quiet_logger.rb:20:in `call'

config/initializers/100-silence_logger.rb:29:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/request_id.rb:26:in `call'

lib/middleware/enforce_hostname.rb:24:in `call'

rack (2.2.8) lib/rack/method_override.rb:24:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/executor.rb:14:in `call'

rack (2.2.8) lib/rack/sendfile.rb:110:in `call'

actionpack (7.0.7) lib/action_dispatch/middleware/host_authorization.rb:131:in `call'

message_bus (4.3.7) lib/message_bus/rack/middleware.rb:60:in `call'

lib/middleware/request_tracker.rb:233:in `call'

railties (7.0.7) lib/rails/engine.rb:530:in `call'

railties (7.0.7) lib/rails/railtie.rb:226:in `public_send'

railties (7.0.7) lib/rails/railtie.rb:226:in `method_missing'

rack (2.2.8) lib/rack/urlmap.rb:74:in `block in call'

rack (2.2.8) lib/rack/urlmap.rb:58:in `each'

rack (2.2.8) 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.2.0/bin/unicorn:25:in `load'

vendor/bundle/ruby/3.2.0/bin/unicorn:25:in `<main>'

Curiosamente, puedo editar mi PROPIO perfil y actualizar los campos de usuario personalizados sin problemas.

Pero ya no puedo editar a ningún otro usuario, y tampoco el system puede realizar las actualizaciones a través de nuestra API.

Si deshabilito el plugin Locations, todo vuelve a funcionar correctamente:

3 Me gusta

@Richie gracias por tu informe.

Puedo reproducirlo.

Solo parece ocurrir cuando alguien no tiene una ubicación.

Este código fue refactorizado recientemente debido a una depreciación en el núcleo y me he perdido un caso (bastante grande). Lo parchearé pronto.

5 Me gusta

Ah, así que tal vez editar mi propio perfil con éxito fue una pista falsa, ya que sí tengo una ubicación en el mío :slight_smile:

No te preocupes, gracias por el continuo apoyo :slight_smile:

Creo que eso debería estar arreglado ahora:

8 Me gusta

Actualización esta mañana, no más errores HTTP/500.

Gracias por la rápida solución Robert :smiley: :clap:

3 Me gusta