Example #1
0
def get_topic(request, topic_name):
    selected_tags = topic_name.strip("/")
    if selected_tags:
        selected_tags = selected_tags.split("/")
    else:
        selected_tags = []

    if request.POST:
        if request.POST.get("link_tag"):
            return save_tag(request, topic_name)
        if request.POST.get("delete_tag"):
            return delete_tag(request, selected_tags)
        else:
            return save_link(request, topic_name)

    template = loader.get_template('topics/show_topic.html')
    links = Link.get_all_links(get_current_site(request), selected_tags)
    links = paginate_links(links, request.GET.get('page'))

    top_tags = list(Tag.get_top_tag_list(get_current_site(request), selected_tags))
    if len(links) < 6:
        top_tags = top_tags[:-1]
    context = RequestContext(request, {
        'links': links,
        'top_tags_first': top_tags[:1],
        'top_tags_rest': top_tags[1:],
        'selected_tags': selected_tags
    })
    return HttpResponse(template.render(context))
Example #2
0
def save_tag(request, topic_name):
    tag_list_raw = request.POST.get("tag_text")
    link_title = request.POST.get("link_title")
    link_delete = request.POST.get("link_delete") == "delete"
    link_id = int(request.POST.get("link_tag"))
    link_type = request.POST.get("type")
    link_difficulty = request.POST.get("difficulty")
    link_quality = request.POST.get("quality")

    tag_list = tag_list_raw.lstrip("#").replace("#", ",").split(",")
    Link.save_ratings(link_id, link_type, link_difficulty, link_quality)
    if link_delete:
        Link.delete_link(link_id)
    else:
        if link_title:
            Link.rename_link(link_id, link_title)
        Tag.save_tags(link_id, tag_list, request.user)
    return redirect("topics:get_topic", topic_name)
Example #3
0
def delete_tag(_, selected_tags):
    Tag.delete_tag(selected_tags[-1])
    return redirect("topics:get_topic", selected_tags[:-1])