def get_votes_count_today_from_user(self, user): if user is not None: return self.filter(user=user, voted_at__range=get_today_range()).count() return 0
def get_reputation_by_upvoted_today(self, user): """ For one user in one day, he can only earn rep till certain score (ep. +200) by upvoted(also subtracted from upvoted canceled). This is because we need to prohibit gaming system by upvoting/cancel again and again. """ if user is None: return 0 rep_types = (1, -8) sums = self.filter(Q(reputation_type__in=rep_types), user=user, reputed_at__range=get_today_range()).\ aggregate(Sum('positive'), Sum('negative')) if sums: pos = sums['positive__sum'] neg = sums['negative__sum'] if pos is None: pos = 0 if neg is None: neg = 0 return pos + neg else: return 0