Esempio n. 1
0
def create_problems():
    request_params = request.get_json()
    content = request_params.get('content')
    headers = content.pop(0)
    number = len(content)

    if content is None:
        return jsonify(
            userMessage="입력된 정보가 없습니다."
        ), 400

    problem_list = []

    # try:
    for i in range(number):
        group_id = db.session.query(Group).filter(Group.name == content[i]['data'][0]).first().id
        homework_name = content[i]['data'][1]
        date = content[i]['data'][2].split('-')
        date_object = datetime.date(int(date[0]), int(date[1]), int(date[2]))
        problem_name = content[i]['data'][3]

        # 숙제가 없는 경우 만들어주기 - name, date, group_id
        q = db.session.query(Homework).filter(Homework.name == homework_name).first()
        if q is not None:
            homework_id = q.id
        else:
            homework = Homework(name=homework_name, date=date_object, group_id=group_id)
            db.session.add(homework)
            db.session.commit()
            homework_id = homework.id
            print homework_id
            # user-homework사이의 관계 추가
            user_group_relations = db.session.query(UserGroupRelation).filter(UserGroupRelation.group_id == group_id)
            print user_group_relations
            print "aa"
            for user_group_relation in user_group_relations:
                print "bb"
                if db.session.query(UserHomeworkRelation).filter(
                                UserHomeworkRelation.user_id == user_group_relation.user_id,
                                UserHomeworkRelation.homework_id == homework_id).first() is None:
                    user_homework_relation = UserHomeworkRelation(user_id=user_group_relation.user_id,
                                                                  homework_id=homework.id)
                    db.session.add(user_homework_relation)
                    print "cc"

        # 이미 동일한 문제가 있을 경우 아무짓도 안하도록
        problem = db.session.query(Problem).filter(Problem.homework_id == homework_id,
                                                   Problem.name == problem_name).first()
        # 문제 만들기 - name, homework_id
        if problem is None:
            problem = Problem(name=problem_name, homework_id=homework_id)
            problem_list.append(problem)

    db.session.add_all(problem_list)
    db.session.commit()

    return jsonify(
        data=[problem.serialize() for problem in problem_list]
    ), 201
Esempio n. 2
0
def get_problem_by_id(homework_id, problem_id):
    # try:
    q = Problem.get_query(filter_condition=(Problem.id == problem_id))
    return jsonify(
        data=SerializableModelMixin.serialize_row(q)
    ), 200