Je me permets d’intervenir ici car j’ai rencontré le même problème. J’ai également désactivé le paramètre « Attribuer ce badge plus d’une fois » sur plusieurs badges basés sur SQL, mais ils continuent d’être décernés de manière répétée. Il serait utile de savoir si quelqu’un a trouvé une solution de contournement ou si cela est confirmé comme un bug. Je peux aussi partager le SQL de mes badges, si nécessaire.
SELECT
gs.user_id,
current_timestamp AS granted_at
FROM
gamification_scores gs
WHERE
(:backfill OR gs.user_id IN (:user_ids))
AND gs.date >= (current_date - interval '1 month')
AND NOT EXISTS (
SELECT 1
FROM user_badges ub
WHERE ub.user_id = gs.user_id
AND ub.badge_id = YOURIDOFBADGE
)
GROUP BY
gs.user_id
HAVING
SUM(gs.score) > 11
J’aimerais toujours voir une capture d’écran, merci. La raison est que je peux vérifier qu’il s’agit de la même page (version) et que les paramètres sont les mêmes, même avec différentes langues dans l’interface (un composant ou un plugin défectueux peut également modifier la page des paramètres). Par exemple, je ne veux pas simplement supposer que « activateur » signifie « déclencheur » (bien que je pense que ce soit le cas dans ce scénario).
Sans tester, l’une des choses qui semble ne pas appartenir est la section « AND NOT EXISTS ». Essayez-vous de gérer la non-attribution de doublons dans la requête elle-même ?