Beispiel #1
0
    def save_reply(cls, user, snippet_id, comment_id, comment_text):
        """
        Save user comments for the post in database
        """
        from badges import Badge, UserBadge

        if Snippet.objects.filter(id=snippet_id).update(comments_count=F("comments_count") + 1) == 1:
            UserGraph.objects.filter(user=user).update(comments_count=F("comments_count") + 1)
            cls.objects.filter(id=comment_id).update(replies_count=F("replies_count") + 1)
            comment = cls.objects.create(
                snippet_id=snippet_id,
                reply_to_id=comment_id,
                user=user,
                comment_text=comment_text,
                updated_by=str(user),
                created_by=str(user),
            )

            if (
                not UserBadge.objects.filter(user=user, badge=Badge.get_commentator()).exists()
                and UserGraph.objects.filter(user=user, comments_count__gte=10).exists()
            ):
                # User earned a commentator badge
                UserBadge.award(user, Badge.get_commentator())

            # Message.add_reply_msg(comment, user)
            return comment
Beispiel #2
0
    def save_reply(cls, user, snippet_id, comment_id, comment_text):
        """
        Save user comments for the post in database
        """
        from badges import Badge, UserBadge
        if Snippet.objects.filter(id=snippet_id).update(
                comments_count=F('comments_count') + 1) == 1:
            UserGraph.objects.filter(user=user).update(
                comments_count=F('comments_count') + 1)
            cls.objects.filter(id=comment_id).update(
                replies_count=F('replies_count') + 1)
            comment = cls.objects.create(snippet_id=snippet_id,
                                         reply_to_id=comment_id,
                                         user=user,
                                         comment_text=comment_text,
                                         updated_by=str(user),
                                         created_by=str(user))

            if not UserBadge.objects.filter(user=user, badge=Badge.get_commentator()).exists() \
            and UserGraph.objects.filter(user=user, comments_count__gte=10).exists():
                # User earned a commentator badge
                UserBadge.award(user, Badge.get_commentator())

            #Message.add_reply_msg(comment, user)
            return comment
Beispiel #3
0
 def sign_up(cls, username, email, password, gender, hometown=None, location=None, locale=None, has_fb_account=False, is_verified=False):
     """
     Creates a new non-admin user in database 
     """
     from badges import Badge, UserBadge
            
     try:
         user = cls.objects.get(Q(username=username) | Q(email=email))
         if user.username == username:
             raise HunkitError('Username "%s" already registered with us, if you forgotten your password? <a href="%s">Request new one</a> or choose a different username.' % (username, reverse('app_forgot_password')))
         
         raise HunkitError('Its seems to be that you are already registered with this email address, if you forgotten your password? <a href="%s">Request new one.</a>' % reverse('app_forgot_password'))            
     except cls.DoesNotExist:
                     
         verification_code = None
         if not is_verified:
             verification_code = _random_digest()
         
         if hometown:
             hometown = Location.get_or_create(hometown, username)
         
         if location:
             location = Location.get_or_create(location, username)
             
         user = cls.objects.create_user(username=username,
                                        email=email,
                                        password=password,
                                        gender= gender,
                                        hometown=hometown,
                                        location=location,
                                        locale=locale,
                                        is_verified=is_verified,
                                        verification_code=verification_code,
                                        has_fb_account=has_fb_account,
                                        updated_by=username,
                                        created_by=username)
         
         UserGraph.objects.create(user=user, created_by=username)
         
         # Create subscriptions to default languages
         langs = []
         for lang in Language.objects.filter(is_default=True):
             langs.append(lang.id)
             Subscription.objects.create(user=user,language=lang, created_by=username)
         
         if langs:
             LanguageGraph.objects.filter(language_id__in=langs).update(readers_count=F('readers_count') + 1)
             
         # Awarding Freshman badge
         UserBadge.award(user, Badge.get_freshman())
             
         return user
Beispiel #4
0
 def get_badges(self):
     """
     Returns list of user's earned badges
     """
     from badges import UserBadge
     return UserBadge.get_badges(self)