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))
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)
def delete_tag(_, selected_tags): Tag.delete_tag(selected_tags[-1]) return redirect("topics:get_topic", selected_tags[:-1])