コード例 #1
0
ファイル: logic.py プロジェクト: Apkawa/nyasha
    def get_posts(self, username=None, tag_name=None, feed=None):
        '''
        get_posts() -> get last posts
        get_posts(username='******')  -> get last posts for username
        get_posts(feed=True[, username='******']) -> get feed posts for user

        '''
        from models import Post, Subscribed
        user = self.user
        if username:
            user = UserInterface(self.user).get_user(username)

        if feed:
            posts = Post.objects.get_posts(user=user)
        else:
            posts = Post.objects.get_posts()

        if username:
            posts = posts.filter(user=user)

        if tag_name:
            posts = posts.filter(tags__name=tag_name)

        posts = Subscribed.join_is_subscribed(self.user, posts)

        return posts
コード例 #2
0
ファイル: logic.py プロジェクト: Apkawa/nyasha
 def get_post(self, post_id):
     from models import Post, Tag, Subscribed
     try:
         posts = Post.objects.comments_count().filter(pk=post_id)
         posts = Subscribed.join_is_subscribed(self.user, posts)
         posts = Tag.attach_tags(posts)
         post = posts[0]
     except (Post.DoesNotExist, IndexError):
         raise PostInterfaceError("Message not found.")
     return post
コード例 #3
0
ファイル: logic.py プロジェクト: Apkawa/nyasha
    def get_user_info(self, user_id=None, username=None):
        from models import Profile, Subscribed
        if user_id:
            users_set = User.objects.filter(pk=user_id)
        elif username:
            users_set = User.objects.filter(username=username)
        else:
            users_set = User.objects.filter(pk=self.user.pk)

        users = Profile.attach_user_info(users_set)
        users = Subscribed.join_is_subscribed(self.user, users)
        try:
            return users[0]
        except IndexError:
            raise UserInterfaceError("Unknown user, sorry.")
コード例 #4
0
ファイル: views.py プロジェクト: Apkawa/nyasha
def post_add(request):
    from jabber_daemon.command_resolver import command_patterns
    form_p = FormProcessor(PostForm, request)
    form_p.process()

    if form_p.is_valid():
        data = form_p.data
        message  = data['body']
        if not command_patterns.find_command(message):
            user = request.user
            post = post_in_blog(message, user, 'web')
            if not post:
                return redirect('post_add')
            post_body = render_post(post)
            send_subscribes_broadcast(Subscribed.get_all_subscribes_by_post(post),
                    post_body, exclude_user=[user])
            return redirect('post_view', post_pk=post.pk)
        return redirect('post_add')

    context = {}
    context['form'] = form_p.form
    return render_template(request, 'blog/post_add.html', context)
コード例 #5
0
ファイル: views.py プロジェクト: Apkawa/nyasha
def send_broadcast(to_subscribe, message, sender=None, exclude_user=()):
    if not settings.BROADCAST_SEND:
        return
    subscribes = Subscribed.get_subscribes_by_obj(to_subscribe
            ).select_related('user').exclude(user__in=exclude_user).exclude(user__profile__is_off=True)
    send_subscribes_broadcast(subscribes, message)