Sfide giornaliere di Discourse

Sto portando mia figlia a scuola. Poi ho alcuni appuntamenti questa mattina. Mi ci vorrà del tempo per indagare.

1 Mi Piace

Sembra che alcune colonne del database non siano state migrate correttamente. Questa versione ha aggiunto diverse nuove colonne alle tabelle esistenti. Puoi provare a eseguire:

cd /var/discourse && ./launcher rebuild app

L’utilizzo del pulsante Aggiorna nel pannello non applica le migrazioni del database: è necessaria una ricostruzione completa quando il plugin aggiunge nuove colonne.

Grazie per la pazienza. Risolveremo il problema!

1 Mi Piace

In realtà, puoi eseguire prima questo e pubblicare l’output?

./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_challenges\").map(&:name)"'
1 Mi Piace
root@segredin-app:/var/www/discourse# su discourse -c 'cd /var/www/discourse &&                                                                                         bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_cha                                                                                        llenges\").map(&:name)"'
id
topic_id
hashtag
start_date
end_date
check_ins_needed
description
created_at
updated_at
final_post_sent
weekly_post_enabled
weekly_post_day
weekly_post_hour
award_badge
badge_name
badge_id
check_in_interval
week_start
category_id

guarda questo

ActiveModel::UnknownAttributeError (attributo sconosciuto 'challenge_timezone' per DailyChallenge.) app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'

Sembra che manchi la colonna DB challenge_timezone. Puoi eseguire questo comando:

./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'

Questo dovrebbe aggiungerla. Investigherò sul motivo per cui non è stata aggiunta e aggiornerò i file.

1 Mi Piace

Va bene, rimane solo che aspetterò la sua correzione

ActiveModel::UnknownAttributeError (attributo sconosciuto 'challenge_timezone' per DailyChallenge.)
app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'

Per assicurarci di essere nella directory corretta, esegui prima questo:

cd /var/discourse && ./launcher enter app

Poi esegui questo:

su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'

Dopo averlo eseguito, puoi digitare “exit” per uscire dall’app.

Esegui un aggiornamento forzato della pagina web (ctrl-shift-R) e riprova. Se ciò non funziona, lancerò una correzione tra pochi minuti.

Sono in riunione. Aggiornerò presto.

1 Mi Piace

Ho appena inviato un aggiornamento. Dovresti essere in grado di aggiornare tramite il pannello di amministrazione. Se ciò non funziona, potresti dover eseguire

./launcher rebuild app
1 Mi Piace

Funziona

Friends: Chandler Bing (Matthew Perry) che balla

1 Mi Piace

WOOOO!!! Grazie per avermi sostenuto e aiutato a risolverlo!!

Funny Man Dancing in Tutu

1 Mi Piace

Quindi il prossimo passo prevede nuove funzionalità? Vorrei darti alcune idee

Serie con monete e distintivi e una sezione per monitorare le proprie statistiche

Comunque lo adoro e aspetto con impazienza di più :smiley:

1 Mi Piace

Sto attualmente lavorando su questa parte. Sarà fondamentalmente un “bot” che puoi creare (in realtà solo un account utente). Il plugin monitorerà le menzioni del bot. Quando le rileva, eseguirà l’azione. Ad esempio:

Nome del bot: ChallengeBot

Qualcuno digita:

@ChallengeBot status

Il bot invierà un messaggio privato con il proprio stato attuale nella sfida.

Il bot avrà anche alcune altre opzioni.

1 Mi Piace

Come posso ottenere queste informazioni per mostrarle in un altro punto? O farle apparire nella scheda utente? Se esiste un percorso per farlo, sarebbe ottimo.

v1.4.0 è ora disponibile!

Questa versione aggiunge ChallengeBot, un account bot opzionale che porta funzionalità di engagement guidate da messaggi privati (DM) alle tue sfide.

Novità di questa versione:

  • DM di conferma check-in — i membri ricevono un DM da ChallengeBot dopo ogni check-in riuscito, che mostra la loro serie attuale e un link al topic della sfida.
  • DM di promemoria — i partecipanti che non hanno effettuato il check-in per 2 o più giorni consecutivi (sfide giornaliere) o non hanno effettuato il check-in entro l’ultimo giorno della settimana (sfide settimanali) ricevono un gentile promemoria da ChallengeBot. Include il loro attuale conteggio di check-in e l’obiettivo. Attivabile per ogni sfida, predefinito su abilitato.
  • Comandi con @mention — i membri possono menzionare @ChallengeBot in qualsiasi topic di sfida attivo per ottenere statistiche personali via DM. Il bot non risponde mai nel topic stesso. Comandi disponibili: status, leaderboard, streak, checkins, progress, help. Limitato a 10 comandi per utente all’ora.
  • Post della classifica e dei risultati finali — se ChallengeBot è configurato, i post settimanali della classifica e i post dei risultati finali vengono ora inviati dall’account del bot invece che dall’account di sistema.
  • Nuova impostazione del sitodaily_challenge_bot_username
  • Nuovo campo della sfida — interruttore per i DM di promemoria (predefinito su abilitato)

Configurare ChallengeBot è opzionale: tutte le funzionalità esistenti continuano a funzionare senza di esso. Consulta il post principale per le istruzioni complete di configurazione.

Nota: Questa versione include una migrazione del database. Il pulsante Aggiorna nel pannello la applicherà automaticamente.