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)
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)
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()
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)
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)
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)
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)
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)
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)