コード例 #1
0
ファイル: search.py プロジェクト: pombredanne/turbion
def generic_search(request, models, filters={}, form_name="form", page=1):
    context = {}

    if request.method == "GET":
        form = SearchForm(request.GET)
        if form.is_valid():
            query = form.cleaned_data["query"]
            context["query"] = query

            for model in models:
                new_query = query
                model_name = model.__name__.lower()
                filter = filters.get(model_name, {})

                resultset = model.indexer.search(query=query).prefetch()

                result_page = paginate(
                    resultset,
                    page,
                    settings.TURBION_BLOG_POSTS_PER_PAGE
                )

                context["%s_page" % model_name] = result_page
    else:
        form = SearchForm()

    context[form_name] = form

    return context
コード例 #2
0
ファイル: views.py プロジェクト: pombredanne/turbion
def index(request):
    profile = get_profile(request)
    return {
        'profile': profile,
        'comments_page': paginate(
            watchlist.get_subcription_comments(profile),
            request.page,
            settings.TURBION_BLOG_POSTS_PER_PAGE
        ),
        'subscriptions': profile.subscriptions.filter(event__name='new_comment').\
                                        order_by('date').distinct()
    }
コード例 #3
0
ファイル: archive.py プロジェクト: pombredanne/turbion
def year(request, year_id):
    post_page = paginate(
        Post.published.filter(published_on__year=year_id),
        request.page,
        settings.TURBION_BLOG_POSTS_PER_PAGE
    )

    return {
        "post_page": post_page,
        "on": "year",
        "year": year_id
    }
コード例 #4
0
ファイル: archive.py プロジェクト: pombredanne/turbion
def month(request, year_id, month_id):
    post_page = paginate(
        Post.published.filter(
            published_on__year=int(year_id),
            published_on__month=int(month_id)
        ),
        request.page,
        settings.TURBION_BLOG_POSTS_PER_PAGE
    )

    return {
        "post_page" : post_page,
        "on": "month",
        "year": year_id,
        'month': month_id
    }
コード例 #5
0
ファイル: post.py プロジェクト: pombredanne/turbion
def tag(request, tag_slug):
    _tag = get_object_or_404(Tag.active, slug=tag_slug)
    posts = _tag.posts.all()

    if not get_profile(request).is_trusted():
        posts = posts.filter(showing=Post.show_settings.everybody)

    post_page = paginate(
        posts,
        request.page,
        settings.TURBION_BLOG_POSTS_PER_PAGE
    )

    return {
        "tag": _tag,
        "post_page": post_page
    }
コード例 #6
0
ファイル: post.py プロジェクト: pombredanne/turbion
def blog(request):
    posts = Post.published.all()

    if not get_profile(request).is_trusted():
        posts = posts.filter(showing=Post.show_settings.everybody)

    post_page = paginate(
        posts,
        request.page,
        settings.TURBION_BLOG_POSTS_PER_PAGE
    )

    context = {
        "post_page": post_page
    }

    return context
コード例 #7
0
ファイル: archive.py プロジェクト: pombredanne/turbion
def day(request, year_id, month_id, day_id):
    post_page = paginate(
        Post.published.filter(
            published_on__year=year_id,
            published_on__month=month_id,
            published_on__day=day_id
        ),
        request.page,
        settings.TURBION_BLOG_POSTS_PER_PAGE
    )

    return {
        "post_page": post_page,
        "on": "day",
        "year": year_id,
        'month': month_id,
        'day': day_id
    }