Пример #1
0
def tagControl(request):
    template = 'main_article/tagControl.html'
    tags = Tag.objects.all()
    content = request.POST.get('content')
    if request.method == 'GET':
        context = {
            'tags': tags,
            'articlecount': tags.__len__(),
            'page_title': '标签控制'
        }
        return render(request, template, context)
    #post
    if content == '':
        context = {'tags': tags}
        messages.error(request, '不能为空')
        return render(request, template, context)
    try:
        content2 = str(Tag.objects.get(name=content))
        if content2 == content:
            messages.error(request, '已存在')
    except Tag.DoesNotExist:
        tagform = Tag()
        tagform.name = content
        tagform.save()
        create_action(request.user, '添加了标签', tagform)
        messages.success(request, '新增成功')
    return redirect('main_article:tagControl')
Пример #2
0
def tagDelete(request, tagId):
    tag_delete = Tag.objects.get(id=tagId)
    tag_delete_str = str(Tag.objects.get(id=tagId))
    tag_delete.delete()
    create_action(request.user, '删除了标签' + '-' + tag_delete_str, tag_delete)
    messages.success(request, '已删除:' + tag_delete_str)
    return redirect('main_article:tagControl')
Пример #3
0
def guestbook_Post_Update(request, postId):
    get_post = get_object_or_404(Guestbook_Post, id=postId)
    if request.method == 'GET':
        template = 'guestbook/PostCreateUpdate.html'
        update_post = PostForm(instance=get_post)
        return render(
            request, template, {
                'postform': update_post,
                'post': get_post,
                'guestbook_posts_session': 'guestbook'
            })
    #Post

    post_update = PostForm(request.POST, instance=get_post)
    if not post_update.is_valid():
        return render(request, template, {
            'postform': post_update,
            'post': get_post
        })
    post_update_Form = post_update.save(commit=False)
    post_update_Form.upDateTime = timezone.now()
    post_update_Form.save()
    post_update.save_m2m()
    create_action(request.user, '修改了留言', post_update_Form)
    messages.success(request, '文章已修改')
    return redirect('guestbook:postRead', postId)
Пример #4
0
def guestbook_Post_Create(request):
    template = 'guestbook/PostCreateUpdate.html'
    if request.method == 'GET':
        return render(
            request, template, {
                'postform': PostForm(),
                'guestbook_posts': 'cut-articleCreate-link',
                'guestbook_posts_session': 'guestbook'
            })
    #Post
    postform = PostForm(request.POST)
    if not postform.is_valid():
        return render(request, template, {'postform': postform})
    author_id = request.user
    form = postform.save(commit=False)
    form.author = author_id
    form.upDateTime = timezone.now()
    form.save()
    #save tags
    postform.save_m2m()
    #action create
    create_action(request.user, '发表了留言', form)

    messages.success(request, '文章已新增')
    return redirect('guestbook:posts')
Пример #5
0
def guestbook_Post_Delete(request, postId):
    post_delete = get_object_or_404(Guestbook_Post, id=postId)
    post_delete.delete()
    post_delete_str = str(post_delete)
    create_action(request.user, '删除了留言-' + post_delete_str, post_delete)
    messages.success(request, '留言已删除')
    return redirect('guestbook:posts')
Пример #6
0
def categoryDelete(request, categoryId):
    # POST
    category = get_object_or_404(Category, id=categoryId)
    category_str = str(category)
    category.delete()
    create_action(request.user, '删除了分类' + '-' + category_str, category)
    messages.success(request, '板块已删除')

    return redirect('main_article:categoryControl')
Пример #7
0
def categoryControl(request):
    template = 'main_article/categoryControl.html'
    category = Category.objects.all()
    guestbook_category = Guestbook_Category.objects.all()
    if request.method == 'GET':
        context = {
            'categorys': category,
            'guestbook_categorys': guestbook_category,
            'articlecount': category.__len__(),
            'page_title': '分类控制'
        }
        return render(request, template, context)
    # POST
    content = request.POST.get('content')
    guestbook_content = request.POST.get('guestbook_content')
    # print('主页分类:'+str(content))
    # print('留言分类:'+str(guestbook_content))
    if content == '' or guestbook_content == '':
        context = {
            'categorys': category,
            'guestbook_categorys': guestbook_category,
            'articlecount': category.__len__()
        }
        messages.error(request, '不能为空')
        return render(request, template, context)
    try:
        if not content == None:
            #print(content)
            content2 = str(Category.objects.get(name=content))
            if content2 == content:
                messages.error(request, '已存在')

    except Category.DoesNotExist:
        categoryform = Category()
        categoryform.name = content
        categoryform.save()

        create_action(request.user, '添加了分类', categoryform)
        messages.success(request, '新增成功')
    # 留言分类
    try:
        if not guestbook_content == None:
            #print(guestbook_content)
            content2_guestbook = str(
                Guestbook_Category.objects.get(name=guestbook_content))
            if content2_guestbook == guestbook_content:
                messages.error(request, '已存在')
    except Guestbook_Category.DoesNotExist:
        guestbook_category_form = Guestbook_Category()
        guestbook_category_form.name = guestbook_content
        guestbook_category_form.save()

        messages.success(request, '新增成功')

    return redirect('main_article:categoryControl')
