def comment_list(request, post_id): post = Post.objects.get(id=post_id) comments_all_list = Comment.objects.filter( post=post, is_deleted=False).order_by('-id') paginator = Paginator(comments_all_list, post.board.comments_chunk_size) page = request.GET.get('page') try: comments = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. comments = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. comments = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info( comments, nav_chunk_size=post.board.comment_pages_nav_chunk_size) return render(request, 'comment_list.html', { 'post': post, 'comments': comments, 'pages_nav_info': pages_nav_info })
def view_post(request, post_id): non_sliced_query_set = Post.objects.filter(id=post_id) non_sliced_query_set.update(page_view_count=F('page_view_count') + 1) post = Post.objects.get(id=post_id) try: attachment = Attachment.objects.get(post=post) uploaded_file = attachment.attachment except Attachment.DoesNotExist: uploaded_file = None comments_all_list = Comment.objects.filter( post=post, is_deleted=False).order_by('-id') is_modified = False history = EditedPostHistory.objects.filter(post=post) if history: is_modified = True paginator = Paginator(comments_all_list, post.board.comments_chunk_size) page = request.GET.get('page') try: comments = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. comments = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. comments = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info( comments, nav_chunk_size=post.board.comment_pages_nav_chunk_size) is_authenticated = False if post.account == request.user: is_authenticated = True return render( request, 'view_post.html', { 'post': post, 'uploaded_file': uploaded_file, 'is_modified': is_modified, 'comments': comments, 'pages_nav_info': pages_nav_info, 'is_authenticated': is_authenticated, })
def view_post(request, post_id): non_sliced_query_set = Post.objects.filter(id=post_id) non_sliced_query_set.update(page_view_count=F('page_view_count') + 1) post = Post.objects.get(id=post_id) try: attachment = Attachment.objects.get(post=post) uploaded_file = attachment.attachment except Attachment.DoesNotExist: uploaded_file = None comments_all_list = Comment.objects.filter(post=post, is_deleted=False).order_by('-id') is_modified = False history = EditedPostHistory.objects.filter(post=post) if history: is_modified = True paginator = Paginator(comments_all_list, post.board.comments_chunk_size) page = request.GET.get('page') try: comments = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. comments = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. comments = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info(comments, nav_chunk_size=post.board.comment_pages_nav_chunk_size) is_authenticated = False if post.account == request.user: is_authenticated = True return render(request, 'view_post.html', { 'post': post, 'uploaded_file': uploaded_file, 'is_modified': is_modified, 'comments': comments, 'pages_nav_info': pages_nav_info, 'is_authenticated': is_authenticated, })
def post_list(request, board_slug): board = Board.objects.get(slug=board_slug) # search search_info = { 'query': request.GET.get('query', ''), 'selected_flag': request.GET.get('search_flag', 'TITLE'), 'flags': Post.SEARCH_FLAG } if search_info['query']: posts = Post.objects.board(board).remain().search(search_info['selected_flag'], search_info['query'])\ .order_by('-id') else: posts = Post.objects.board(board).remain().order_by('-id') # pagination paginator = Paginator(posts, board.posts_chunk_size) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. posts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. posts = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info( posts, nav_chunk_size=board.post_pages_nav_chunk_size) return render( request, 'post_list.html', { 'posts': posts, 'board': board, 'pages_nav_info': pages_nav_info, 'search_info': search_info })
def comment_list(request, post_id): post = Post.objects.get(id=post_id) comments_all_list = Comment.objects.filter(post=post, is_deleted=False).order_by('-id') paginator = Paginator(comments_all_list, post.board.comments_chunk_size) page = request.GET.get('page') try: comments = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. comments = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. comments = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info(comments, nav_chunk_size=post.board.comment_pages_nav_chunk_size) return render(request, 'comment_list.html', { 'post': post, 'comments': comments, 'pages_nav_info': pages_nav_info })
def post_list(request, board_slug): board = Board.objects.get(slug=board_slug) # search search_info = { 'query': request.GET.get('query', ''), 'selected_flag': request.GET.get('search_flag', 'TITLE'), 'flags': Post.SEARCH_FLAG } if search_info['query']: posts = Post.objects.board(board).remain().search(search_info['selected_flag'], search_info['query'])\ .order_by('-id') else: posts = Post.objects.board(board).remain().order_by('-id') # pagination paginator = Paginator(posts, board.posts_chunk_size) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. posts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. posts = paginator.page(paginator.num_pages) pages_nav_info = get_pages_nav_info(posts, nav_chunk_size=board.post_pages_nav_chunk_size) return render(request, 'post_list.html', { 'posts': posts, 'board': board, 'pages_nav_info': pages_nav_info, 'search_info': search_info })
def get_pages_nav_info(PAGE_SIZE, NAV_PAGE_CHUNK_SIZE, TEST_LOAD_PAGE, OBJS_SIZE): object_list = range(OBJS_SIZE) paginator = Paginator(object_list, PAGE_SIZE) page = paginator.page(TEST_LOAD_PAGE) return get_pages_nav_info(page, nav_chunk_size=NAV_PAGE_CHUNK_SIZE)