def test_paginate_plain_list(self):

        self.assertRaises(NotFound, Pagination, range(1, 42), 0, 10)
        self.assertRaises(NotFound, Pagination, range(1, 42), 6, 10)

        paginator = Pagination(range(1, 42), 1, 10)
        self._test_paginator(paginator)
Exemple #2
0
def list_movie_by_genre_get(genre="all", page=1, sort="newest", per_page=32):
    key = "genre:{genre}:{sort}".format(genre=genre, page=page, sort=sort)
    rv = redis.hget(key, page)
    if rv:
        return rv

    if page < 1:
        return abort(404)

    if sort not in ["newest", "popular", "best"]:
        return abort(404)

    cursor = Movie.get_movies_by_genre(genre, sort).only(
                "_critics_score", "_thumbnail", "_release_date", "_title",  "_formatted_title")
    paginated_movies = Pagination(cursor, page, per_page)
    movies = [movie for movie in paginated_movies.items]

    # setting up the request context and passing some information into the template
    g.has_next = paginated_movies.has_next
    g.has_prev = paginated_movies.has_prev
    g.possible_genres = genres
    g.possible_sorts = sorts
    g.current_genre = genre
    g.current_sort = sort
    g.movies = movies
    g.page = page
    g.title = genre
    rv = render_template("genre.html", g=g)

    redis.hset(key, page, rv)
    redis.expire(key, TTL)
    return rv
Exemple #3
0
def user_items(param, page=1):
    user = User.objects.get_or_404(user_id=param)
    items = Pagination(Item.objects(submitter=user), page, 12)

    return render_template('frontend/user_items.html',
                           items=items,
                           user=user)
Exemple #4
0
def view_followings(username):
    page = get_page()
    user = User.objects.get_or_404(username=username)

    pagination = Pagination(user.followings, page, per_page=20)

    return render_template('users/followings.html',
                           user=user,
                           pagination=pagination)
Exemple #5
0
def category(param, page=1):
    categories = Category.objects.all()
    category = categories.get_or_404(name_en__iexact=param)

    items = Pagination(Item.objects(category=category), page, 12)

    return render_template('frontend/category_listing.html',
                           items=items,
                           current_category=category,
                           categories=categories)
Exemple #6
0
def listUnity(tag, user, pageNum):
    if tag:
        unitySet = Pagination(
            Unity.get_set(postType='blog', tags=tag),
            pageNum, 10)
        pageTitle = tag
    if user:
        user = User.get(email=user)
        unitySet = Pagination(
            Unity.get_set(postType='blog', author=user),
            pageNum, 10)
        pageTitle = user.email
    elif not tag and not user:
        unitySet = Pagination(
            Unity.get_set(postType='blog'),
            pageNum, 10)
        pageTitle = "blog"  # "listUnity"
    return render_template('unity/listUnity.html',
                           pageTitle=pageTitle,
                           unitySet=unitySet,
                           page=pageNum)
    def test_queryset_paginator(self):
        with self.app.test_request_context('/'):
            db = self.db

            class Post(db.Document):
                title = db.StringField(required=True, max_length=200)

            for i in range(42):
                Post(title="post: %s" % i).save()

        self.assertRaises(NotFound, Pagination, Post.objects, 0, 10)
        self.assertRaises(NotFound, Pagination, Post.objects, 6, 10)

        paginator = Pagination(Post.objects, 1, 10)
        self._test_paginator(paginator)
Exemple #8
0
def search(param, page=1):
    items = Pagination(Item.objects(titles__title__icontains=param),
                       1, 12)
    return render_template('frontend/search_result.html', items=items)
Exemple #9
0
def tag(param, page=1):
    items = Pagination(Item.objects(tags=param), page, 12)
    if len(items.items) == 0:
        return abort(404)
    return render_template('frontend/tag.html', tag=param, items=items)