Пример #8
0
def articleDelete(request, articleId):

    if request.method == 'GET':
        return article(request)

    # POST
    articleToDelete = get_object_or_404(Article, id=articleId)
    articleToDelete_str = str(articleToDelete)
    articleToDelete.delete()
    create_action(request.user, '删除了文章' + '-' + articleToDelete_str,
                  articleToDelete)
    messages.success(request, '文章已刪除')
    return redirect('main_article:article')
Пример #9
0
def g_categoryUpdate(request, g_categoryId):
    template = 'main_article/categoryUpdate.html'
    category = get_object_or_404(Guestbook_Category, id=g_categoryId)
    if request.method == 'GET':
        return render(request, template, {'category': category})
    #POST
    content = request.POST.get('content')
    category.name = content
    category.save()
    create_action(request.user, '修改了分类', category)
    #print(content)
    messages.success(request, '板块已修改')
    return redirect('main_article:categoryControl')
Пример #10
0
def submit_comment(request, id):
    form = CommentForm(data=request.POST)
    # print(request.POST)
    if form.is_valid():
        # print('success')
        new_comment = form.save(commit=False)
        new_comment.user = request.user
        new_comment.user_name = request.user.profile.nickname if request.user.profile.nickname else request.user
        #print(new_comment.user_name)
        new_comment.save()
        #action create
        create_action(request.user, '发表了评论', new_comment)
        location = "#c" + str(new_comment.id)
        return JsonResponse({'msg': 'success!', 'new_comment': location})
    return JsonResponse({'msg': '评论出错!'})
