from .models import Category as ca
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
import random


def paginator(posts, req):
    if "page" in req:
        page = req['page']        # Obtains a given page number
    if not "page" in req:
        page = 1                  # Reset page number to 1, if not given in request
    paginator = Paginator(posts, 10)  # Set required number of items per page
    ellips = paginator.ELLIPSIS    # Get ellips symbol
    try:                            # Returns required page
        posts = paginator.page(page)
    except PageNotAnInteger:               # Returns first page
        page = 1
        posts = paginator.page(page)
    except EmptyPage:                       # Returns last page
        page = paginator.num_pages
        posts = paginator.page(page)
    paginator = paginator.get_elided_page_range(page, on_each_side = 2, on_ends = 2)
    return {"ellips":ellips, "posts":posts, "paginator":paginator, "page_num":posts.number}
