Exemple #1
0
    def render(self, context):
        pager = self.pager.resolve(context)
        url_name = self.url_name.resolve(context)
        url_args = [url_arg.resolve(context) for url_arg in self.url_args]

        next_index = pager['current'].next_page_number() \
            if pager['current'].has_next() else None
        prev_index = pager['current'].previous_page_number() \
            if pager['current'].has_previous() else None
        try:
            replace_index = url_args.index('#PAGE#')
        except ValueError:
            replace_index = len(url_args)
            url_args.append('#PAGE#')

        pages = []
        next_url = None
        prev_url = None
        for index in pager['navigator']:
            url_args[replace_index] = index

            # URL生成
            device = get_current_device()
            request = get_current_request()
            reversed_url = reverse(url_name, args=url_args)
            if request and not device.is_featurephone:
                url = opensocial_session_url_convert(reversed_url, request)
            else:
                url = opensocial_url_convert(reversed_url)

            pages.append({
                'index': index,
                'url': url,
            })
            if next_index == index:
                next_url = url
            elif prev_index == index:
                prev_url = url

        pager_context = template.Context({
            'pager': pager,
            'pages': pages,
            'current_index': pager['current'].number,
            'next_url': next_url,
            'next_index': next_index,
            'prev_url': prev_url,
            'prev_index': prev_index,
        })

        pager_template = template.loader.get_template(self.template_name)
        rendered_html = pager_template.render(pager_context)

        return rendered_html
Exemple #2
0
 def url(self):
     return opensocial_session_url_convert(
         '/debug_image/{}/'.format(self.dummy_key))