Plugin Locations 🌍

:+1:t2:

4 Mi Piace

Hai risolto?

1 Mi Piace

La directory basata sulla User Card interrompe il plugin outlet di Ember sulla User Card. Devi segnalarlo al proprietario di quel componente.

1 Mi Piace

Sto solo cercando di far visualizzare la posizione dell’utente sotto i post degli utenti, funziona?

Post degli utenti? O carte utente?

Post, non mi preoccupano le card, è possibile?

2 Mi Piace

No, al momento supportiamo solo i livelli di argomento e le posizioni degli utenti.

Ok, che peccato! La mia community è molto interessata a sapere da dove le persone pubblicano.

Non riesco a farlo funzionare nemmeno per le schede degli utenti, funziona correttamente?

Grazie

1 Mi Piace

Non è automatizzato (in parte per motivi di privacy). Un utente deve impostare esplicitamente la propria posizione nel proprio profilo. Ha discrezionalità sulla posizione scelta e, di conseguenza, su dove appare.

Se desideri qualcosa di più elaborato, stiamo probabilmente parlando di un progetto finanziato per implementare quel Marketplace

1 Mi Piace

Ok, grazie. Ci penserò e ti farò sapere. Saresti in grado di mostrare la posizione (dell’utente) sotto il nome dell’utente nei post per un progetto finanziato?

2 Mi Piace

Quindi, se uso questo plugin Locations, non posso usare il plugin Follow né il TC User Card Directory, vero? Un peccato, sarebbe fantastico poter usare tutti e tre. Qual è il problema, perché il plugin Locations entra in conflitto con loro?

2 Mi Piace

Conosco solo la directory User Card, ma l’incompatibilità può verificarsi e di fatto si verifica.

Ad esempio: qualcuno può sovrascrivere un modello monolitico e dimenticare di mantenere un plugin outlet. Non possiamo proteggerci da chi agisce in questo modo. Anche se i principali sviluppatori di plugin (noi, Discourse) di solito fanno molta attenzione a non farlo.

3 Mi Piace

Ci sono sforzi per rendere questo plugin ufficiale?

1 Mi Piace

Ciao,

C’è un problema con l’ultimo aggiornamento: Comparing 83a6ad32...fc0da499 · discourse/discourse · GitHub

Grazie! :slight_smile:

3 Mi Piace

Ehi, grazie per la segnalazione.

Sì, è una situazione strana e, in realtà, non sono del tutto convinto che sia colpa di Locations (anche se potremmo star seguendo una cattiva pratica?!).

Sembra che durante l’inizializzazione del plugin, una migrazione di Discourse abbia causato uno stato inconsistente tra il modello (in realtà il Serializer) e il database.

La soluzione è davvero semplice:

  1. Rimuovi Locations da app.yml
  2. Ricompila (il passaggio cruciale è la migrazione del database. Una volta completata…) < – sospetto tu sia qui?
  3. Aggiungi di nuovo Locations in app.yml
  4. Ricompila.

:tada:

3 Mi Piace

Ciao Robert,

Ottimo :heart_eyes: Grazie, ho sbloccato il plugin Locations e la ricostruzione è andata a buon fine. Sembra che tutto funzioni perfettamente. Grazie ancora per il rapido aiuto :slight_smile:

2 Mi Piace

Ciao Robert,

