nviews = settings.FAMOUS_QUESTION_VIEWS
-
-
class NodeScoreBadge(AbstractBadge):
abstract = True
listen_to = (VoteAction,)
def award_to(self, action):
if (action.node.node_type == self.node_type) and (action.node.score == int(self.expected_score)):
return action.node.author
-
+
class QuestionScoreBadge(NodeScoreBadge):
abstract = True
@property
def description(self):
return _('Answer voted up %s times') % str(self.expected_score)
-
+
class NiceAnswer(AnswerScoreBadge):
expected_score = settings.NICE_ANSWER_VOTES_UP
name = _("Nice Answer")
name = _("Great Answer")
-
class FavoriteQuestionBadge(AbstractBadge):
abstract = True
listen_to = (FavoriteAction,)
expected_count = settings.STELLAR_QUESTION_FAVS
-
class Disciplined(AbstractBadge):
listen_to = (DeleteAction,)
name = _("Disciplined")
class FirstActionBadge(AbstractBadge):
award_once = True
abstract = True
-
+
def award_to(self, action):
if (self.listen_to[0].objects.filter(user=action.user).count() == 1):
return action.user
return user
-
class CivicDuty(AbstractBadge):
type = Badge.SILVER
award_once = True
description = _('Left %s comments') % settings.PUNDIT_COMMENT_COUNT
def award_to(self, action):
- if (action.user.nodes.filter(node_type="comment", deleted=None)) == int(settings.CIVIC_DUTY_VOTES):
+ if action.user.nodes.filter_state(deleted=False).filter(node_type="comment").count() == int(
+ settings.PUNDIT_COMMENT_COUNT):
return action.user
def award_to(self, action):
if (action.node.node_type == "answer") and (action.node.author == action.node.parent.author) and (
- action.node.score == int(settings.SELF_LEARNER_UP_VOTES)):
+ action.node.score == int(settings.SELF_LEARNER_UP_VOTES)):
return action.node.author
description = _('Asked first question with at least one up vote')
def award_to(self, action):
- if (action.node.node_type == "question") and (action.node.author.nodes.filter_state(deleted=False).filter(node_type="question", score=1).count() == 1):
+ if (action.node.node_type == "question") and (action.node.author.nodes.filter_state(deleted=False).filter(
+ node_type="question", score=1).count() == 1):
return action.node.author
description = _('Answered first question with at least one up vote')
def award_to(self, action):
- if (action.node.node_type == "answer") and (action.node.author.nodes.filter_state(deleted=False).filter(node_type="answer", score=1).count() == 1):
+ if (action.node.node_type == "answer") and (action.node.author.nodes.filter_state(deleted=False).filter(
+ node_type="answer", score=1).count() == 1):
return action.node.author
def award_to(self, action):
if (action.node.node_type == "answer") and (action.node.accepted) and (
- action.node.score >= int(settings.ENLIGHTENED_UP_VOTES)):
+ action.node.score >= int(settings.ENLIGHTENED_UP_VOTES)):
return action.node.author
def award_to(self, action):
if (action.node.node_type == "answer") and (action.node.accepted) and (
- action.node.score >= int(settings.ENLIGHTENED_UP_VOTES)):
+ action.node.score >= int(settings.GURU_UP_VOTES)):
return action.node.author
def award_to(self, action):
if (action.node.node_type == "answer") and (
- action.node.added_at >= (action.node.question.added_at + timedelta(days=int(settings.NECROMANCER_DIF_DAYS)))):
+ action.node.added_at >= (action.node.question.added_at + timedelta(days=int(settings.NECROMANCER_DIF_DAYS)))
+ ) and (int(action.node.score) == int(settings.NECROMANCER_UP_VOTES)):
return action.node.author
class Taxonomist(AbstractBadge):
def award_to(self, action):
return None
+class ValidatedEmail(AbstractBadge):
+ type = Badge.BRONZE
+ listen_to = (EmailValidationAction,)
+ name = _("Validated Email")
+ description = _("User who has validated email associated to the account")
+ award_once = True
+
+ def award_to(self, action):
+ return action.user
\ No newline at end of file