コード例 #1
0
    def index(self, page=None, place=None):

        records_query = Record.objects.all()

        if place is not None:
            records_query = records_query.filter(actors__place_id=place.id)

        url_builder = UrlBuilder(reverse('game:chronicle:'), arguments={'place': place.id if place else None})

        index_filter = IndexFilter(url_builder=url_builder, values={'place': place.id if place else None})

        records_count = records_query.count()

        if page is None:
            page = Paginator.get_page_numbers(records_count, chronicle_settings.RECORDS_ON_PAGE)
            if page == 0: page = 1
        page = int(page) - 1

        paginator = Paginator(page, records_count, chronicle_settings.RECORDS_ON_PAGE, url_builder, inverse=True)

        if paginator.wrong_page_number:
            return self.redirect(paginator.last_page_url, permanent=False)

        record_from, record_to = paginator.page_borders(page)

        records = [ RecordPrototype(record) for record in records_query.select_related().order_by('created_at', 'created_at_turn')[record_from:record_to]]

        records = list(reversed(records))

        return self.template('chronicle/index.html',
                             {'records': records,
                              'place': place,
                              'paginator': paginator,
                              'index_filter': index_filter,
                              'url_builder': url_builder} )
コード例 #2
0
ファイル: views.py プロジェクト: angru/the-tale
 def get_post_url(self, post):
     thread_posts_ids = list(
         PostPrototype._db_filter(
             thread_id=post.thread_id).order_by('created_at').values_list(
                 'id', flat=True))
     page = Paginator.get_page_numbers(
         thread_posts_ids.index(post.id) + 1, forum_settings.POSTS_ON_PAGE)
     return url('forum:threads:show', post.thread_id,
                page=page) + ('#m%d' % post.id)
コード例 #3
0
 def get_post_url(self, post):
     thread_posts_ids = list(PostPrototype._db_filter(thread_id=post.thread_id).order_by('created_at').values_list('id', flat=True))
     page = Paginator.get_page_numbers(thread_posts_ids.index(post.id)+1, forum_settings.POSTS_ON_PAGE)
     return url('forum:threads:show', post.thread_id, page=page) + ('#m%d' % post.id)