예제 #1
0
파일: view.py 프로젝트: sarike/timefly
def ajax_login():
    res = ajax_response()
    email = request.form.get("email")
    password = request.form.get("password")
    remember = True if request.form.get("remember") else False
    if not email or not password:
        res.update({
            'response': 'fail',
            'type': 'error',
            'info': '邮箱不能为空' if not email else '密码不能为空'
        })
        return jsonify(res)

    user, validate_user_errors = User.validate_user(email, password)
    if user:
        login_user(user, remember)

        user_dict = user.to_dict()
        user_dict.update(self_home=False)

        res.update(data={'user': user_dict})
    else:
        res.update({
            'response':
            'fail',
            'type':
            'error',
            'info':
            validate_user_errors['user_error']
            or validate_user_errors['password_error']
        })
    return jsonify(res)
예제 #2
0
파일: views.py 프로젝트: depsi/timefly
def down_vote():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    if not current_user.is_authenticated():
        res.update({
            'info': '还木有登录呢,太没诚意了……',
            'type': 'error'
        })
        return jsonify(res)
    if request.cookies.get('voted_todo_' + str(todo_id)):
        res.update({
            'info': '你已经表示过了,谢谢了哈……',
            'type': 'info'
        })
        return jsonify(res)
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        if not td.todo_down_vote:
            td.todo_down_vote = 0
        td.todo_down_vote += 1
        res.update(data=td.todo_down_vote)
        res.update({
            'data': td.todo_down_vote,
            'info': '如果你真心觉得不靠谱,希望你能给予正确的指点或者意见,谢谢!'
        })
        db.commit()
        response = jsonify(res)
        response.set_cookie('voted_todo_' + str(todo_id), 'voted')
        return response
예제 #3
0
파일: views.py 프로젝트: sarike/timefly
def get_todo():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        res.update(data=td.to_dict())
        return jsonify(res)
예제 #4
0
파일: views.py 프로젝트: depsi/timefly
def get_todo():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        res.update(data=td.to_dict())
        return jsonify(res)
예제 #5
0
파일: view.py 프로젝트: depsi/timefly
def ajax_login():
    res = ajax_response()
    email = request.form.get("email")
    password = request.form.get("password")
    remember = True if request.form.get("remember") else False
    if not email or not password:
        res.update({
            'response': 'fail',
            'type': 'error',
            'info': '邮箱不能为空' if not email else '密码不能为空'
        })
        return jsonify(res)

    user, validate_user_errors = User.validate_user(email, password)
    if user:
        login_user(user, remember)

        user_dict = user.to_dict()
        user_dict.update(self_home=False)

        res.update(data={
            'user': user_dict
        })
    else:
        res.update({
            'response': 'fail',
            'type': 'error',
            'info': validate_user_errors['user_error'] or validate_user_errors['password_error']
        })
    return jsonify(res)
예제 #6
0
파일: view.py 프로젝트: sarike/timefly
def update_profile():
    res = ajax_response()
    desc = request.form.get('desc')
    with session_cm() as session:
        user = session.query(User).get(current_user.user_id)
        user.description = desc
        res['info'] = '更新用户资料成功'
        session.commit()
    return jsonify(res)
예제 #7
0
파일: view.py 프로젝트: sarike/timefly
def my_friends():
    res = ajax_response()
    with session_cm() as session:
        user_list = session.query(User).all()
        user_dict_list = []
        for user in user_list:
            user_dict_list.append(user.to_dict())
        res.update(data={"items": user_dict_list})
    return jsonify(res)
예제 #8
0
파일: views.py 프로젝트: bruceywave/timefly
def me():
    res = ajax_response()

    user_dict = current_user.to_dict() if current_user.is_authenticated(
    ) else {}
    user_dict.update(self_home=False)

    res.update(data={'user': user_dict})
    return jsonify(res)
예제 #9
0
파일: views.py 프로젝트: sarike/timefly
def delete_todo():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_is_deleted = True
        res['info'] = '删除成功'
        db.commit()
    return jsonify(res)
