def get(self, cid, *args, **kwargs): gp, uid = is_loged(self) if gp == 's': if not get_course(cid): # 如果课序号不存在 self.render('error.html', title=None, content="课程不存在", icon='ion-sad', active='dsh', id=uid) else: try: set_course(uid, cid) self.render('error.html', title="录入成功", content="课程号录入成功", icon='ion-checkmark-circled', active='dsh', id=uid) except Exception as e: print e else: self.redirect('/404')
def post(self, *args, **kwargs): """教师新增课程""" gp, uid = is_loged(self) if gp == 't': cid = self.get_argument('cid') year = self.get_argument('year') start_week = int(self.get_argument('sw')) end_week = int(self.get_argument('ew')) if end_week > 20 or end_week < start_week or not (0 < start_week < 18): self.render('error.html', title='输入错误', content='周数输入有误<br><br>请重新输入', icon='ion-alert-circled', active='dsh', id=uid) elif get_course(cid) is not None: self.render('error.html', title='输入错误', content='课序号已经存在<br><br>请删除相应课程后在进行创建新课程的操作', icon='ion-alert-circled', active='dsh', id=uid) else: try: new_course(uid, cid, year, str(start_week), str(end_week)) self.render('error.html', title='操作成功', content='课程创建成功', icon='ion-checkmark-circled', active='dsh', id=uid) except Exception as e: print e self.render('error.html', title=None, content=None, icon='ion-bug', active='dsh', id=uid)
def delete_course_student(course_id, student_id): from models import course, student cou = course.get_course(course_id) stu = student.get_student(student_id) if cou is None or stu is None: print( f"[DELETE COURSE STUDENT FAIL] COURSE:{course_id}, STUDENT:{student_id}" ) return False course_student_model = get_course_student(course_id, student_id) if course_student_model: try: db.session.delete(course_student_model) db.session.commit() print( f"[DELETE COURSE STUDENT SUCC] COURSE:{course_id}, STUDENT:{student_id}" ) return True except Exception as e: print( f"[DELETE COURSE STUDENT FAIL] COURSE:{course_id}, STUDENT:{student_id}" ) db.session.rollback() return False return False
def get(self): game_id = self.request.get('game_id') hole = self.request.get('hole') game = get_game(int(game_id)) course = get_course(game.course_id) players = game.get_players() players_in_game = None if players: players_in_game = ', '.join(players) context = { 'game_id': game_id, 'hole': hole, 'players': players, 'players_in_game': players_in_game, 'jplayers': json.dumps(players), 'course': course.name, 'par': course.get_par_for_hole(hole) } template = JINJA_ENVIRONMENT.get_template('templates/enter_hole_scores.html') self.response.write(template.render(context))
def view_selected_course(): from models import course_student, course student_id = current_user.student[0].get_id() course_ids = course_student.get_course_ids_by_student(student_id) courses = [] for course_id in course_ids: cou = course.get_course(course_id) if cou is None: continue courses.append(cou) return render_template('view_selected_course.html', courses=courses)
def create_course_student(course_id, student_id): from models import course, student cou = course.get_course(course_id) stu = student.get_student(student_id) if cou is None or stu is None: print( f"[CREATE COURSE STUDENT FAIL] COURSE:{course_id}, STUDENT:{student_id}" ) return False try: new_course_student = CourseStudent(course_id=course_id, student_id=student_id) db.session.add(new_course_student) db.session.commit() print( f"[CREATE COURSE STUDENT SUCC] COURSE_NAME:{cou.get_course_name()}, STUDENT_NAME:{stu.get_student_name()}" ) return True except Exception as e: print(f"[CREATE COURSE STUDENT FAIL] COMMIT FAIL") db.session.rollback() return False
def get(self): game_id = int(self.request.get('game_id')) load_game = self.request.get('load_game') hole = int(self.request.get('hole')) #TODO: Load scores next_hole = hole + 1 jplayers = self.request.get('jplayers') logging.info("jplayers id is |%s|", jplayers) players = json.loads(jplayers) if jplayers != 'None' else [] game = get_game(int(game_id)) course = get_course(game.course_id) par = course.get_par_for_hole(str(hole)) left_team = {'players': [], 'scores': [], 'flip': False} right_team = {'players': [], 'scores': [], 'flip': False} for player in players: score = int(self.request.get(player)) flip = False if score < par: flip = True if self.request.get("%s-left" % player): left_team['players'].append(player) left_team['scores'].append(score) if flip: left_team['flip'] = flip else: right_team['players'].append(player) right_team['scores'].append(score) if flip: right_team['flip'] = flip left_score = get_score_for_team(left_team, right_team.get('flip')) right_score = get_score_for_team(right_team, left_team.get('flip')) scores = [] for player in left_team.get('players'): score = record_and_retrieve_score_for_hole(player, game_id, hole, left_score) scores.append(score) for player in right_team.get('players'): score = record_and_retrieve_score_for_hole(player, game_id, hole, right_score) scores.append(score) context = { 'game_id': game_id, 'players': players, } if course.get_length() < next_hole: #game is complete for score in scores: score.calculate_final_score() owings = calculate_owings(scores, game) payments = calculate_payments_from_owings(owings, game) context.update({'payments': payments}) template = JINJA_ENVIRONMENT.get_template('templates/payments.html') self.response.write(template.render(context)) else: players_in_game = None if players: players_in_game = ', '.join(players) course = get_course(game.course_id) context.update({ 'hole': next_hole, 'players_in_game': players_in_game, 'jplayers': json.dumps(players), 'course': course.name, 'par': course.get_par_for_hole(next_hole) }) template = JINJA_ENVIRONMENT.get_template('templates/enter_hole_scores.html') self.response.write(template.render(context))