예제 #1
0
def add_node(request):
    ctx = {}
    provider = request.POST.get('new_provider')
    parent_id = request.POST.get('parent_id')
    parent_provider = request.POST.get('parent_provider')
    relation = request.POST.get('relation')
    relation_back = request.POST.get('relation_back')
    if request.method == 'POST' and relation != '':
        if provider == 'text':
            node = Node(user=request.user, text=request.POST.get('text'))
            node.save()
            make_relation(request.user, parent_id, parent_provider, node.id,
                          provider, relation, relation_back)
        elif provider == 'url':
            url_text = request.POST.get('url')
            import hashlib
            m = hashlib.md5()
            m.update(url_text.encode('utf-8'))
            url_hash = m.hexdigest()
            try:
                title, image = get_url_info(url_text, url_hash)
                url = Url(user=request.user,
                          url=url_text,
                          name=title,
                          image=image)
                url.url_hash = url_hash
                url.save()
            except:
                url = Url.objects.get(url_hash=url_hash)
            make_relation(request.user, parent_id, parent_provider, url_hash,
                          provider, relation, relation_back)
        elif provider == 'file':
            # todo - add files
            new_path = os.path.join(parent_id, request.POST.get('name'))
            if os.path.isdir(parent_id) and os.path.isdir(new_path):
                os.mkdir(new_path)
            make_relation(request.user, parent_id, parent_provider, new_path,
                          provider, relation, relation_back)
    return HttpResponseRedirect(request.META['HTTP_REFERER'])