Example #1
0
    def category(self):
        category_id = self.request.matchdict['category']
        category = self.get_category(category_id)

        if category is None or category.language != self.locale:
            raise HTTPNotFound()

        pages = self.get_pages_for_category(category_id, self.locale)
        p = int(self.request.GET.get('p', 0))
        empty_defaults = {
            'paginator': [],
            'category': category,
            'p': p,
        }
        if not category:
            return empty_defaults

        if len(pages) == 0:
            return empty_defaults
        paginator = EGPaginator(pages,
                                p,
                                results_per_page=self.results_per_page)

        # requested page number is out of range
        total_pages = paginator.total_pages()
        # sets the floor to 0
        p = p if p >= 0 else 0
        # sets the roof to `total_pages -1`
        p = p if p < total_pages else total_pages - 1
        paginator = EGPaginator(pages,
                                p,
                                results_per_page=self.results_per_page)

        return {
            'paginator': paginator,
            'category': category,
            'p': p,
            'pages': pages,
        }
Example #2
0
    def search(self):

        query = self.request.GET.get('q')
        p = int(self.request.GET.get('p', 0))

        empty_defaults = {
            'paginator': [],
            'query': query,
            'p': p,
        }

        # handle query exception
        if not query:
            return empty_defaults

        all_results = self.workspace.S(Page).query(
            content__query_string=query).filter(language=self.locale)

        # no results found
        if all_results.count() == 0:
            return empty_defaults

        paginator = EGPaginator(all_results, p)

        # requested page number is out of range
        total_pages = paginator.total_pages()
        # sets the floor to 0
        p = p if p >= 0 else 0
        # sets the roof to `total_pages -1`
        p = p if p < total_pages else total_pages - 1
        paginator = EGPaginator(all_results, p)

        return {
            'paginator': paginator,
            'query': query,
            'p': p,
        }
Example #3
0
    def category(self):
        category_id = self.request.matchdict['category']
        category = self.get_category(category_id)

        if category is None or category.language != self.locale:
            raise HTTPNotFound()

        pages = self.get_pages_for_category(category_id, self.locale)
        p = int(self.request.GET.get('p', 0))
        empty_defaults = {
            'paginator': [],
            'category': category,
            'p': p,
        }
        if not category:
            return empty_defaults

        if len(pages) == 0:
            return empty_defaults
        paginator = EGPaginator(
            pages, p, results_per_page=self.results_per_page)

        # requested page number is out of range
        total_pages = paginator.total_pages()
        # sets the floor to 0
        p = p if p >= 0 else 0
        # sets the roof to `total_pages -1`
        p = p if p < total_pages else total_pages - 1
        paginator = EGPaginator(
            pages, p, results_per_page=self.results_per_page)

        return {
            'paginator': paginator,
            'category': category,
            'p': p,
            'pages': pages,
        }
Example #4
0
    def search(self):

        query = self.request.GET.get('q')
        p = int(self.request.GET.get('p', 0))

        empty_defaults = {
            'paginator': [],
            'query': query,
            'p': p,
        }

        # handle query exception
        if not query:
            return empty_defaults

        all_results = self.workspace.S(Page).query(
            content__query_string=query).filter(language=self.locale)

        # no results found
        if all_results.count() == 0:
            return empty_defaults

        paginator = EGPaginator(all_results, p)

        # requested page number is out of range
        total_pages = paginator.total_pages()
        # sets the floor to 0
        p = p if p >= 0 else 0
        # sets the roof to `total_pages -1`
        p = p if p < total_pages else total_pages - 1
        paginator = EGPaginator(all_results, p)

        return {
            'paginator': paginator,
            'query': query,
            'p': p,
        }