コード例 #1
0
ファイル: team.py プロジェクト: hui1995/student_teacher_flask
def createTeam():
    if session.get("id") is None:
        return redirect("/user/login")
    name = session.get("name")
    if request.method == "GET":
        return render_template('student_templates/createTeam.html', name=name)
    else:
        name = request.form.get("name")
        userId = session.get("id")
        course = CourseAndStudent.query.filter(
            CourseAndStudent.studentId == userId).first()
        with db.auto_commit():
            team = Team()
            team.courseId = course.CourseId
            team.TeamName = name
            team.isFinish = 0
            db.session.add(team)
            team = Team.query.filter(
                Team.courseId == course.CourseId).order_by(
                    Team.TeamNumber.desc()).first()

            member = Member()
            member.studentId = userId
            member.teamId = team.TeamNumber
            member.votenum = 0

            db.session.add(member)

        return redirect('/student/display')
コード例 #2
0
def join():
    if session.get("id") is None:
        return redirect("/user/login")
    name = session.get("name")
    teamId = request.args.get("id")
    team = Team.query.filter_by(TeamNumber=teamId).first()
    #查询该成员是否满员,如果满员禁止加入

    if team.isFinish == 1:
        return render_template('student_templates/viewinvitation.html',
                               name=name,
                               message="该小组满员了")

    courseId = CourseAndStudent.query.filter_by(
        studentId=session.get("id")).first().CourseId
    totalNum = Course.query.filter_by(CourseId=courseId).first().numofmember
    with db.auto_commit():
        memberr = Member()
        memberr.teamId = teamId
        memberr.studentId = session.get("id")
        memberr.votenum = 0
        db.session.add(memberr)

    countMember = Member.query.filter_by(teamId=teamId).count()
    if totalNum == countMember:

        team.isFinish = 1
        db.session.commit()

    invitelst = Invite.query.filter_by(inviteId=session.get("id")).delete()

    #检查该小组是否满员,满员则设置为isFInish=1
    #如果成功加入小组,则清除邀请信息
    invitelst = Invite.query.filter(Invite.inviteId == session.get("id"))

    result = []
    for i in invitelst:
        dict1 = {}
        studentname = Student.query.filter(
            Student.id == i.inviteeId).first().name
        dict1['info'] = studentname
        dict1['teamId'] = i.teamId
        result.append(dict1)

    return render_template('student_templates/viewinvitation.html',
                           name=name,
                           result=result)
コード例 #3
0
def byStudent():
    if session.get("id") is None:
        return redirect("/user/login")
    name=session.get("name")
    courseId=request.args.get("courseId")

    studentList=CourseAndStudent.query.filter_by(CourseId=courseId).all()
    list=[]
    for i in studentList:

        student=Student.query.filter_by(id=i.studentId).first()
        if student is not None:
            list.append(student)


    #每组的人数
    totalNum=Course.query.filter_by(CourseId=courseId).first().numofmember


    #组的数量
    # teamNum=len(list)/totalNum+1
    # print(teamNum)
    #
    # if teamNum==1:
    #     list2=[]
    #     list2.append(list)
    #     pass
    # else:
    from random import shuffle

    shuffle(list)  # 重排序
    list2 = []
    for i in range(0, len(list), totalNum):
        list2.append(list[i:i + totalNum])

    result=[]

    for i in list2:
        dict1 = dict()

        nameTeam=random.randint(100,1000)
        dict1["name"]=str(nameTeam)
        dict1["value"]=i
        print(i)
        result.append(dict1)

        with db.auto_commit():
            team = Team()
            team.TeamName=str(nameTeam)
            team.courseId=courseId
            # 数据库的insert操作
            db.session.add(team)

        team=Team.query.filter(Team.courseId==courseId).filter(Team.TeamName==nameTeam).first()
        with db.auto_commit():
            for x in i:
                member=Member()
                member.teamId=team.TeamNumber
                member.studentId=x.id
                db.session.add(member)


    Course.query.filter(Course.CourseId == courseId).update({"teamType": 2})
    db.session.commit()
    return render_template("teacher_templates/displaygroup.html",name=name,courseId=courseId,result=result)