コード例 #1
0
def show(request, article_id):
    """ show """
    response = dp(default_response)
    current_user = request.user

    HanmaumArticlePermissionValidator.show(current_user, article_id)

    article = HanmaumArticle.objects.get(pk=article_id)

    comments = Comment.get_comments(article)

    if current_user.is_authenticated:
        article.is_user_in_like = LikeActivity.is_user_in_like(
            _content_object=article, _user=current_user)
        article.is_user_in_dislike = LikeActivity.is_user_in_dislike(
            _content_object=article, _user=current_user)
        ViewHistory.add_history(_viewed_obj=article,
                                _viewer=current_user)  # 사용자 접속 로그 추가

    next_article = get_next_article(article_id=article_id)
    prev_article = get_prev_article(article_id=article_id)

    response.update({
        'banner_title': article.title,
        'article': article,
        'comments': comments,
        'next_article': next_article,
        'prev_article': prev_article,
    })

    return render(request, 'hanmaum/show.dj.html', response)
コード例 #2
0
ファイル: views.py プロジェクト: hanalum-dev/hanalum_web
def dislike(request, article_id):
    """article을 싫어요 처리합니다."""

    current_user = request.user

    ArticlePermissionValidator.dislike(current_user, article_id)
    article = get_object_or_404(Article, pk=article_id)

    if LikeActivity.is_user_in_dislike(_content_object=article, _user=current_user):
        activity_result = LikeActivity.set_user_in_none(
            _content_object=article,
            _user=current_user
        )
    else:
        activity_result = LikeActivity.set_user_in_dislike(
            _content_object=article,
            _user=current_user
        )

    if activity_result.status:
        messages.success(request, activity_result.msg)
    else:
        messages.error(request, activity_result.msg)

    return redirect("articles:show", article_id)
コード例 #3
0
    def reset_like_and_dislike_counter(modeladmin, request, queryset):
        """좋아요/싫어요 캐시 카운터를 쿼리를 날려 다시 설정한다."""
        articles = queryset

        for article in articles:
            article.like_count = LikeActivity.get_like_count(article)
            article.dislike_count = LikeActivity.get_dislike_count(article)
            article.save()
コード例 #4
0
ファイル: views.py プロジェクト: hanalum-dev/hanalum_web
def show(request, article_id):
    """articles#show"""

    response = dp(default_response)
    current_user = request.user

    ArticlePermissionValidator.show(current_user, article_id)

    article = Article.objects.get(pk=article_id)
    board = article.board

    comments = Comment.get_comments(article)

    if current_user.is_authenticated:
        article.is_user_in_like = LikeActivity.is_user_in_like(
            _content_object=article,
            _user=current_user
        )
        article.is_user_in_dislike = LikeActivity.is_user_in_dislike(
            _content_object=article,
            _user=current_user
        )
    is_author = article.author == current_user

    hashtags = HashTag.get_hashtag(tagged_object=article)

    next_article = get_next_article(article_id=article_id, board_id=board.id)
    prev_article = get_prev_article(article_id=article_id, board_id=board.id)
    popular_articles = get_recent_popular_articles(board_id=board.id)

    response.update({
        'banner_title' : article.title,
        'article' : article,
        'board': board,
        'comments' : comments,
        'is_author' : is_author,
        'hashtags' : hashtags,
        'next_article': next_article,
        'prev_article': prev_article,
        'popular_articles': popular_articles
    })

    if current_user.is_authenticated:
        ViewHistory.add_history(
            _viewed_obj=article,
            _viewer=current_user
        )

    return render(request, 'articles/show.dj.html', response)
コード例 #5
0
def index(request):
    """ index """
    response = dp(default_response)
    response['articles'] = HanmaumArticle.objects.published()

    for article in response['articles']:
        if request.user.is_authenticated:
            article.is_user_in_like = LikeActivity.is_user_in_like(
                _content_object=article, _user=request.user)
            article.is_user_in_dislike = LikeActivity.is_user_in_dislike(
                _content_object=article, _user=request.user)

    response.update({
        'banner_title': '한민 마을의 소리, 한마음',
    })
    return render(request, 'hanmaum/index.dj.html', response)
コード例 #6
0
def show(request, board_id):
    """게시판 페이지"""
    response = dp(default_response)
    board = get_object_or_404(Board, pk=board_id)
    current_user = request.user
    BoardPermissionValidator.show(current_user, board_id)

    top_fixed_articles = Article.objects.filter(board=board)\
        .published().top_fixed().recent()

    articles = Article.objects.recent().filter(
        board=board).published().non_top_fixed()
    popular_articles = get_recent_popular_articles(board_id=board_id)

    paginator = Paginator(articles, 5)
    page = request.GET.get('page')
    if page == "" or page is None:
        page = 1

    articles = paginator.get_page(page)
    start = max(int(page) - 5, 1)
    end = min(int(page) + 5, paginator.num_pages)

    for article in articles:
        article.hashtags = HashTag.get_hashtag(tagged_object=article)

        if current_user.is_authenticated:
            article.is_user_in_like = LikeActivity.is_user_in_like(
                _content_object=article, _user=current_user)
            article.is_user_in_dislike = LikeActivity.is_user_in_dislike(
                _content_object=article, _user=current_user)

    response.update({
        'board': board,
        'banner_title': board.title,
        'top_fixed_articles': top_fixed_articles,
        'articles': articles,
        'popular_articles': popular_articles,
        'range': list(range(start, end + 1))
    })

    return render(request, 'boards/show.dj.html', response)
コード例 #7
0
def like(request, article_id):
    """article을 좋아요 처리합니다."""

    current_user = request.user
    HanmaumArticlePermissionValidator.like(current_user, article_id)
    article = HanmaumArticle.objects.filter(pk=article_id).first()

    if LikeActivity.is_user_in_like(_content_object=article,
                                    _user=current_user):
        activity_result = LikeActivity.set_user_in_none(
            _content_object=article, _user=current_user)
    else:
        activity_result = LikeActivity.set_user_in_like(
            _content_object=article, _user=current_user)

    if activity_result.status:
        messages.success(request, activity_result.msg)
    else:
        messages.error(request, activity_result.msg)

    return redirect("hanmaum:show", article_id)
コード例 #8
0
def show(request, user_id):
    """사용자 페이지 뷰"""
    response = dp(default_response)
    user = User.objects.get(pk=user_id)

    UserPermissionValidator.show(user_id)

    like_articles = LikeActivity.get_like_content_objects(
        _user=user,
        _content_object=Article,
    )
    like_hanmaum_articles = LikeActivity.get_like_content_objects(
        _user=user, _content_object=HanmaumArticle)
    create_articles = Article.get_articles_created_by(user)

    response.update({
        'user': user,
        'like_articles': like_articles,
        'like_hanmaum_articles': like_hanmaum_articles,
        'create_articles': create_articles
    })

    return render(request, 'users/show.dj.html', response)
コード例 #9
0
def me(request):
    response = dp(default_response)
    current_user = request.user

    like_articles = LikeActivity.get_like_content_objects(
        _user=current_user,
        _content_object=Article,
    )
    like_hanmaum_articles = LikeActivity.get_like_content_objects(
        _user=current_user, _content_object=HanmaumArticle)
    create_articles = Article.get_articles_include_anonymous_author_created_by(
        current_user)
    recent_comments = Comment.get_recent_user_comments(_user=current_user)

    response.update({
        'user': current_user,
        'like_articles': like_articles,
        'like_hanmaum_articles': like_hanmaum_articles,
        'recent_comments': recent_comments,
        'create_articles': create_articles
    })

    return render(request, 'users/me.dj.html', response)