Purtroppo l’ultimo aggiornamento sembra bloccare la rotta della pagina delle Locations /u/user-map?period=location. Forse è colpa di questo commit? FIX: Always serialize the correct attributes for DirectoryItems (#13510) · discourse/discourse@60a7673 · GitHub

Ci sono anche alcuni errori nella console del browser e nei log.

info

NoMethodError (undefined method `each' for nil:NilClass)
app/serializers/directory_item_serializer.rb:41:in `attributes'
app/controllers/application_controller.rb:494:in `serialize_data'
app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
app/controllers/application_controller.rb:397:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

backtrace

app/serializers/directory_item_serializer.rb:41:in `attributes'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'

active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `block in _serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'

active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:53:in `as_json'

app/controllers/application_controller.rb:494:in `serialize_data'

plugins/discourse-locations/lib/users_map.rb:15:in `index'

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

actionpack (6.1.3.2) lib/abstract_controller/base.rb:228:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:117:in `block in run_callbacks'

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

i18n (1.8.10) lib/i18n.rb:314:in `with_locale'

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

activesupport (6.1.3.2) lib/active_support/callbacks.rb:126:in `block in run_callbacks'

activesupport (6.1.3.2) lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack (6.1.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'

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

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `block in instrument'

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

activesupport (6.1.3.2) lib/active_support/notifications.rb:203:in `instrument'

actionpack (6.1.3.2) lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack (6.1.3.2) lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

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

actionpack (6.1.3.2) lib/abstract_controller/base.rb:165:in `process'

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

rack-mini-profiler (2.3.2) lib/mini_profiler/profiling_methods.rb:111:in `block in profile_method'

actionpack (6.1.3.2) lib/action_controller/metal.rb:190:in `dispatch'

actionpack (6.1.3.2) lib/action_controller/metal.rb:254:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'

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

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

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

actionpack (6.1.3.2) lib/action_dispatch/routing/route_set.rb:842:in `call'

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

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

rack (2.2.3) lib/rack/conditional_get.rb:27:in `call'

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

actionpack (6.1.3.2) lib/action_dispatch/http/permissions_policy.rb:22:in `call'

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

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

config/initializers/008-rack-cors.rb:25:in `call'

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

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

actionpack (6.1.3.2) lib/action_dispatch/middleware/cookies.rb:689:in `call'

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

activesupport (6.1.3.2) lib/active_support/callbacks.rb:98:in `run_callbacks'

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

actionpack (6.1.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack (6.1.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

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

railties (6.1.3.2) lib/rails/rack/logger.rb:37:in `call_app'

railties (6.1.3.2) lib/rails/rack/logger.rb:28:in `call'

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

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

actionpack (6.1.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

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

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

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

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

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

actionpack (6.1.3.2) lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler (2.3.2) lib/mini_profiler/profiler.rb:384:in `call'

message_bus (3.3.6) lib/message_bus/rack/middleware.rb:61:in `call'

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

railties (6.1.3.2) lib/rails/engine.rb:539:in `call'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `public_send'

railties (6.1.3.2) lib/rails/railtie.rb:207:in `method_missing'

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

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

rack (2.2.3) lib/rack/urlmap.rb:58:in `call'

unicorn (6.0.0) lib/unicorn/http_server.rb:634:in `process_client'

unicorn (6.0.0) lib/unicorn/http_server.rb:732:in `worker_loop'

unicorn (6.0.0) lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn (6.0.0) lib/unicorn/http_server.rb:143:in `start'

unicorn (6.0.0) bin/unicorn:128:in `<top (required)>'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

Grazie! :slight_smile:

3 Mi Piace

Grazie per la segnalazione. Se si utilizzano i plugin Pavilion, si prega di evitare aggiornamenti al di fuori del periodo di supporto, poiché non possiamo sempre essere disponibili per risolvere le modifiche che causano interruzioni. Valuterò la situazione non appena possibile.

3 Mi Piace

@Don OK, ho trovato il tempo per sistemare questa cosa oggi, dato che sono davvero sotto pressione per del lavoro a pagamento, quindi ho pensato che fosse meglio risolvere subito :sweat_smile:

Ci è voluto un po’, non me ne vergogno a dirlo, quelle modifiche erano piuttosto criptiche! :sweat_smile:

Il risultato è questo: COMPATIBILITY: fix for recent major changes to user directory code · merefield/discourse-locations@8a16b16 · GitHub

È possibile che questo sia leggermente più veloce di prima come beneficio aggiuntivo, dato che ho apportato anche questa ulteriore modifica per sfruttare il nuovo design e ridurre la quantità di dati serializzati: cut down unnecessary data · merefield/discourse-locations@66d0120 · GitHub

@markvanlan per tua informazione

5 Mi Piace

Ciao Robert,
apprezzo davvero molto. Grazie mille per il tuo lavoro e il tuo tempo. :heart:
Ho appena aggiornato e testato… tutto funziona alla grande! :slight_smile:

5 Mi Piace