diff --git a/files/helpers/actions.py b/files/helpers/actions.py index 0cd7f10e1..b159b5449 100644 --- a/files/helpers/actions.py +++ b/files/helpers/actions.py @@ -3,7 +3,9 @@ from files.classes.badges import Badge from files.helpers.alerts import send_repeatable_notification def badge_grant(user, badge_id, description=None, url=None): - if not user or user.has_badge(badge_id): + if not user: + raise ValueError('badge_grant: expected user, not None') + if user.has_badge(badge_id): return badge = Badge( diff --git a/files/routes/comments.py b/files/routes/comments.py index 3d6d05493..82ab29cb5 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -279,7 +279,8 @@ def api_comment(v): all_by_author = g.db.query(Marsey).filter_by(author_id=user.id).count() - if all_by_author >= 10: + # off-by-one: newly added marsey isn't counted + if all_by_author >= 9: badge_grant(badge_id=16, user=user) else: badge_grant(badge_id=17, user=user) diff --git a/files/routes/login.py b/files/routes/login.py index 03c12c2a9..e69c63cbd 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -338,9 +338,10 @@ def sign_up_post(v): if ref_user: badge_grant(user=ref_user, badge_id=10) - if ref_user.referral_count >= 10: + # off-by-one: newly referred user isn't counted + if ref_user.referral_count >= 9: badge_grant(user=ref_user, badge_id=11) - if ref_user.referral_count >= 100: + if ref_user.referral_count >= 99: badge_grant(user=ref_user, badge_id=12) if email: