X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/1a949f7c97dc2f34c135f5cdf088df2927d3d652..15eabbf86190e4bc8ae9dc747d853b0300976b12:/forum_modules/project_badges/badges.py diff --git a/forum_modules/project_badges/badges.py b/forum_modules/project_badges/badges.py index f0cc4e2..f9b6fbc 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 action.node.score == 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) + bug = Tag.objects.get(name="bug") + if bug in action.node.tags.all(): + return action.node.author except: pass - - super(BugBusterBadge, self).__init__(Question, 'vote_up_count', settings.BUG_BUSTER_VOTES_UP, handler) \ No newline at end of file