Beispiel #1
0
    def save(self, *args, **kwargs):
        """
        If new answer, add answer to the zcard with a score of 0
        """
        create_key = False

        if not self.pk:
            create_key = True

        super(Answer, self).save(*args, **kwargs)

        if create_key:
            red = get_redis_connection()
            red.zadd(self.question.redis_key, 0, self.pk)
Beispiel #2
0
    def save(self, *args, **kwargs):
        """
        If new answer, add answer to the zcard with a score of 0
        """
        create_key = False

        if not self.pk:
            create_key = True

        super(Answer, self).save(*args, **kwargs)

        if create_key:
            red = get_redis_connection()
            red.zadd(self.question.redis_key, 0, self.pk)
Beispiel #3
0
    def get_context_data(self, **kwargs):
        """
        Get answer rankings from Redis and return a sorted list of
        answers in the context.
        """
        context = super(QuestionDetailView, self).get_context_data(**kwargs)
        obj = self.get_object()
        red = get_redis_connection()

        ranked_pk_list = red.zrevrange(obj.redis_key, 0, -1)

        if not ranked_pk_list:
            return context

        answers = Answer.objects.in_bulk(ranked_pk_list)

        context.update({"ranked_answers": [
            answers[int(rank)] for rank in ranked_pk_list]})

        return context
Beispiel #4
0
 def score(self):
     """
     Return the answer's score from Redis
     """
     red = get_redis_connection()
     return red.zscore(self.question.redis_key, self.pk)
Beispiel #5
0
 def upvote(self):
     """
     Increment the answers score by 1
     """
     red = get_redis_connection()
     return red.zincrby(self.question.redis_key, self.pk, 1)
Beispiel #6
0
 def score(self):
     """
     Return the answer's score from Redis
     """
     red = get_redis_connection()
     return red.zscore(self.question.redis_key, self.pk)
Beispiel #7
0
 def upvote(self):
     """
     Increment the answers score by 1
     """
     red = get_redis_connection()
     return red.zincrby(self.question.redis_key, self.pk, 1)