Ejemplo n.º 1
0
def logout(request):
    try:
        request.session.pop('uid')
        return HttpResponse(Response(m='/login').toJson(),
                            content_type='application/json')
    except:
        return HttpResponse(Response(c='7', m='').toJson(),
                            content_type='application/json')
Ejemplo n.º 2
0
def mdParser(request):
    try:
        text = request.POST.get('text', '')
        text = text + '<script type="text/javascript" src="/static/common/js/MathJax.js?config=default"></script>'
        return HttpResponse(Response(m=markdown.markdown(text)).toJson(),
                            content_type='application/json')
    except Exception, e:
        return HttpResponse(Response(c='3', m='unknown error occured(%s)' %
                                     e).toJson(),
                            content_type='application/json')
Ejemplo n.º 3
0
def getPointList(request):
    targetId = request.GET.get('id', 1)
    try:
        user = User.objects.get(id=targetId)
    except:
        return HttpResponse(Response(c=-1, m='user invalided').toJson(),
                            content_type='application/json')
    points = user.knowledge_point_set.order_by('created_time')
    ret = []
    for point in points:
        note = point.note
        item = Item.objects.get(id=note.item_ptr_id)
        ret.append([point.title, item.title, item.id])
    return HttpResponse(Response(m=ret).toJson(),
                        content_type='application/json')
Ejemplo n.º 4
0
def getNote(request):
    targetId = request.GET.get('id')
    try:
        item = Item.objects.get(id=targetId)
        note = getFolderOrNoteByItem(item)
        param = {'id': item.id, 'name': note.name, 'content': note.content}
        param['links'] = note.links if note.links != '' else []
        param['points'] = serializers.serialize(
            "json", note.knowledge_point_set.order_by('created_time'))
        return HttpResponse(Response(m=param).toJson(),
                            content_type='application/json')
    except Exception, e:
        print e
        return HttpResponse(Response(c='2',
                                     m='folder/note is not existed').toJson(),
                            content_type='application/json')
Ejemplo n.º 5
0
def renameFolderOrNote(request):
    targetId = request.GET.get('id', None)
    tp = request.GET.get('type', 'folder')
    title = request.GET.get('title', '')
    try:
        target = Item.objects.get(id=targetId)
    except:
        return HttpResponse(Response(m='folder/note is not existed',
                                     c='2').toJson(),
                            content_type='application/json')
    if len(target.parent.item_set.filter(title=title)) > 1:
        return HttpResponse(Response(m='name conflict', c='1').toJson(),
                            content_type='application/json')
    target.title = title
    target.save()
    return HttpResponse(Response().toJson(), content_type='application/json')
Ejemplo n.º 6
0
def login(request):
    if request.method == 'GET':
        return render_to_response('pc/login.html')
    account = request.POST.get('account')
    passwd = request.POST.get('password')
    try:
        user = User.objects.get(account=account)
        request.session['uid'] = user.id
        if user.passwd == passwd:
            return HttpResponse(Response(m='/').toJson(),
                                content_type='application/json')
        else:
            return HttpResponse(Response(c=4, m='password is wrong').toJson(),
                                content_type='application/json')
    except:
        return HttpResponse(Response(c=5, m='account is not existed').toJson(),
                            content_type='application/json')
Ejemplo n.º 7
0
def uploadImage(request):
    image = request.FILES['image']
    image._name = '%s_%s' % (str(int(time.time())), image._name)
    image = Image(url=image)
    image.save()
    url = appendImageUrl(image.__dict__.get('url'))
    return HttpResponse(Response(m=url).toJson(),
                        content_type='application/json')
Ejemplo n.º 8
0
def register(request):
    account = request.POST.get('account')
    passwd = request.POST.get('password')
    try:
        User.objects.get(account=account)
        return HttpResponse(Response(c=6,
                                     m='account is already existed').toJson(),
                            content_type='application/json')
    except:
        root = Folder.objects.create(title='%s\'s root' % account)
        user = User.objects.create(account=account,
                                   passwd=passwd,
                                   level=0,
                                   root=root)
        root.save()
        user.save()
        request.session['uid'] = user.id
    return HttpResponse(Response(m='/').toJson(),
                        content_type='application/json')
Ejemplo n.º 9
0
def addFolderOrNote(request):
    uid = request.GET.get('uid', None)
    pid = request.GET.get('pid', None)
    title = request.GET.get('title', '')
    tp = request.GET.get('type', 'folder')
    try:
        parent = Item.objects.get(id=pid)
    except:
        user = User.objects.get(id=uid)
        parent = user.root
    if len(parent.item_set.filter(title=title)) <= 0:
        newItem = Folder.objects.create(
            title=title,
            parent=parent) if tp == 'folder' else Note.objects.create(
                title=title, parent=parent)
        return HttpResponse(Response(m=newItem.item_ptr_id).toJson(),
                            content_type='application/json')
    return HttpResponse(Response(m='name conflict', c='1').toJson(),
                        content_type='application/json')
Ejemplo n.º 10
0
def saveNote(request):
    uid = request.POST.get('uid', None)
    targetId = request.POST.get('id', None)
    name = request.POST.get('name', '')
    content = request.POST.get('content', '')
    links = json.loads(request.POST.get('links', '[]'))
    points = json.loads(request.POST.get('points'), '[]')
    item = None
    note = None
    user = None
    try:
        user = User.objects.get(id=uid)
    except:
        return HttpResponse(Response(c='-1', m='user invalided').toJson(),
                            content_type='application/json')
    try:
        item = Item.objects.get(id=targetId)
        note = getFolderOrNoteByItem(item)
    except Exception, e:
        note = Note.objects.create()
        item = Item.objects.get(id=note.item_ptr_id)
Ejemplo n.º 11
0
def deleteFolderOrNote(request):
    targetId = request.GET.get('id', None)
    tp = request.GET.get('type', 'folder')
    deleteItem(targetId, tp)
    return HttpResponse(Response().toJson(), content_type='application/json')
Ejemplo n.º 12
0
def getFolderStructure(request):
    user = User.objects.get(id=request.GET.get('id', 1))
    root = user.root
    return HttpResponse(Response(m=getChildren(root)).toJson(),
                        content_type='application/json')
Ejemplo n.º 13
0
            continue
        try:
            point = Knowledge_Point.objects.get(id=p['id'])
        except:
            point = Knowledge_Point.objects.create()
        point.title = p['title']
        point.content = p['content']
        point.note = note
        point.user = user
        point.save()
        cPoints.append(point.id)
    # 检查可能被删除的知识点,并接触关系
    for point in note.knowledge_point_set.all():
        if point.id not in cPoints:
            point.delete()
    return HttpResponse(Response().toJson(), content_type='application/json')


# 迭代删除
def deleteItem(targetId, tp):
    try:
        target = Item.objects.get(id=targetId)
        for child in target.item_set.all():
            childType = getFolderOrNoteByItem(child).item_type
            deleteItem(child.id, childType)
        itemChild = getFolderOrNoteByItem(target)
        # 如果要删除的对象是笔记的话要把笔记对应的知识点都删除
        if itemChild.item_type == 'note':
            for point in itemChild.knowledge_point_set.all():
                point.delete()
        itemChild.delete()