Just jumping in here as I’ve run into the same issue. I’ve also disabled the “Give this badge more than once” setting on several SQL-based badges, but they keep getting awarded repeatedly. It would be helpful to know if anyone has found a workaround or if this is confirmed as a bug. I can share my badge SQL, too,o if needed.
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
I have only selected ‘Show on public badges page’ and ‘revoke daily’. The activator is recurrent daily.
I would still like to see a screenshot, thanks. the reason is I can verify that it is the exact same screen (version) and the settings are the same even with different languages in interface (also a rogue component or plugin may be changing the settings page). for example, I don’t want to just assume “activator” means “trigger” (although I think it does in this case).
Without testing, one of the things that looks like it doesn’t belong is the ‘AND NOT EXISTS’ section. Are you trying to handle not awarding multiples within the query itself?