def newgame(request): if request.method != 'POST': teams = Team.objects.all() context = {'teams':teams} return render (request , 'sbleague/newgame.html',context) else : teams = Team.objects.all() home_teamID = request.POST.get("hometeamID", "") away_teamID = request.POST.get("awayteamID", "") hometeam = Team.objects.get(pk=home_teamID) awayteam = Team.objects.get(pk=away_teamID) homeplayer = Member.objects.filter(team = home_teamID).order_by("number") awayplayer = Member.objects.filter(team = away_teamID).order_by("number") date = request.POST.get("date", "") location = request.POST.get("location", "") game_id = request.POST.get("game_id", "") ############################################################################# away_record = request.POST.get("away_rd", "") home_record = request.POST.get("home_rd", "") record = None record_err = "" # ===== record parser if( len(away_record) and len(home_record) ): awayteam_name = awayteam.name.encode('utf8')[0:6] hometeam_name = hometeam.name.encode('utf8')[0:6] away_table = text_to_table(away_record.encode('utf8')) home_table = text_to_table(home_record.encode('utf8')) record, record_err = parse_game_record(awayteam_name, None, away_table, hometeam_name, None, home_table) record.game_type = "台大慢壘聯盟" record.date = date record.location = location record.game_id = game_id record.away.raw_record = away_record.encode('utf8') record.home.raw_record = home_record.encode('utf8') else: if( len(away_record) == 0 ): record_err = "Away 沒有記錄" else: record_err = "Home 沒有記錄" ############################################################################# if( date == u'' ): err_message = "請輸入日期" context = {'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message} return render(request, 'sbleague/newgame.html', context) if( game_id == u'' ): err_message = "請輸入場次編號" context = {'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message} return render(request, 'sbleague/newgame.html', context) game_exist = True try: new = Game.objects.get(gameID=game_id) except Game.DoesNotExist: # --- add new game game_exist = False max_batter_nums = 25 max_pitcher_nums = 5 if( record != None and record_err == ""): # --- append batter_num to 25 and pitcher_num to 5 if( record.away.nBatters < max_batter_nums ): for i in range(max_batter_nums-record.away.nBatters): record.away.batters.append(rdBatter()) if( record.home.nBatters < max_batter_nums ): for i in range(max_batter_nums-record.home.nBatters): record.home.batters.append(rdBatter()) if( record.away.nPitchers < max_pitcher_nums ): for i in range(max_pitcher_nums-record.away.nPitchers): record.away.pitchers.append(rdPitcher()) if( record.home.nPitchers < max_pitcher_nums ): for i in range(max_pitcher_nums-record.home.nPitchers): record.home.pitchers.append(rdPitcher()) if( game_exist ): err_message = "重複的場次編號" context = {'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message} return render(request, 'sbleague/newgame.html', context) # === record error if( record_err != "" ): err_message = record_err context = {'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message} return render(request, 'sbleague/newgame.html', context) # === success add new game if 'send' in request.POST: # --- send data context = {'hometeam': hometeam, 'awayteam': awayteam, 'homeplayer': homeplayer ,'awayplayer': awayplayer, 'date': date, 'location': location , 'game_id': game_id, 'home_away': range(2), 'max_batter_nums': max_batter_nums, 'max_pitcher_nums': max_pitcher_nums, 'record': record} return render(request, 'sbleague/newgame_detail.html', context) elif 'download' in request.POST: filename = '%d.txt' %int(game_id) filepath = 'sbleague/static/txt/%s' %filename with open(filepath, 'w') as f: f.write(record.post_ptt) print "save %s" %filepath response = HttpResponse(FileWrapper( file(filepath) ), content_type=mimetypes.guess_type(filepath)[0] ) response['Content-Disposition'] = 'attachment; filename=%s' %filename response['Content-Length'] = os.path.getsize(filepath) return response else: # --- preview err_message = "preview" context = {'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message, 'record': record, 'preview': True} return render(request, 'sbleague/newgame.html', context)
def newgame(request): if request.method != 'POST': teams = Team.objects.all() context = {'teams': teams} return render(request, 'sbleague/newgame.html', context) else: teams = Team.objects.all() home_teamID = request.POST.get("hometeamID", "") away_teamID = request.POST.get("awayteamID", "") hometeam = Team.objects.get(pk=home_teamID) awayteam = Team.objects.get(pk=away_teamID) homeplayer = Member.objects.filter(team=home_teamID).order_by("number") awayplayer = Member.objects.filter(team=away_teamID).order_by("number") date = request.POST.get("date", "") location = request.POST.get("location", "") game_id = request.POST.get("game_id", "") ############################################################################# away_record = request.POST.get("away_rd", "") home_record = request.POST.get("home_rd", "") record = None record_err = "" # ===== record parser if (len(away_record) and len(home_record)): awayteam_name = awayteam.name.encode('utf8')[0:6] hometeam_name = hometeam.name.encode('utf8')[0:6] away_table = text_to_table(away_record.encode('utf8')) home_table = text_to_table(home_record.encode('utf8')) record, record_err = parse_game_record(awayteam_name, None, away_table, hometeam_name, None, home_table) record.game_type = "台大慢壘聯盟" record.date = date record.location = location record.game_id = game_id record.away.raw_record = away_record.encode('utf8') record.home.raw_record = home_record.encode('utf8') else: if (len(away_record) == 0): record_err = "Away 沒有記錄" else: record_err = "Home 沒有記錄" ############################################################################# if (date == u''): err_message = "請輸入日期" context = { 'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message } return render(request, 'sbleague/newgame.html', context) if (game_id == u''): err_message = "請輸入場次編號" context = { 'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message } return render(request, 'sbleague/newgame.html', context) game_exist = True try: new = Game.objects.get(gameID=game_id) except Game.DoesNotExist: # --- add new game game_exist = False max_batter_nums = 25 max_pitcher_nums = 5 if (record != None and record_err == ""): # --- append batter_num to 25 and pitcher_num to 5 if (record.away.nBatters < max_batter_nums): for i in range(max_batter_nums - record.away.nBatters): record.away.batters.append(rdBatter()) if (record.home.nBatters < max_batter_nums): for i in range(max_batter_nums - record.home.nBatters): record.home.batters.append(rdBatter()) if (record.away.nPitchers < max_pitcher_nums): for i in range(max_pitcher_nums - record.away.nPitchers): record.away.pitchers.append(rdPitcher()) if (record.home.nPitchers < max_pitcher_nums): for i in range(max_pitcher_nums - record.home.nPitchers): record.home.pitchers.append(rdPitcher()) if (game_exist): err_message = "重複的場次編號" context = { 'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message } return render(request, 'sbleague/newgame.html', context) # === record error if (record_err != ""): err_message = record_err context = { 'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message } return render(request, 'sbleague/newgame.html', context) # === success add new game if 'send' in request.POST: # --- send data context = { 'hometeam': hometeam, 'awayteam': awayteam, 'homeplayer': homeplayer, 'awayplayer': awayplayer, 'date': date, 'location': location, 'game_id': game_id, 'home_away': range(2), 'max_batter_nums': max_batter_nums, 'max_pitcher_nums': max_pitcher_nums, 'record': record } return render(request, 'sbleague/newgame_detail.html', context) elif 'download' in request.POST: filename = '%d.txt' % int(game_id) filepath = 'sbleague/static/txt/%s' % filename with open(filepath, 'w') as f: f.write(record.post_ptt) print "save %s" % filepath response = HttpResponse( FileWrapper(file(filepath)), content_type=mimetypes.guess_type(filepath)[0]) response[ 'Content-Disposition'] = 'attachment; filename=%s' % filename response['Content-Length'] = os.path.getsize(filepath) return response else: # --- preview err_message = "preview" context = { 'teams': teams, 'awayteam': awayteam, 'hometeam': hometeam, 'date': date, 'location': location, 'game_id': game_id, 'away_record': away_record, 'home_record': home_record, 'warning': err_message, 'record': record, 'preview': True } return render(request, 'sbleague/newgame.html', context)
def index(): game_type = "" date = None game_id = "" location = "" away_team_name = "" away_scores = [] away_table = [] away_record = "" home_team_name = "" home_scores = [] home_table = [] home_record = "" warning = "" load_file = False parse_game = False if( "reset" in request.form ): return render_template("index.html", game=Game(), id='', away_record='', home_record='', warning='') if( request.method == "POST" ): # parse from upload file if( 'upload_file' in request.files ): f = request.files['upload_file'] if( f ): load_file = True if is_allowed_file(f.filename): filepath = os.path.join(app.config["UPLOAD_FOLDER"], f.filename) f.save(filepath) print "save %s\n" %filepath warning = 'upload %s' %f.filename game_type, date, game_id, location, \ away_team_name, away_scores, away_table, \ home_team_name, home_scores, home_table = load_record_file(filepath) away_record = table_to_text(away_table) home_record = table_to_text(home_table) parse_game = True else: warning = 'Not allowed file extension: %s' %os.path.splitext(f.filename)[-1] # parse from web if( not load_file ): game_type = request.form["game_type"].encode('utf8') date = request.form["date"] location = request.form["location"].encode('utf8') game_id = request.form["game_id"].encode('utf8') away_record = request.form["away_record"] home_record = request.form["home_record"] (away_team_name, away_scores, away_table) = gather_team_info(request, "away", away_record.encode('utf8')) (home_team_name, home_scores, home_table) = gather_team_info(request, "home", home_record.encode('utf8')) parse_game = True if( parse_game ): print "parse_game" game, err = parse_game_record(away_team_name, away_scores, away_table, \ home_team_name, home_scores, home_table) game.game_type = game_type game.date = date game.location = location game.game_id = game_id game.away.raw_record = away_record.encode('utf8') game.home.raw_record = home_record.encode('utf8') if( err == "" ): filename = '%s-%s-%s' %(game.game_id, away_team_name, home_team_name) # save record file filepath = 'rd/%s.rd' %filename game.save_game(filepath) # save output file (PTT format + statistic results) filepath = 'rd/%s.txt' %filename output = "" output += "%s %s (%s)\n\n" %(str(date), game_type, location) output += game.post_ptt output += "\n" output += game.post_db with open(filepath, 'w') as f: f.write(output) print "Save %s" %filepath return render_template("index.html", game=game, id=game_id, away_record=away_record, home_record=home_record, warning=err, preview=True) else: return render_template("index.html", game=game, id=game_id, away_record=away_record, home_record=home_record, warning=err) if( 'download_ptt' in request.form and err == "" ): print "download ptt" filepath = 'rd/%s.txt' %filename with open(filepath, 'r') as f: output = f.read() response = make_response(output) response.headers['Content-Type'] = mimetypes.guess_type(filepath)[0] response.headers['Content-Disposition'] = 'attachment; filename=%s.txt' %filename response.headers['Content-Length'] = os.path.getsize(filepath) return response if( 'download_rd' in request.form and err == "" ): print "download_rd" filepath = 'rd/%s.rd' %filename with open(filepath, 'r') as f: output = f.read() response = make_response(output) response.headers['Content-Type'] = mimetypes.guess_type(filepath)[0] response.headers['Content-Disposition'] = 'attachment; filename=%s.rd' %filename response.headers['Content-Length'] = os.path.getsize(filepath) return response return render_template("index.html", game=Game(), id='', away_record='', home_record='', warning=warning)
def edit_game(request, game_id): game = Game.objects.get(id=game_id) league_list = League.objects.all() member_list = Member.objects.all() batting_query = Batting.objects.filter(game=game) pitching_query = Pitching.objects.filter(game=game) if request.method != "POST": game.date = unicode(game.date) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') game.away_scores = CommaSeparatedString_to_IntegerArray( game.away_scores) game.home_scores = CommaSeparatedString_to_IntegerArray( game.home_scores) message = "" warning = "" record_table = text_to_table(game.record.encode('utf8')) if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) if (away_name.upper() == 'RB'): team = game_record.away else: team = game_record.home batting_list = [] for batting in batting_query: batting_list.append(batting) pitching_list = [] for pitching in pitching_query: pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/edit_game.html', context) else: # POST league_id = request.POST["league_id"] game.league = League.objects.get(id=league_id) game.date = request.POST["date"] game.location = request.POST["location"] game.record = request.POST["record_text"] game.away_name = request.POST["away_name"] game.home_name = request.POST["home_name"] game.away_scores = gather_team_scores_from_web(request, 'away') game.home_scores = gather_team_scores_from_web(request, 'home') print game.home_scores message = "" warning = "" game_record = None team = None if 'add-new-league-btn' in request.POST: print("add new league!") league_name = request.POST["new-league-name"] if league_name != None: league = League.objects.filter(name=league_name) if (league.exists()): warning = "League name %s already exists." % league_name else: league = League(name=league_name) league.save() message = 'Add new league: %s' % league_name league_list = League.objects.all() if 'add-new-member-btn' in request.POST: print("add new member!") member_name = request.POST["new-member-name"] member_number = int(request.POST["new-member-number"]) if member_name != None: member = Member.objects.filter(name=member_name) if (member.exists()): warning = "Member %s already exists." % member_name else: member = Member(name=member_name, number=member_number) member.save() message = 'Add new member: %s(%d)' % (member_name, member_number) member_list = Member.objects.all() if ('preview-btn' in request.POST) or ('save-game-btn' in request.POST): game.league = League.objects.get(id=league_id) record_table = text_to_table(game.record.encode('utf8')) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) game.away_R = game_record.away.R game.away_H = game_record.away.H game.away_E = game_record.away.E game.home_R = game_record.home.R game.home_H = game_record.home.H game.home_E = game_record.home.E if (warning == ""): message = "Preview record table!" game_record, team = extract_single_team_data(game_record, 'RB') batting_list = [] for batter in team.batters: batting = Batting() for play in batting_query: if batter.name.decode('utf8') == play.member.name: batting = play break batting.member = Member.objects.get( name=batter.name.decode('utf8')) batting.game = game batting.order = batter.order batting.pa = batter.PA batting.single = batter.B1 batting.double = batter.B2 batting.triple = batter.B3 batting.hr = batter.HR batting.rbi = batter.RBI batting.run = batter.RUN batting.bb = batter.BB batting.k = batter.K batting.sf = batter.SF batting.field = batter.pos batting_list.append(batting) # DO NOT modify pitching query with team.pitchers pitching_list = [] for pitching in pitching_query: pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) if 'save-game-btn' in request.POST: # create and save new Game object game.away_scores = IntegerArray_to_CommaSeparatedString( game.away_scores) game.home_scores = IntegerArray_to_CommaSeparatedString( game.home_scores) game.save() nBatter = len(batting_list) for i in range(nBatter): batting = batting_list[i] member_id = int( request.POST.get("batting_%d_id" % (i + 1), "")) if (member_id != 0): batting.member = Member.objects.get(id=member_id) batting.game = game batting.save() nPitcher = len(pitching_list) for i in range(nPitcher): pitching = pitching_list[i] member_id = int( request.POST.get("pitching_%d_id" % (i + 1), "")) if (member_id != 0): pitching.member = Member.objects.get(id=member_id) pitching.game = game pitching.outs = int( request.POST.get("pitching_%d_outs" % (i + 1), "")) pitching.pa = int( request.POST.get("pitching_%d_pa" % (i + 1), "")) pitching.hit = int( request.POST.get("pitching_%d_hit" % (i + 1), "")) pitching.hr = int( request.POST.get("pitching_%d_hr" % (i + 1), "")) pitching.bb = int( request.POST.get("pitching_%d_bb" % (i + 1), "")) pitching.k = int( request.POST.get("pitching_%d_k" % (i + 1), "")) pitching.run = int( request.POST.get("pitching_%d_run" % (i + 1), "")) pitching.er = int( request.POST.get("pitching_%d_er" % (i + 1), "")) pitching.go = int( request.POST.get("pitching_%d_go" % (i + 1), "")) pitching.fo = int( request.POST.get("pitching_%d_fo" % (i + 1), "")) win = request.POST.get("pitching_%d_win" % (i + 1), "") lose = request.POST.get( "pitching_%d_lose" % (i + 1), "") if (win != ''): pitching.win = 1 else: pitching.win = 0 if (lose != ''): pitching.lose = 1 else: pitching.lose = 0 pitching.save() return redirect("/game/" + str(game.id)) context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/edit_game.html', context)
def add_game(request): league_list = League.objects.all() member_list = Member.objects.all() game = Game() batting_list = [] pitching_list = [] if request.method != "POST": game.date = None game.location = "" game.away_name = "" game.away_scores = [0] * 7 game.home_name = "" game.home_scores = [0] * 7 game.record = "" message = "" warning = "" context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message } return render(request, 'team/add_game.html', context) else: league_id = request.POST["league_id"] game.league = League.objects.get(id=league_id) game.date = request.POST["date"] game.location = request.POST["location"] game.record = request.POST["record_text"] game.away_name = request.POST["away_name"] game.home_name = request.POST["home_name"] game.away_scores = gather_team_scores_from_web(request, 'away') game.home_scores = gather_team_scores_from_web(request, 'home') message = "" warning = "" game_record = None team = None if 'add-new-league-btn' in request.POST: print("add new league!") league_name = request.POST["new-league-name"] if league_name != None and league_name != "": league = League.objects.filter(name=league_name) if (league.exists()): warning = "League name %s already exists." % league_name else: league = League(name=league_name) league.save() message = 'Add new league: %s' % league_name league_list = League.objects.all() if 'add-new-member-btn' in request.POST: print("add new member!") member_name = request.POST["new-member-name"] member_number = int(request.POST["new-member-number"]) if member_name != None: member = Member.objects.filter(name=member_name) if (member.exists()): warning = "Member %s already exists." % member_name else: member = Member(name=member_name, number=member_number) member.save() message = 'Add new member: %s(%d)' % (member_name, member_number) member_list = Member.objects.all() if ('preview-btn' in request.POST) or ('save-game-btn' in request.POST): game.league = League.objects.get(id=league_id) record_table = text_to_table(game.record.encode('utf8')) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) game.away_R = game_record.away.R game.away_H = game_record.away.H game.away_E = game_record.away.E game.home_R = game_record.home.R game.home_H = game_record.home.H game.home_E = game_record.home.E if (warning == ""): message = "Preview record table!" game_record, team = extract_single_team_data(game_record, 'RB') # create and save new Batting object nBatter = len(team.batters) batting_list = [] for i in range(nBatter): batting = Batting() batting.game = game batting.order = team.batters[i].order batting.pa = team.batters[i].PA batting.single = team.batters[i].B1 batting.double = team.batters[i].B2 batting.triple = team.batters[i].B3 batting.hr = team.batters[i].HR batting.rbi = team.batters[i].RBI batting.run = team.batters[i].RUN batting.bb = team.batters[i].BB batting.k = team.batters[i].K batting.sf = team.batters[i].SF batting.field = team.batters[i].pos try: batting.member = Member.objects.get( name=team.batters[i].name.decode('utf8')) except Member.DoesNotExist: warning = "member name %s does not exist." % team.batters[ i].name break batting_list.append(batting) # create and save new Batting object nPitcher = len(team.pitchers) pitching_list = [] for i in range(nPitcher): pitching = Pitching() pitching.game = game pitching.order = i pitching.outs = team.pitchers[i].OUT pitching.pa = team.pitchers[i].TBF pitching.hit = team.pitchers[i].H pitching.hr = team.pitchers[i].HR pitching.bb = team.pitchers[i].BB pitching.k = team.pitchers[i].K pitching.run = team.pitchers[i].RUN pitching.er = team.pitchers[i].ER pitching.go = team.pitchers[i].GO pitching.fo = team.pitchers[i].FO pitching.win = team.pitchers[i].WIN pitching.lose = team.pitchers[i].LOSE try: pitching.member = Member.objects.get( name=team.pitchers[i].name.decode('utf8')) except Member.DoesNotExist: warning = "member name %s does not exist." % team.pitchers[ i].name break pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) if 'save-game-btn' in request.POST: # create and save new Game object game.away_scores = IntegerArray_to_CommaSeparatedString( game.away_scores) game.home_scores = IntegerArray_to_CommaSeparatedString( game.home_scores) game.save() nBatter = len(batting_list) for i in range(nBatter): batting = batting_list[i] member_id = int( request.POST.get("batting_%d_id" % (i + 1), "")) if (member_id != 0): batting.member = Member.objects.get(id=member_id) batting.game = game batting.save() nPitcher = len(pitching_list) for i in range(nPitcher): pitching = pitching_list[i] member_id = int( request.POST.get("pitching_%d_id" % (i + 1), "")) if (member_id != 0): pitching.member = Member.objects.get(id=member_id) pitching.game = game pitching.outs = int( request.POST.get("pitching_%d_outs" % (i + 1), "")) pitching.pa = int( request.POST.get("pitching_%d_pa" % (i + 1), "")) pitching.hit = int( request.POST.get("pitching_%d_hit" % (i + 1), "")) pitching.hr = int( request.POST.get("pitching_%d_hr" % (i + 1), "")) pitching.bb = int( request.POST.get("pitching_%d_bb" % (i + 1), "")) pitching.k = int( request.POST.get("pitching_%d_k" % (i + 1), "")) pitching.run = int( request.POST.get("pitching_%d_run" % (i + 1), "")) pitching.er = int( request.POST.get("pitching_%d_er" % (i + 1), "")) pitching.go = int( request.POST.get("pitching_%d_go" % (i + 1), "")) pitching.fo = int( request.POST.get("pitching_%d_fo" % (i + 1), "")) win = request.POST.get("pitching_%d_win" % (i + 1), "") lose = request.POST.get( "pitching_%d_lose" % (i + 1), "") if (win != ''): pitching.win = 1 else: pitching.win = 0 if (lose != ''): pitching.lose = 1 else: pitching.lose = 0 pitching.save() return redirect("/game/" + str(game.id)) # end of add-game-btn # end of preview context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/add_game.html', context)
def show_game(request, game_id): if not request.user.is_authenticated(): return render(request, 'team/show_game.html') game = Game.objects.get(id=game_id) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') game.away_scores = CommaSeparatedString_to_IntegerArray(game.away_scores) game.home_scores = CommaSeparatedString_to_IntegerArray(game.home_scores) record_table = text_to_table(game.record.encode('utf8')) if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) game_record, team = extract_single_team_data(game_record, 'RB') if request.method != "POST": batting_all = Batting.objects.filter(game=game).order_by("order") pitching_all = Pitching.objects.filter(game=game).order_by("order") batting_list = [] pitching_list = [] for batting in batting_all: player = statBatting() player.copy(batting) player.stat() batting_list.append(player) for pitching in pitching_all: player = statPitching() player.copy(pitching) player.stat() pitching_list.append(player) context = { 'game': game, 'team': team, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/show_game.html', context) else: # download PTT format if 'download-btn' in request.POST: print("download game %d PTT format" % game.id) filename = '%s.txt' % str(game.date) filepath = 'team/static/txt/%s' % filename with open(filepath, 'w') as f: f.write(game_record.post_ptt) print("save %s" % filepath) response = HttpResponse( FileWrapper(file(filepath)), content_type=mimetypes.guess_type(filepath)[0]) response[ 'Content-Disposition'] = 'attachment; filename=%s' % filename response['Content-Length'] = os.path.getsize(filepath) return response elif 'edit-btn' in request.POST: return redirect("/editgame/" + str(game_id))