#!/usr/bin/python3
from math import ceil, floor
from citoplasma.urls import add_get_parameters
from citoplasma.i18n import I18n
class Pages:
css_class='link_pages'
@staticmethod
def show( begin_page, total_elements, num_elements, link ,initial_num_pages=20, variable='begin_page', label='', func_jscript=''):
pages='';
if begin_page>total_elements:
begin_page=0
# Calculamos el total de todas las páginas
total_page=ceil(total_elements/num_elements)
# Calculamos en que página nos encontramos
actual_page=ceil(begin_page/num_elements)
# Calculamos el total de intervalos
total_interval=ceil(total_page/initial_num_pages)
# Calculamos el intervalo en el que estamos
actual_interval=floor(actual_page/initial_num_pages)
# Calculamos el elemento de inicio del intervalo
initial_page=ceil(actual_interval*initial_num_pages*num_elements)
last_page=ceil(actual_interval*initial_num_pages*num_elements)+ceil(initial_num_pages*num_elements)
if last_page>total_elements:
last_page=total_elements
if initial_page>0:
initial_link=add_get_parameters(link, **{variable: '0'});
middle_link=add_get_parameters(link, **{variable: str((initial_page-num_elements)) } );
pages += "1 << "
arr_pages={}
#for(x=initial_page;x"+str(num_page)+" "
arr_pages[begin_page]=''+str(num_page)+' ';
pages += arr_pages[x]
if last_page>> "+I18n.lang('common', 'last', 'Last')+""
return pages