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')
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)
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)