def add_grade(): if current_user.__tablename__ == 'teachers': form = GradeForm() if form.validate_on_submit(): stu = Student.query.get(form.stu_id.data) if stu is None: flash(u'没有学号为 %s 的学生,请先创建该学生的信息' % form.stu_id.data) else: stu_id = int(form.stu_id.data) course_id = form.course_id.data grade = form.grade.data new_grade = db.session.query(Grade).filter_by( course_id=course_id, stu_id=stu_id).first() if new_grade is None: new_grade = Grade(stu_id, course_id, grade) else: new_grade.grade = grade try: db.session.add(new_grade) db.session.commit() except SQLAlchemyError: flash(u'成绩添加失败,请确认输入是否正确') db.session.rollback() else: flash(u'成绩添加成功', 'success') return redirect(url_for('add_grade')) # to clear form fields return render_template('add_grade.html', form=form) else: return render_template('404.html'), 404
def add_grades(cid, period): course = db.GqlQuery("SELECT * FROM Course WHERE cid=:1", cid).fetch(1)[0] grades = simplejson.loads(course.grades) for grade in grades: new_grade = Grade() new_grade.cid = cid new_grade.cname = course.name new_grade.grade = grade["grade"] new_grade.sid = grade["sid"] new_grade.period = grade["period"] new_grade.put()