Example #1
0
    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')
Example #2
0
    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)
Example #3
0
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
Example #4
0
 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))
Example #5
0
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)
Example #6
0
    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')
Example #7
0
    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)
Example #8
0
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
Example #9
0
 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))