Plugin de Localizações 🌍

  • CORREÇÃO: abrir o mapa global de Tópicos diretamente não deve causar problemas
  • CORREÇÃO: a transição entre um mapa de Categoria e o mapa global agora deve funcionar corretamente
  • Testes de mapa WIP não funcionais

@vincefrommtl, @Stephane_Roy @packman, vocês poderiam, por favor, testar esta atualização? Observe o escopo das correções. Outra correção em breve.

(Nota técnica: devido à biblioteca Leaflet ser um objeto global, aparentemente o QUnit não consegue vê-la, então não pude fornecer testes de FE totalmente integrados para essas correções - se alguém souber como fazer o Leaflet e o QUnit funcionarem juntos, por favor, me avise)

3 curtidas

Meu feedback:

  • A transição entre o mapa global e um mapa de categoria está funcionando. Mas o oposto está quebrado (mapa de categoria para mapa global), assim como de categoria para categoria.
  • Não vi este erro no meu log desde que atualizei: ActionView::Template::Error (No route matches {:action=>"map_feed", :controller=>"list"}). :slight_smile:
  • Novo bug: Às vezes, links agrupados no mapa estão mostrando apenas o marcador de posição no mapa quando ampliados, não o rótulo.
  • Novo bug: Às vezes, os rótulos dos marcadores no mapa não estão vinculando ao tópico correspondente.
  • Novo bug: o mapa global agora é afetado pelo mesmo bug dos mapas de categoria: mostrando apenas alguns marcadores (veja abaixo).

Em relação aos mapas que têm menos marcadores do que o suposto: dei uma boa olhada e ele está mostrando apenas marcadores para tópicos ativos nos últimos 20 dias (ou algo assim), e um máximo de 30 deles. É possível que seja um problema de configuração em nosso fórum? Parece muito específico! Mas não alteramos nada nessas configurações. Tenho um máximo de 1700 mapa de localização max tópicos e não acho que haja alguma configuração relacionada ao tempo que levaria a mostrar apenas marcadores de tópicos ativos nos últimos 20 dias?

1 curtida

Após a atualização, abri o mapa global e nenhum marcador (tópico) foi exibido. Se eu editar a localização de um tópico com um marcador e apenas salvar sem alterações, o marcador aparece. Todos os meus marcadores têm mais de 20 dias, então talvez este seja o mesmo problema que @vincefrommtl está vendo?

Editar: O botão Mostrar Mapa para cada tópico ainda mostra a localização correta do marcador quando esse marcador não é exibido no mapa global.

1 curtida

Obrigado pessoal, vou dar outra olhada.

2 curtidas

Isso não é uma correção completa, mas deve, na minha opinião, restaurar as localizações de tópicos antigas, evitando o erro do mapa ao carregar diretamente de um link externo ou uma atualização do navegador:

Problema conhecido: Não resolvi a transição direta do Mapa => Mapa de Categoria (mas este deve ser um caso extremo), mas todo o resto deve estar melhor.

1 curtida

Vou testar amanhã, mas um usuário acabou de apontar que os locais dos EUA agora estão sendo nomeados como Cidade, País, Estado, por exemplo, Atlanta, EUA, Geórgia.

Teste rápido: Posso confirmar que consigo ver todos os marcadores no mapa com esta nova atualização. Muito obrigado. :slight_smile:

Por enquanto, aconselharei meus usuários a não pularem de um Mapa de Categoria para outro, para contornar a transição quebrada.

1 curtida

As únicas alterações recentes estão relacionadas à população do mapa.

A ordem país/estado não é a versão mais recente. Mencionei-a porque não me lembro de tê-la visto antes das versões dos últimos dias.

1 curtida

@packman por enquanto corrigi seu problema anterior:

e isso agora está coberto por testes.

obrigado novamente a @david por me tirar do bunker naquele caso.

3 curtidas

@merefield Ei, só para avisar, o método modify_user_params está obsoleto há algum tempo e será removido em breve, agora que o Discourse está na versão 3.2.0.beta1-dev

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

Você poderia trabalhar na atualização para usar o modificador users_controller_update_user_params quando tiver uma chance? Obrigado!

1 curtida

Com certeza, obrigado pelo aviso adicional, vou analisar esta semana.

1 curtida

Blake, isso está feito, você se importa se eu te adicionar como revisor?

3 curtidas

Incrível, obrigado!

2 curtidas

Obrigado, mesclado!

1 curtida

Lamento dar más 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 registros 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>'

Estranhamente, posso editar o meu PRÓPRIO perfil e atualizar os campos de usuário personalizados sem problemas.

Mas não consigo mais editar nenhum outro usuário, nem o system consegue realizar as atualizações através da nossa API.

Se eu desativar o plugin Locations, tudo volta a funcionar:

3 curtidas

@Richie obrigado pelo seu relatório.

Consigo reproduzir isso.

Parece acontecer apenas quando alguém não tem uma localização.

Este código foi recentemente reestruturado devido a uma descontinuação no core e eu perdi um caso (bem grande). Vou corrigir em breve.

5 curtidas

Ah, então talvez eu editar meu próprio perfil com sucesso tenha sido uma pista falsa, já que eu tenho uma localização no meu :slight_smile:

Sem problemas, obrigado pelo apoio contínuo :slight_smile:

Acredito que isso já foi corrigido:

8 curtidas

Atualização esta manhã, sem mais erros HTTP/500.

Obrigado pela rápida correção, Robert :smiley: :clap:

3 curtidas