]> git.openstreetmap.org Git - osqa.git/blobdiff - forum_modules/default_badges/badges.py
init the Facebook api inside check_login_status() method. This used to cause troubles...
[osqa.git] / forum_modules / default_badges / badges.py
index 279f778f8785276aeb267086b9f2d313e7b19f2b..893d32a322457732e8acbc299d930383ef9762a1 100644 (file)
@@ -36,25 +36,23 @@ class FamousQuestion(QuestionViewBadge):
     nviews = settings.FAMOUS_QUESTION_VIEWS
 
 
-
-
 class NodeScoreBadge(AbstractBadge):
     abstract = True
     listen_to = (VoteAction,)
 
-    @property
-    def description(self):
-        return _('Answer voted up %s times') % str(self.expected_score)
-
     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
     node_type = "question"
 
+    @property
+    def description(self):
+        return _('Question voted up %s times') % str(self.expected_score)
+
 class NiceQuestion(QuestionScoreBadge):
     expected_score = settings.NICE_QUESTION_VOTES_UP
     name = _("Nice Question")
@@ -74,6 +72,10 @@ class AnswerScoreBadge(NodeScoreBadge):
     abstract = True
     node_type = "answer"
 
+    @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")
@@ -89,7 +91,6 @@ class GreatAnswer(AnswerScoreBadge):
     name = _("Great Answer")
 
 
-
 class FavoriteQuestionBadge(AbstractBadge):
     abstract = True
     listen_to = (FavoriteAction,)
@@ -113,7 +114,6 @@ class StellarQuestion(FavoriteQuestionBadge):
     expected_count = settings.STELLAR_QUESTION_FAVS
 
 
-
 class Disciplined(AbstractBadge):
     listen_to = (DeleteAction,)
     name = _("Disciplined")
@@ -158,7 +158,7 @@ class Supporter(AbstractBadge):
 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
@@ -202,7 +202,6 @@ class Autobiographer(AbstractBadge):
             return user
 
 
-
 class CivicDuty(AbstractBadge):
     type = Badge.SILVER
     award_once = True
@@ -222,7 +221,8 @@ class Pundit(AbstractBadge):
     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
 
 
@@ -233,7 +233,7 @@ class SelfLearner(AbstractBadge):
 
     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
 
 
@@ -256,7 +256,8 @@ class Student(AbstractBadge):
     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
 
 
@@ -267,7 +268,8 @@ class Teacher(AbstractBadge):
     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
 
 
@@ -280,7 +282,7 @@ class Enlightened(AbstractBadge):
 
     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
 
 
@@ -292,7 +294,7 @@ class Guru(AbstractBadge):
 
     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
 
 
@@ -305,7 +307,8 @@ class Necromancer(AbstractBadge):
 
     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):