Locations 插件 🌍

  • 修复:直接打开全局主题地图不应导致问题
  • 修复:现在可以在分类地图和全局地图之间正确切换
  • 未正常工作的 WIP 地图测试

@vincefrommtl@Stephane_Roy @packman 你们可以尝试一下这个更新吗?请注意修复的范围。另一个修复即将推出。

(技术说明:由于 Leaflet 库是一个全局对象,QUnit 似乎无法识别它,因此我无法为这些修复提供完全集成的 FE 测试 - 如果有人知道如何让 Leaflet 和 QUnit 协同工作,请告诉我)

3 个赞

我的反馈:

  • 在全局地图和分类地图之间切换是有效的。但是反过来(从分类地图到全局地图)是无效的,就像从分类到分类一样。
  • 自从升级以来,我没有在我的日志中看到这个错误:ActionView::Template::Error (No route matches {:action=>"map_feed", :controller=>"list"}):slight_smile:
  • **新错误:**有时,地图上的聚合链接在放大时只显示地图上的位置标记,而不显示标签。
  • **新错误:**有时,地图上标记的标签没有链接到相应的主题。
  • **新错误:**全局地图现在也受到与分类地图相同的错误的双重影响:只显示少数标记(见下文)。

关于标记比预期少的地图:我仔细检查了一下,它只显示过去 20 天内(或类似时间)活跃的主题的标记,最多显示 30 个。这会不会是我们在论坛上的配置问题?这似乎非常具体!但我们并没有更改这些设置。我的位置地图最大主题数最多为 1700 个,而且我认为没有与时间相关的设置会导致只显示过去 20 天内活跃主题的标记?

1 个赞

升级后,我打开了全局地图,但没有显示标记(主题)。如果我编辑带有标记的主题的位置,然后仅保存而不进行更改,标记就会出现。我所有的标记都超过 20 天了,所以这可能和 @vincefrommtl 遇到的问题一样?

编辑:每个主题的“显示地图”按钮在标记未显示在全局地图上时,仍然显示正确的标记位置。

1 个赞

谢谢大家,我会再看看。

2 个赞

这并非一个完整的修复,但我认为它应该可以恢复旧的地点主题,同时避免从外部链接或浏览器刷新直接加载时出现的地图错误:

已知问题:我尚未解决直接从地图跳转到分类地图的过渡问题(但这应该是一个边缘情况),但其他所有问题应该都已得到改善。

1 个赞

我明天会进行测试,但有用户刚刚指出,美国的地点现在被命名为“城市、国家、州”,例如“亚特兰大、美国、佐治亚州”。

快速测试:我可以确认在此次更新后,地图上的所有标记都可见。非常感谢。 :slight_smile:

目前,我将建议我的用户不要在类别地图之间跳转,以绕过损坏的过渡。

1 个赞

最近的唯一更改与地图填充有关。

国家/州订单不是最新版本。我提到它是因为我不记得在过去几天的版本中看到过它。

1 个赞

@packman 目前我已经修复了你之前的问题:

并且现在已经有测试覆盖了。

再次感谢 @david 在这个问题上把我从这个困境中解救出来。

3 个赞

@merefield 嘿,只是提醒您一下,modify_user_params 方法已经弃用一段时间了,并且随着 Discourse 更新到 3.2.0.beta1-dev 版本,它很快就会被移除。

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

您是否有空将其更新为使用 users_controller_update_user_params 修改器?谢谢!

1 个赞

好的,感谢您的额外提醒,我这周会处理。

1 个赞

Blake,这个已经完成了,介意我把你添加为审阅者吗?

3 个赞

太棒了,谢谢!

2 个赞

好的,已合并!

1 个赞

抱歉带来坏消息,但我有一个 bug 报告。

我们目前运行的是最新版本,今天早上更新的:3.2.0.beta1-dev (7ca5ee6cd2)

我们遇到了一个奇怪的问题,两周前我们上次更新时还没有这个问题,现在我们无法编辑具有自定义字段的用户配置文件。

我想编辑这个用户:https://example.com/u/username/preferences/profile

页面加载正常:

当我点击保存时,我会收到一个错误:

这个问题之所以浮出水面,是因为我们的另一个网站在我们俱乐部门户升级时更新了“membership”自定义字段,而 Discourse API 端点抛出了一个 500 错误。

当我尝试使用 Postman 重现时,这也显而易见了:

Discourse 日志显示:

和:

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>'

奇怪的是,我可以编辑我自己的个人资料并成功更新自定义用户字段。

但我再也无法编辑任何其他用户,我们的“system”也无法通过我们的 API 进行更新。

如果我禁用 Locations 插件,一切都会恢复正常:

3 个赞

@Richie 感谢你的报告。

我可以重现这个问题。

这个问题似乎只在某人 没有 位置时发生。

这段代码最近因核心中的弃用而被重构,但我忽略了一个(相当大的)情况。 我会尽快修复它。

5 个赞

啊,所以也许我编辑自己的个人资料成功只是一个误导,因为我的个人资料有位置信息 :slight_smile:

没关系,感谢您一直以来的支持 :slight_smile:

我相信现在应该已经修复了:

8 个赞

今早的更新,不再有 HTTP/500 错误。

感谢 Robert 快速修复 :smiley: :clap:

3 个赞