Пример #11
0
def superlikes(request):
    #异步刷新(AJAX)
    article_id = request.POST.get('id')
    action = request.POST.get('action')
    if article_id and action:
        try:
            article = Article.objects.get(id=article_id)
            if action == 'like':
                article.superlikes.add(request.user)
                create_action(request.user, '点赞', article)
            else:
                article.superlikes.remove(request.user)
            return JsonResponse({'status': 'ok'})
        except:
            pass
    return JsonResponse({'status': 'ko'})
    '''
Пример #12
0
def user_follow(request):
    #异步刷新(AJAX)
    user_id = request.POST.get('id')
    action = request.POST.get('action')
    if user_id and action:
        user = Userprofile.objects.get(id=user_id)
        try:
            if action == 'follow':
                Contact.objects.get_or_create(from_user=request.user.profile,
                                              to_user=user)
                create_action(request.user, '关注', user)
            else:
                Contact.objects.filter(from_user=request.user.profile,
                                       to_user=user).delete()
            return JsonResponse({'status': 'ok'})
        except Userprofile.DoesNotExist:
            return JsonResponse({'status': 'ko'})
    return JsonResponse({'status': 'ko'})
Пример #13
0
def like(request):
    comment_id = request.POST.get('id')
    action = request.POST.get('action')
    if comment_id and action:
        try:
            comment = Comment.objects.get(id=comment_id)
            obj, created = Like.objects.get_or_create(user=request.user,
                                                      comment=comment)
            if action == 'like':
                if not created:
                    obj.status = True
                    obj.save()
                    #print(obj)
                    create_action(request.user, '点赞了评论', obj)
            if action == 'cancel-like' or action == 'cancel-dislike':
                obj.delete()
            if action == 'dislike':
                obj.status = False
                obj.save()
            return JsonResponse({'msg': 'OK'})
        except Comment.DoesNotExist:
            return JsonResponse({"msg": "KO"})
    return JsonResponse({"msg": "KO"})
Пример #14
0
def articleUpdate(request, articleId):
    articleToUpdate = get_object_or_404(Article, id=articleId)
    template = 'main_article/articlecreateupdate.html'
    #print(articleToUpdate.author)

    if request.method == 'GET':
        if not request.user == articleToUpdate.author:
            messages.error(request, '你没有权限')
            return redirect('main_article:article')

        articleForm = ArticleForm(instance=articleToUpdate)
        return render(
            request, template, {
                'articleForm': articleForm,
                'article': articleToUpdate,
                'tags': Tag.objects.all(),
                'page_title': '修改博客'
            })
    # POST
    articleForm = ArticleForm(request.POST, instance=articleToUpdate)

    # print(articleForm)
    if not articleForm.is_valid():
        return render(request, template, {
            'articleForm': articleForm,
            'article': articleToUpdate
        })

    articleUpdateForm = articleForm.save(commit=False)

    articleUpdateForm.upDateTime = timezone.now()
    articleUpdateForm.excerpt = strip_tags(articleUpdateForm.content)[:200]
    articleUpdateForm.save()
    articleForm.save_m2m()
    create_action(request.user, '修改了文章', articleUpdateForm)
    messages.success(request, '文章已修改')
    return redirect('main_article:articleRead', articleId=articleId)
Пример #15
0
def articleCreate(request):
    template = 'main_article/articlecreateupdate.html'
    if request.method == 'GET':
        return render(
            request, template, {
                'articleForm': ArticleForm(),
                'tags': Tag.objects.all(),
                'page_title': '新增博客'
            })

    # POST
    articleForm = ArticleForm(request.POST)

    if not articleForm.is_valid():
        return render(request, template, {'articleForm': articleForm})
    # 从页面获取user信息
    author_id = request.user
    articleform = articleForm.save(commit=False)
    articleform.author = author_id
    articleform.upDateTime = timezone.now()
    articleform.save()
    articleForm.save_m2m()
    '''
            动作描述
    '''
    create_action(request.user, '发表了文章', articleform)
    # add tags
    '''
    tag_name =Tag.objects.get(id=request.POST.get('tag'))
    article_title = request.POST.get('title')
    article_add_tag = Article.objects.get(title = article_title)
    article_add_tag.tag.add(tag_name)
    article_add_tag.save()
    '''

    messages.success(request, '文章已新增')
    return redirect('main_article:article')
Пример #16
0
def userProfile(request):
    '''
    UserProfile setting
    '''
    # user_to_read = Userprofile.objects.get(id=userId)
    # user = User.objects.get(username=request.user)
    user_to_read = Userprofile.objects.get(user=request.user)
    template = 'main_article/UserProfile.html'
    if request.method == 'GET':
        user_articles = Article.objects.filter(author=request.user)
        user_comments = Comment.objects._mptt_filter(
            user=request.user).order_by('-submit_date')
        profileupdateform = UserprofileForm(instance=user_to_read)
        user_articles_count = user_articles.count()
        #右侧栏显示我发布的文章
        myposts = Article.objects.filter(
            author=request.user).order_by('-read_num')
        #显示用户动态
        #actions = Action.objects.filter(user=request.user)
        ##优化 加载速度提高50ms
        actions = Action.objects.filter(user=request.user).select_related(
            'user', 'user__profile').prefetch_related('action')
        '''获取ct的obj类名来判断,满足不同的转址需求
        for action in actions:
            print(action.get_ct_name())
        '''
        '''
        pagination
        '''
        paginator_articles = Paginator(user_articles, 10)
        #paginator_comments = Paginator(user_comments,5)
        page = request.GET.get('page')
        #print(user_articles.count()),采用分页设计,将无法使用.count()方法,需要重新生成对象
        try:
            user_articles = paginator_articles.page(page)
            #user_comments = paginator_comments.page(page)
        except PageNotAnInteger:
            user_articles = paginator_articles.page(1)
            #user_comments = paginator_comments.page(1)
        except EmptyPage:
            if request.is_ajax():
                return HttpResponse('')
            #user_comments = paginator_comments(paginator_comments.num_pages)

        context = {
            'userprofileform': profileupdateform,
            'userRead': user_to_read,
            'user_articles': user_articles,
            'user_comments': user_comments,
            'user_articles_count': user_articles_count,
            'userprofile': 'userprofile',
            'myposts': myposts[0:5],
            'myactions': actions[0:10],
            'page_title': '个人信息'
        }

        if request.is_ajax():
            template_list = 'main_article/user_articles_list_ajax.html'
            return render(request, template_list,
                          {'user_articles': user_articles})
        return render(request, template, context)
    #post
    #profileupdate = Userprofile.objects.get(user=userId)
    profileform = UserprofileForm(request.POST,
                                  request.FILES,
                                  instance=user_to_read)
    if not profileform.is_valid():
        return render(request, template, {
            'userprofileform': profileform,
            'userRead': user_to_read
        })

    profile = profileform.save(commit=False)
    profile.save()
    create_action(request.user, '修改了用户信息', profile)
    messages.success(request, '修改成功')

    return redirect('main_article:userProfile')