예제 #10
0
파일: views.py 프로젝트: depsi/timefly
def delete_todo():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_is_deleted = True
        res['info'] = '删除成功'
        db.commit()
    return jsonify(res)
예제 #11
0
파일: view.py 프로젝트: depsi/timefly
def update_profile():
    res = ajax_response()
    desc = request.form.get('desc')
    with session_cm() as session:
        user = session.query(User).get(current_user.user_id)
        user.description = desc
        res['info'] = '更新用户资料成功'
        session.commit()
    return jsonify(res)
예제 #12
0
파일: views.py 프로젝트: sarike/timefly
def change_visible():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_visible = not td.todo_visible
        res['data'] = td.to_dict()
        res['info'] = '成功设置该计划对所有人可见' if td.todo_visible else '成功设置该计划为私密计划'
        db.commit()
    return jsonify(res)
예제 #13
0
파일: views.py 프로젝트: depsi/timefly
def change_visible():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_visible = not td.todo_visible
        res['data'] = td.to_dict()
        res['info'] = '成功设置该计划对所有人可见' if td.todo_visible else '成功设置该计划为私密计划'
        db.commit()
    return jsonify(res)
예제 #14
0
파일: views.py 프로젝트: depsi/timefly
def mark_complete():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_is_completed = not td.todo_is_completed
        res['data'] = td.to_dict()
        res['info'] = '成功标记该计划为已完成' if td.todo_is_completed else '成功标记该计划为未完成'
        db.commit()
    return jsonify(res)
예제 #15
0
파일: views.py 프로젝트: sarike/timefly
def mark_complete():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        td.todo_is_completed = not td.todo_is_completed
        res['data'] = td.to_dict()
        res['info'] = '成功标记该计划为已完成' if td.todo_is_completed else '成功标记该计划为未完成'
        db.commit()
    return jsonify(res)
예제 #16
0
파일: views.py 프로젝트: depsi/timefly
def me():
    res = ajax_response()

    user_dict = current_user.to_dict() if current_user.is_authenticated() else {}
    user_dict.update(self_home=False)

    res.update(data={
        'user': user_dict
    })
    return jsonify(res)
예제 #17
0
파일: views.py 프로젝트: bruceywave/timefly
def user_home(username):
    res = ajax_response()

    with session_cm() as db:
        owner = db.query(User).filter_by(username=username).first()
        if owner:
            res.update(data={'owner': owner.to_dict()})
            session["owner_id"] = owner.user_id
            return jsonify(res)
        else:
            abort(404)
예제 #18
0
파일: views.py 프로젝트: sarike/timefly
def latest_todos():
    res = ajax_response()
    with session_cm() as db:
        latest_todo_list = db.query(Todo).\
            filter(Todo.todo_is_deleted == False,
                   Todo.todo_visible == True).order_by(Todo.created_date.asc()).all()
        items = []
        for td in latest_todo_list:
            items.append(td.to_dict())
        res.update(data={'items': items})
    return jsonify(res)
예제 #19
0
파일: view.py 프로젝트: depsi/timefly
def my_friends():
    res = ajax_response()
    with session_cm() as session:
        user_list = session.query(User).all()
        user_dict_list = []
        for user in user_list:
            user_dict_list.append(user.to_dict())
        res.update(data={
            "items": user_dict_list
        })
    return jsonify(res)
예제 #20
0
파일: views.py 프로젝트: depsi/timefly
def latest_todos():
    res = ajax_response()
    with session_cm() as db:
        latest_todo_list = db.query(Todo).\
            filter(Todo.todo_is_deleted == False,
                   Todo.todo_visible == True).order_by(Todo.created_date.asc()).all()
        items = []
        for td in latest_todo_list:
            items.append(td.to_dict())
        res.update(data={
            'items': items
        })
    return jsonify(res)
