def redirect_back(*args, **kwargs): """Redirect back to the page we are comming from or the URL rule given. """ target = get_redirect_target() if target is None: target = url_for(*args, **kwargs) return redirect(target)
def generate(self, normal='<a href="%(url)s">%(page)d</a>', active='<strong>%(page)d</strong>', commata='<span class="commata">,\n</span>', ellipsis=u'<span class="ellipsis">...\n</span>', threshold=3, prev_link=True, next_link=True, gray_prev_link=True, gray_next_link=True): was_ellipsis = False result = [] prev = None next = None small_threshold = math.ceil(threshold / 2.0) get_link = lambda x: url_for(self.endpoint, page=x, **self.url_args) for num in xrange(1, self.pages + 1): if num == self.page: was_ellipsis = False if num - 1 == self.page: next = num if num + 1 == self.page: prev = num if num <= small_threshold or \ num > self.pages - small_threshold or \ abs(self.page - num) < threshold: if result and result[-1] != ellipsis: result.append(commata) was_space = False link = get_link(num) template = num == self.page and active or normal result.append(template % { 'url': link, 'page': num }) elif not was_ellipsis: was_ellipsis = True result.append(ellipsis) if next_link: if next is not None: result.append(u' <a href="%s">Next »</a>' % get_link(next)) elif gray_next_link: result.append(u' <span class="disabled">Next »</span>') if prev_link: if prev is not None: result.insert(0, u'<a href="%s">« Prev</a> ' % get_link(prev)) elif gray_prev_link: result.insert(0, u'<span class="disabled">« Prev</span> ') return u''.join(result)
def redirect_to(*args, **kwargs): """Temporarily redirect to an URL rule.""" return redirect(url_for(*args, **kwargs))
def get_url(self): return url_for(self.endpoint, **self.rule_args)