def paginate_articles(self, all_articles, page_number):
		paginator = Paginator(all_articles, 5)
		p_range = paginator.page_range
		range_len = len(p_range)
		if page_number:
			page_number = int(page_number)
		if range_len <= 10:
			pass
		elif page_number <= 5:
			p_range = range(1, 11)
		elif page_number >= range_len - 5:
			p_range = range(page_number - 4, range_len + 1)
		else:
			p_range = range(page_number - 4, page_number + 6)

		paginator.p_range = p_range
		try:
			articles = paginator.page(page_number)
		except PageNotAnInteger:
			articles = paginator.page(1)
		except EmptyPage:
			articles = paginator.page(paginator.num_pages)
		if not page_number:
			articles.page_number = 1
		else:
			articles.page_number = int(page_number)
		return articles
Example #2
0
    def paginate_articles(self, all_articles, page_number):
        paginator = Paginator(all_articles, 5)
        p_range = paginator.page_range
        range_len = len(p_range)
        if page_number:
            page_number = int(page_number)
        if range_len <= 10:
            pass
        elif page_number <= 5:
            p_range = range(1, 11)
        elif page_number >= range_len - 5:
            p_range = range(page_number - 4, range_len + 1)
        else:
            p_range = range(page_number - 4, page_number + 6)

        paginator.p_range = p_range
        try:
            articles = paginator.page(page_number)
        except PageNotAnInteger:
            articles = paginator.page(1)
        except EmptyPage:
            articles = paginator.page(paginator.num_pages)
        if not page_number:
            articles.page_number = 1
        else:
            articles.page_number = int(page_number)
        return articles