Je suis actuellement en train d’emmener ma fille à l’école. Ensuite, j’ai quelques rendez-vous ce matin. Il me faudra un certain temps pour enquêter.
Il semble que certaines colonnes de la base de données n’aient pas été correctement migrées. Cette version a ajouté plusieurs nouvelles colonnes aux tables existantes. Pouvez-vous essayer d’exécuter :
cd /var/discourse && ./launcher rebuild app
L’utilisation du bouton Mettre à jour dans le panneau n’applique pas les migrations de base de données — une reconstruction complète est requise lorsque le plugin ajoute de nouvelles colonnes.
Merci de votre patience. Nous allons régler cela !
En fait, pouvez-vous d’abord exécuter ceci et publier la sortie ?
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_challenges\").map(&:name)"'
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
regardez ceci
ActiveModel::UnknownAttributeError (attribut inconnu 'challenge_timezone' pour DailyChallenge.) app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
Il semble que la colonne de base de données challenge_timezone vous manque. Pouvez-vous exécuter ceci :
./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)"'
Cela devrait l’ajouter. Je vais enquêter sur la raison pour laquelle elle n’a pas été ajoutée et mettre à jour les fichiers.
D’accord, il ne reste plus qu’à attendre sa correction
ActiveModel::UnknownAttributeError (attribut inconnu 'challenge_timezone' pour 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'
Pour vous assurer que vous êtes dans le bon répertoire, exécutez d’abord ceci :
cd /var/discourse && ./launcher enter app
Ensuite, exécutez ceci :
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)"'
Une fois cela fait, vous pouvez taper « exit » pour quitter l’application.
Effectuez un rafraîchissement forcé de la page web (Ctrl+Shift+R) et réessayez. Si cela ne fonctionne pas, je vais publier une correction dans quelques instants.
Je suis en réunion. Je mettrai à jour bientôt.
Je viens de pousser une mise à jour. Vous devriez pouvoir la mettre à jour via le panneau d’administration. Si cela ne fonctionne pas, vous devrez peut-être exécuter
./launcher rebuild app
Ça marche

WOOOO!!! Merci de m’avoir soutenu et aidé à le résoudre !!

Donc, la prochaine étape prévoit de nouvelles fonctionnalités ? J’aimerais vous proposer quelques idées :
Des séries avec des pièces et des badges, ainsi qu’une section pour suivre vos propres statistiques.
En tout cas, j’adore et j’attends la suite ![]()
Je travaille actuellement sur cette partie. Il s’agira essentiellement d’un « bot » que vous créez (en réalité, un simple compte utilisateur). Le plugin surveillera les mentions du bot. Lorsqu’il les détecte, il exécutera l’action. Par exemple :
Nom du bot : ChallengeBot
Quelqu’un tape :
@ChallengeBot status
Le bot lui enverra un message privé (MP) avec son statut actuel dans le défi.
Le bot disposera également d’autres options.
Comment obtenir ces informations pour les afficher ailleurs ? Ou les faire apparaître dans la carte utilisateur ? Si vous avez une méthode pour le faire, cela serait apprécié.
v1.4.0 est maintenant disponible !
Cette version ajoute ChallengeBot — un compte bot optionnel qui apporte des fonctionnalités d’engagement pilotées par les messages privés (DM) à vos défis.
Nouveautés de cette version :
- Messages de confirmation de pointage — les membres reçoivent un DM de ChallengeBot après chaque pointage réussi, affichant leur série actuelle et un lien vers le sujet du défi.
- Messages de rappel — les participants qui n’ont pas pointé pendant 2 jours consécutifs ou plus (défis quotidiens) ou qui n’ont pas pointé avant le dernier jour de la semaine (défis hebdomadaires) reçoivent un rappel doux de ChallengeBot. Inclut leur nombre actuel de pointages et leur objectif. À activer par défi, activé par défaut.
- Commandes @mention — les membres peuvent mentionner
@ChallengeBotdans n’importe quel sujet de défi actif pour obtenir leurs statistiques personnelles via DM. Le bot ne répond jamais dans le sujet lui-même. Commandes disponibles :status,leaderboard,streak,checkins,progress,help. Limité à 10 commandes par utilisateur et par heure. - Publications du classement et des résultats finaux — si ChallengeBot est configuré, les publications hebdomadaires du classement et les publications des résultats finaux sont désormais envoyées depuis le compte du bot plutôt que depuis le compte système.
- Nouveau paramètre du site —
daily_challenge_bot_username - Nouveau champ de défi — bascule des messages de rappel (activé par défaut)
La configuration de ChallengeBot est optionnelle — toutes les fonctionnalités existantes continuent de fonctionner sans elle. Consultez le message principal pour les instructions de configuration complètes.
Remarque : Cette version inclut une migration de base de données. Le bouton de mise à jour dans le panneau l’appliquera automatiquement.

