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, )
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, )