X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/1a949f7c97dc2f34c135f5cdf088df2927d3d652..3a1befca62834cd3c0b3aa3f6af974179ddfbea4:/forum_modules/project_badges/badges.py diff --git a/forum_modules/project_badges/badges.py b/forum_modules/project_badges/badges.py index f0cc4e2..9633567 100644 --- a/forum_modules/project_badges/badges.py +++ b/forum_modules/project_badges/badges.py @@ -1,21 +1,20 @@ -from forum.badges.base import CountableAbstractBadge -from forum.models import Question, Tag -from forum import const from django.utils.translation import ugettext as _ +from forum.badges.base import AbstractBadge +from forum.models import Badge, Tag +from forum.actions import VoteUpAction import settings -class BugBusterBadge(CountableAbstractBadge): - type = const.SILVER_BADGE - description = _('Got %s upvotes in a question tagged with "bug"') % str(settings.BUG_BUSTER_VOTES_UP) +class BugBuster(AbstractBadge): + type = Badge.SILVER + name = _("Bug Buster") + description = _('Got %s upvotes in a question tagged with "bug"') % settings.BUG_BUSTER_VOTES_UP + listen_to = (VoteUpAction, ) - def __init__(self): - - def handler(instance): + def award_to(self, action): + if action.node.node_type == "question" and int(action.node.score) == int(settings.BUG_BUSTER_VOTES_UP): try: - bug_tag = Tag.objects.get(name='bug') - if bug_tag in instance.tags.all(): - self.award_badge(instance.author, instance) - except: + bug = Tag.objects.get(name="bug") + if bug in action.node.tags.all(): + return action.node.author + except Exception: pass - - super(BugBusterBadge, self).__init__(Question, 'vote_up_count', settings.BUG_BUSTER_VOTES_UP, handler) \ No newline at end of file