Plugin de Ubicaciones 🌍

Solo quería volver a plantear esto como una solicitud de función.

Estamos teniendo esto en nuestra comunidad al planificar un evento. La gente ahora usa Google Maps para ver a qué distancia está la ubicación sugerida del evento.

También es útil para comprobar a qué distancia está el otro usuario. (Tenemos un foro de buceo y la gente busca compañeros de buceo en nuestro foro).

3 Me gusta

@Roi, podrías estar interesado en esto:

Con este lanzamiento introducimos la búsqueda (experimental) en lenguaje natural de ubicaciones de usuarios con Discourse Chatbot :robot: , para que puedas preguntarle cosas como:

  • “Lista los cinco usuarios más cercanos a mi ubicación” … (si has registrado una ubicación) … o incluso
  • “Lista todos los usuarios a menos de 500 km de mi ubicación”.
  • “Lista los usuarios a menos de 200 km de Berlín”.

Todavía no es compatible con Ubicaciones de Temas … pero eso está 2/3 hecho y en proceso …

Hay una migración de datos en este lanzamiento, así que por favor házmelo saber si alguien tiene algún problema e intentaré ayudar.

8 Me gusta

Sé que esto todavía está en proceso, así que es posible que ya lo sepas…

  1. A veces, cuando abro el Mapa de Usuarios, obtengo un mapa en blanco, es decir, se muestra el mapa de países pero no hay usuarios. Si actualizo la página, los usuarios mapeados reaparecen. No he encontrado una forma garantizada de replicar esto, pero veo el mapa en blanco al menos el 50% de las veces que abro el mapa de usuarios. El mapa en blanco solo parece aparecer en el mapa de usuarios. No lo he visto en el mapa de temas, al menos no hasta ahora.

  2. Hay un cuadro blanco en blanco a la izquierda de los campos de botones de opción de nombre/nombre de usuario/etc., por ejemplo.

image

1 me gusta
  1. Sí, la solución no es perfecta. No es mi enfoque en este momento. PR aceptado.

  2. es completamente intencional: es un cuadro de búsqueda.

1 me gusta

¡Ahhh! Así es.

Acabo de encontrar otra cosa. Mi mapa de temas no tiene muchas entradas, pero en EE. UU. tengo 3 agrupadas en la costa este y dos agrupadas en la costa oeste. Si hago clic en el grupo de la costa este, se acerca para mostrar las tres ubicaciones de temas individuales. Si hago clic en cualquiera de esas ubicaciones, en lugar de abrir el tema asociado, se acerca para mostrar las dos ubicaciones de la costa oeste. Esto es repetible: pruébalo en mi sitio https://discourse.weather-watch.com/map

2 Me gusta

¡Muy curioso, en efecto! Curiosamente, funcionan bien en mis datos. También observo en tu mapa que hay un error al pasar el ratón sobre un clúster.

La versión de Leaflet está muy desactualizada… podría ser un problema…

1 me gusta

OK, he subido la última versión de Leaflet y su popular plugin de agrupación de marcadores, mira si eso ayuda:

Ya que estamos, vamos a romperlo bien con el último código :sweat_smile:

(no tiene sentido discutir tales problemas si estamos ejecutando una biblioteca antigua, ¡quién sabe qué han arreglado!).

3 Me gusta

Gracias por la rápida actualización. En una prueba inicial, se está comportando mejor ahora. No he experimentado el extraño salto de costa este a oeste en las pocas pruebas que he intentado. Haré más pruebas mañana.

2 Me gusta

Sí, puedo ver. ¡Genial! Gracias por volver a revisar rápidamente.

2 Me gusta

Después de más pruebas hoy, parece que la última actualización ha corregido el mapa en blanco al abrir por primera vez y también el extraño salto de costa este a oeste desde ubicaciones agrupadas :grinning:

4 Me gusta

Gracias por señalarme esto, y disculpa que no haya estado por aquí en algunos días para comentar.

Eso suena realmente prometedor. :slight_smile: Pero, por el momento, no tenemos el Chatbot de IA activo en nuestro foro. Todavía estoy luchando por adivinar cuánto nos costaría obtener una clave API de OpenAI. Como dirigimos nuestra comunidad sin fines de lucro y no cobramos, apenas cubrimos los costos del servidor y del dominio con las pocas donaciones y otras cosas similares. Así que ese es un tema importante para nosotros. :wink:

El enlace a la respuesta en la publicación con los cálculos de ejemplo ya no funciona. ¿Puedes decirme dónde encontrarlo? :slight_smile:

Y además de la integración del Chatbot de IA: ¿Estás pensando en incluir también información de distancia en el plugin? Es decir, simplemente mostrar la distancia desde el usuario actualmente conectado a un evento o a otro usuario, si ambos lados han establecido una ubicación. Esa fue la forma sencilla en que se manejó en el plugin de ubicación para phpBB que usamos antes.

