예제 #1
0
파일: views.py 프로젝트: bububa/Snipperize
def tag_snippets(request, tag_name, tag_id):
    tag = Tag.get_by_id(int(tag_id))
    if not tag:
        raise Http404
    rev = TagCoef.all().filter("tag", tag.key()).order("distance").fetch(settings.RELEVENT_TAG_LIMIT)
    rev_tags = []
    if rev:
        rev_tags = [rt.related_tag for rt in rev]
    else:
        rev_tags = Tag.all().order("-number").order("-inserted_at").fetch(settings.RELEVENT_TAG_LIMIT)

    snippets = Tag.objects.snippets(tag)
    return object_list(
        request,
        queryset=snippets,
        allow_empty=True,
        template_name="snippet/snippet_list.html",
        extra_context={"CURRENT_TAG": tag, "CURRENT_PAGE": "snippet_list", "RELEVENT_TAGS": rev_tags},
        paginate_by=settings.SNIPPET_LIST_PAGE_SIZE,
    )
예제 #2
0
파일: views.py 프로젝트: bububa/Snipperize
def language_tag_snippets(request, language, tag_name, tag_id):
    tag = Tag.get_by_id(int(tag_id))
    if not tag:
        raise Http404
    rev = TagCoef.all().filter("tag", tag.key()).order("distance").fetch(settings.RELEVENT_TAG_LIMIT)
    rev_tags = []
    if rev:
        rev_tags = [rt.related_tag for rt in rev if language in rt.related_tag.languages]
    else:
        rev_tags = (
            Tag.all()
            .filter("languages", language)
            .order("-number")
            .order("-inserted_at")
            .fetch(settings.RELEVENT_TAG_LIMIT)
        )

    snippets = Tag.objects.snippets(tag)
    snippets = snippets.filter("language", language).order("-published_at")
    for l, v in settings.SUPPORT_LANGUAGES.items():
        if l == language:
            current_language = {"name": v, "key": l}
            break

    return object_list(
        request,
        queryset=snippets,
        allow_empty=True,
        template_name="snippet/snippet_list.html",
        extra_context={
            "CURRENT_LANGUAGE": current_language,
            "CURRENT_TAG": tag,
            "CURRENT_PAGE": "snippet_list",
            "RELEVENT_TAGS": rev_tags,
        },
        paginate_by=settings.SNIPPET_LIST_PAGE_SIZE,
    )