예제 #21
0
파일: views.py 프로젝트: depsi/timefly
def user_home(username):
    res = ajax_response()

    with session_cm() as db:
        owner = db.query(User).filter_by(username=username).first()
        if owner:
            res.update(data={
                'owner': owner.to_dict()
            })
            session["owner_id"] = owner.user_id
            return jsonify(res)
        else:
            abort(404)
예제 #22
0
파일: views.py 프로젝트: depsi/timefly
def add_new_complete():
    res = ajax_response()
    ac_name = request.form.get('ac_name')
    ac_description = request.form.get('ac_description')
    todo_id = request.form.get('todo_id')
    with session_cm() as db:
        ac = Achievement(ac_name=ac_name,
                         ac_description=ac_description,
                         todo_id=todo_id,
                         user_id=current_user.user_id)
        db.add(ac)
        db.commit()
        res.update(data=ac.to_dict())
    return jsonify(res)
예제 #23
0
파일: views.py 프로젝트: sarike/timefly
def add_new_complete():
    res = ajax_response()
    ac_name = request.form.get('ac_name')
    ac_description = request.form.get('ac_description')
    todo_id = request.form.get('todo_id')
    with session_cm() as db:
        ac = Achievement(ac_name=ac_name,
                         ac_description=ac_description,
                         todo_id=todo_id,
                         user_id=current_user.user_id)
        db.add(ac)
        db.commit()
        res.update(data=ac.to_dict())
    return jsonify(res)
예제 #24
0
파일: view.py 프로젝트: sarike/timefly
def reset_password():
    res = ajax_response()
    old_password = request.form.get('old_password')
    new_password = request.form.get('new_password')
    new_password_confirm = request.form.get('new_password_confirm')
    if new_password and new_password_confirm and new_password_confirm != new_password:
        res.update({'info': '两次输入的新密码不一致', 'type': 'error'})
        return jsonify(res)
    if not current_user.check_password(old_password):
        res.update({'info': '原始密码错误', 'type': 'error'})
        return jsonify(res)
    with session_cm() as session:
        session.query(User).get(
            current_user.user_id).set_password(new_password)
        session.commit()
    res.update(info='密码修改成功')
    return jsonify(res)
예제 #25
0
파일: views.py 프로젝트: sarike/timefly
def up_vote():
    res = ajax_response()
    todo_id = request.args.get('todo_id')
    if not current_user.is_authenticated():
        res.update({'info': '还木有登录呢,太没诚意了……', 'type': 'error'})
        return jsonify(res)
    if request.cookies.get('voted_todo_' + str(todo_id)):
        res.update({'info': '你已经表示过了,谢谢了哈……', 'type': 'info'})
        return jsonify(res)
    with session_cm() as db:
        td = db.query(Todo).get(todo_id)
        if not td.todo_up_vote:
            td.todo_up_vote = 0
        td.todo_up_vote += 1
        res.update({'data': td.todo_up_vote, 'info': '鼓励别人,也是一种美德,谢谢!'})
        db.commit()
        response = jsonify(res)
        response.set_cookie('voted_todo_' + str(todo_id), 'voted')
        return response
예제 #26
0
파일: views.py 프로젝트: depsi/timefly
def add_todo():
    todo_name = request.form.get("todo_name")
    todo_description = request.form.get("todo_description")
    todo_start = request.form.get("todo_start")
    todo_end = request.form.get("todo_end")
    todo_visible = request.form.get("todo_visible") is not None
    todo_erasable = request.form.get("todo_erasable") is None
    res = ajax_response()
    with session_cm() as db:
        td = Todo(user_id=current_user.user_id,
                  todo_name=todo_name,
                  todo_description=todo_description,
                  todo_start=todo_start,
                  todo_end=todo_end,
                  todo_visible=todo_visible,
                  todo_erasable=todo_erasable)
        db.add(td)
        db.commit()
        res.update(data=td.to_dict())
    return jsonify(res)
