def __init__(self, object_list, permage_id, paginator): number = -1 self.permage_id = permage_id for page, pid in paginator.page_range: if pid == permage_id: number = page Page.__init__(self, object_list, number, paginator) self.asc = False if len(self.object_list) > 1: first = self.object_list[0].id second = self.object_list[1].id if first < second: self.asc = True #navigation: div id=paginator self.navigation = [] prev_range = self.paginator.page_range[:number-1] next_range = self.paginator.page_range[number:] if len(self.paginator.page_range) <= self.paginator.navigation_steps: self.navigation = prev_range self.navigation.append([number, "current"]) self.navigation.extend(next_range) else: steps = (self.paginator.navigation_steps-1) / 2 prev_len = len(prev_range[:steps]) next_len = len(next_range[steps*(-1):]) extra_steps_prev = steps - prev_len extra_steps_next = steps - next_len steps = steps + extra_steps_next if len(prev_range) > steps: self.navigation.append(prev_range[0]) self.navigation.append([-1, "..."]) self.navigation.extend(prev_range[(steps-1)*(-1):]) else: self.navigation.extend(prev_range[:steps]) self.navigation.append([number, "current"]) steps = ((self.paginator.navigation_steps-1) / 2) + extra_steps_prev if len(next_range) > steps: self.navigation.extend(next_range[:(steps-1)]) self.navigation.append([-1, "..."]) self.navigation.append(next_range[-1]) else: self.navigation.extend(next_range[(steps+1)*(-1):])
def __init__(self, page, req): DjangoPage.__init__(self, page.object_list, page.number, page.paginator) self.req = req