예제 #1
0
def team(request , team_id , order="hit",y=4) :
	thisteam = Team.objects.get(teamID = team_id)
	team_info = TeamStat()	#init
	team_info.name 	 = thisteam.name
	team_info.teamID = thisteam.teamID
	team_overall={}  #勝敗和那邊

	game_all = Game.objects.filter(Q(away = team_id) | Q(home = team_id)).order_by('gameID')
	game_list = []
	for game in game_all:
		year = game.gameID/1000 + 2011

		if not team_overall.has_key(year) :
			team_overall[year]=TeamStat()
			team_overall[year].year=year;
			team_overall[year].win=0;
			team_overall[year].lose=0;
			team_overall[year].tie=0;
			team_overall[year].game_played=0;
			

		g = GameStat()

		if( game.away.teamID != int(team_id) ):
			opp = game.away
		else:
			opp = game.home

		game_result = game.get_result()
		if( len(game_result) == 0 ):
			result = '和'
			team_overall[year].tie += 1
		elif( game_result[0].teamID == int(team_id) ):
			result = '勝'
			team_overall[year].win += 1
		else:
			result = '敗'
			team_overall[year].lose += 1

		team_overall[year].game_played += 1

		scores = game.get_scores()

		if game.gameID >= y*1000 and game.gameID <= (y+1)*1000: 
			
			g.gameID 	= game.gameID
			g.date 		= game.date
			g.location 	= game.location
			g.opp 		= opp
			g.scores 	= str(sum(scores[0])) + ' : ' + str(sum(scores[1]))
			g.result 	= result
			game_list.append(g)
	
	# sort by date


	game_list = sorted(game_list , key=attrgetter('date'))

	members = Member.objects.filter(team__teamID = team_id)

	members_bat= []
	members_pit= []
	team_bat = Hitter()
	team_pit = Pitcher()

	for player in members:
		#batting data
		bat = Batting.objects.filter(member__memberID = player.memberID , team = thisteam.teamID,game__gameID__gte=y*1000)
		
		if bat.exists() :
			hitter = Hitter()
			for bat_detail in bat:
				hitter.name = player.name
				hitter.id = player.memberID
				hitter.games_played += 1
				hitter.pa += bat_detail.pa
				hitter.single +=bat_detail.single
				hitter.double +=bat_detail.double
				hitter.triple +=bat_detail.triple
				hitter.hr += bat_detail.hr
				hitter.rbi += bat_detail.rbi
				hitter.r += bat_detail.run
				hitter.bb+= bat_detail.bb
				hitter.so +=bat_detail.so
				hitter.sf +=bat_detail.sf
			hitter.stat()
			members_bat.append(hitter)
			team_bat.add(hitter)
			team_bat.stat()
		members_bat=sorted(members_bat,key=attrgetter(order),reverse=True)

		#pitching data
		pit = Pitching.objects.filter(member__memberID = player.memberID , team = thisteam.teamID,game__gameID__gte=y*1000)
		if pit.exists() :
			pitcher = Pitcher()

			for pit_detail in pit:
				pitcher.name = player.name
				pitcher.games_played +=1
				pitcher.id = player.memberID
				pitcher.win+=pit_detail.win
				pitcher.lose+=pit_detail.lose
				pitcher.outs+=pit_detail.outs
				pitcher.pa+=pit_detail.pa
				pitcher.so+=pit_detail.so
				pitcher.bb+=pit_detail.bb
				pitcher.h+=pit_detail.h
				pitcher.hr+=pit_detail.hr
				pitcher.r+=pit_detail.r
				pitcher.er+=pit_detail.er
				pitcher.go+=pit_detail.go
				pitcher.fo+=pit_detail.fo

			pitcher.stat()
			members_pit.append(pitcher)
			team_pit.add(pitcher)
			team_pit.stat()

	context = {'thisteam' : thisteam, 'team_info':team_info, 'game_list': game_list, 'members_bat': members_bat ,'members_pit':members_pit, 'team_bat' : team_bat, 'team_pit' : team_pit,'team_overall':team_overall}

	return render(request , 'sbleague/team.html',context)