예제 #27
0
파일: views.py 프로젝트: sarike/timefly
def add_todo():
    todo_name = request.form.get("todo_name")
    todo_description = request.form.get("todo_description")
    todo_start = request.form.get("todo_start")
    todo_end = request.form.get("todo_end")
    todo_visible = request.form.get("todo_visible") is not None
    todo_erasable = request.form.get("todo_erasable") is None
    res = ajax_response()
    with session_cm() as db:
        td = Todo(user_id=current_user.user_id,
                  todo_name=todo_name,
                  todo_description=todo_description,
                  todo_start=todo_start,
                  todo_end=todo_end,
                  todo_visible=todo_visible,
                  todo_erasable=todo_erasable)
        db.add(td)
        db.commit()
        res.update(data=td.to_dict())
    return jsonify(res)
예제 #28
0
파일: views.py 프로젝트: depsi/timefly
def my_todos():
    res = ajax_response()
    flag = request.args.get('flag', 'doing')
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        if todo_id:
            my_todo_list = db.query(Todo).filter(Todo.todo_id == todo_id).all()
        else:
            my_todo_list_query = db.query(Todo). \
                filter(Todo.todo_is_deleted == False,
                       Todo.user_id == session["owner_id"])

            if not current_user.is_authenticated() or \
                    (current_user.is_authenticated() and current_user.user_id != session["owner_id"]):
                my_todo_list_query = my_todo_list_query.filter(Todo.todo_visible == True)

            if flag and flag == 'doing':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == False,
                           Todo.todo_end > datetime.date.today())

            if flag and flag == 'completed':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == True)

            if flag and flag == 'failed':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == False,
                           Todo.todo_end < datetime.date.today())
            my_todo_list = my_todo_list_query.options(joinedload('achievement_list')).all()

        items = []
        for td in my_todo_list:
            items.append(td.to_dict())
        res.update(data={
            'items': items
        })

    return jsonify(res)
예제 #29
0
파일: view.py 프로젝트: depsi/timefly
def reset_password():
    res = ajax_response()
    old_password = request.form.get('old_password')
    new_password = request.form.get('new_password')
    new_password_confirm = request.form.get('new_password_confirm')
    if new_password and new_password_confirm and new_password_confirm != new_password:
        res.update({
            'info': '两次输入的新密码不一致',
            'type': 'error'
        })
        return jsonify(res)
    if not current_user.check_password(old_password):
        res.update({
            'info': '原始密码错误',
            'type': 'error'
        })
        return jsonify(res)
    with session_cm() as session:
        session.query(User).get(current_user.user_id).set_password(new_password)
        session.commit()
    res.update(info='密码修改成功')
    return jsonify(res)
예제 #30
0
파일: views.py 프로젝트: sarike/timefly
def my_todos():
    res = ajax_response()
    flag = request.args.get('flag', 'doing')
    todo_id = request.args.get('todo_id')
    with session_cm() as db:
        if todo_id:
            my_todo_list = db.query(Todo).filter(Todo.todo_id == todo_id).all()
        else:
            my_todo_list_query = db.query(Todo). \
                filter(Todo.todo_is_deleted == False,
                       Todo.user_id == session["owner_id"])

            if not current_user.is_authenticated() or \
                    (current_user.is_authenticated() and current_user.user_id != session["owner_id"]):
                my_todo_list_query = my_todo_list_query.filter(
                    Todo.todo_visible == True)

            if flag and flag == 'doing':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == False,
                           Todo.todo_end > datetime.date.today())

            if flag and flag == 'completed':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == True)

            if flag and flag == 'failed':
                my_todo_list_query = my_todo_list_query.\
                    filter(Todo.todo_is_completed == False,
                           Todo.todo_end < datetime.date.today())
            my_todo_list = my_todo_list_query.options(
                joinedload('achievement_list')).all()

        items = []
        for td in my_todo_list:
            items.append(td.to_dict())
        res.update(data={'items': items})

    return jsonify(res)