-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