Lamento decir que la publicación de costos fue eliminada ya que el tema se estaba volviendo absurdamente largo. Eliminaré eso del OP. (Hecho)

Sugiero probarlo: solo para el personal con permiso inicialmente.

No, no planeo hacerlo disponible en el plugin de Ubicaciones sin el Chatbot.

Para todos ustedes, usuarios de subcarpetas subversivas, @renato ha enviado amablemente una solicitud de extracción para asegurarse de que los marcadores funcionen en dicha configuración:

¡Muchas gracias @renato! :pray:

5 Me gusta

¡GRACIAS!
Una pregunta rápida:
¿Cómo actualizo este plugin? run ./reset-all-repos parece arriesgado.
El objetivo es solo actualizar este plugin y no perder los datos de los 180 proyectos ya ingresados.

1 me gusta

Esa no es realmente una pregunta específica del plugin, pero necesitarás ejecutar tests-passed y actualizar a la última versión para que todo lo nuevo funcione.

Siempre es arriesgado :sweat_smile:, ¿a menos que quieras ejecutar una instalación Estable? (en cuyo caso esta actualización aún no es relevante).

La actualización en línea (desde /admin/upgrade) podría funcionar para ti, o como de costumbre, reconstruir con ./launcher rebuild app, ¿asumiendo que estás ejecutando una instalación estándar?

No puedo responder por el nivel de mantenimiento del resto de tus plugins, ¡pero buena suerte! :sweat_smile:

1 me gusta

Encontré el mismo problema.

Intenté el método que se indica aquí

Pero no funciona.
Sistema Ubuntu, el reinicio no funciona,
./launcher restart app, ./launcher start app no funcionan.

Mensaje de error al ejecutar ./launcher rebuild app

......
111:M 12 Dec 2023 12:11:02.199 * DB guardado en disco
111:M 12 Dec 2023 12:11:02.200 # Redis está listo para salir, adiós...



FALLIDO
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' falló con retorno #<Process::Status: pid 3553 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
el arranque falló con el código de salida 1
** FALLO AL INICIAR ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.

Gracias a @itsbhanusharma

Dice que fue causado por un error anterior, los listo aquí

I, [2023-12-13T00:50:13.222274 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundl                e exec rake db:migrate'
2023-12-13 00:50:18.347 UTC [3597] discourse@discourse ERROR:  invalid input syntax for type double precision: ""

2023-12-13 00:50:18.347 UTC [3597] discourse@discourse STATEMENT:  INSERT INTO locations_topic                 (topic_id, latitude, longitude, name, street, district, city, state, postalcode, country, count                rycode, international_code, locationtype, boundingbox, updated_at, created_at) (
          SELECT
          tc.topic_id,
          (tc.value::json->'geo_location'->>'lat')::FLOAT,
          (tc.value::json->'geo_location'->>'lon')::FLOAT,
          tc.value::json->'geo_location'->>'name',
          tc.value::json->'geo_location'->>'street',
          tc.value::json->'geo_location'->>'district',
          tc.value::json->'geo_location'->>'city',
          tc.value::json->'geo_location'->>'state',
          tc.value::json->'geo_location'->>'postalcode',
          tc.value::json->'geo_location'->>'country',
          tc.value::json->'geo_location'->>'countrycode',
          tc.value::json->'geo_location'->>'international_code',
          tc.value::json->'geo_location'->>'type',
          ARRAY[
            (tc.value::json->'geo_location'->'boundingbox'->>0)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>1)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>2)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>3)::FLOAT
          ],
          tc.updated_at,
          tc.created_at
        FROM topic_custom_fields tc
        WHERE tc.name = 'location'
        AND tc.value NOT IN ('"{}"', '{}', '')
        AND tc.value::json->'geo_location'->>'lat' IS NOT NULL
        AND tc.value::json->'geo_location'->>'lon' IS NOT NULL
        )
        ON CONFLICT DO NOTHING

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  invalid input syntax for type double precision: ""
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

#--------------
Caused by:
PG::InvalidTextRepresentation: ERROR:  invalid input syntax for type double precision: "" (PG:: InvalidTextRepresentation)
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:  110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

y el mensaje de docker ps

/var/discourse# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED             STATUS         PORTS                                                                      NAMES
d3c8e85149a8   local_discourse/app   \"/sbin/boot\"   About an hour ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

Tu error no es el mismo que el del OP. ¿Podrías proporcionar el log completo de la reconstrucción?

Gracias Bhanu, he rehecho el proceso de reconstrucción y he generado los “errores anteriores” en la publicación anterior. ¿Podrías ayudarme a entender y resolver el problema?

Parece un problema con el plugin de ubicaciones. ¿Podrías intentar compilar sin él para ver si eso soluciona el problema de compilación?

1 me gusta

¡Genial! Acabo de reconstruir el sistema y funciona.

Si bien debo decir que el plugin de ubicación es muy bueno. Así que espero que se pueda hacer una depuración relativa.