(current_page, num_pages)
return pages
Alternative callable for page listing.

    Produce an adaptive pagination, useful for big numbers of pages, by
    splitting the num_pages ranges in two parts at current_page. Each part
    will have its own S-curve.
Alternative callable for page listing.
Alternative callable for page listing .
def get_elastic_page_numbers(current_page, num_pages):
    """Alternative callable for page listing.

    Produce an adaptive pagination, useful for big numbers of pages, by
    splitting the num_pages ranges in two parts at current_page. Each part
    will have its own S-curve.
    """
    if num_pages <= 10:
        return list(range(1, num_pages + 1))
    if current_page == 1:
        pages = [1]
    else:
        pages = ['first', 'previous']
        pages.extend(_make_elastic_range(1, current_page))
    if current_page != num_pages:
        pages.extend(_make_elastic_range(current_page, num_pages)[1:])
        pages.extend(['next', 'last'])
    return pages
def get_elastic_page_numbers ( current_page , num_pages ) : if num_pages <= 10 : return list ( range ( 1 , num_pages + 1 ) ) if current_page == 1 : pages = [ 1 ] else : pages = [ 'first' , 'previous' ] pages . extend ( _make_elastic_range ( 1 , current_page ) ) if current_page != num_pages : pages . extend ( _make_elastic_range ( current_page , num_pages ) [ 1 : ] ) pages . extend ( [ 'next' , 'last' ] ) return pages