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'])