Update stratplay.py
Add teamposition grouping
This commit is contained in:
parent
08e54e10a1
commit
b259f8b693
@ -529,7 +529,7 @@ async def get_fielding_totals(
|
|||||||
season: list = Query(default=None), week: list = Query(default=None),
|
season: list = Query(default=None), week: list = Query(default=None),
|
||||||
s_type: Literal['regular', 'post', 'total', None] = None, position: list = Query(default=None),
|
s_type: Literal['regular', 'post', 'total', None] = None, position: list = Query(default=None),
|
||||||
player_id: list = Query(default=None),
|
player_id: list = Query(default=None),
|
||||||
group_by: Literal['team', 'player', 'playerteam', 'playerposition'] = 'player',
|
group_by: Literal['team', 'player', 'playerteam', 'playerposition', 'teamposition'] = 'player',
|
||||||
min_ch: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
min_ch: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
||||||
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False):
|
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False):
|
||||||
season_games = StratGame.select()
|
season_games = StratGame.select()
|
||||||
@ -582,6 +582,9 @@ async def get_fielding_totals(
|
|||||||
elif group_by == 'playerposition':
|
elif group_by == 'playerposition':
|
||||||
def_plays = def_plays.group_by(StratPlay.defender, StratPlay.check_pos)
|
def_plays = def_plays.group_by(StratPlay.defender, StratPlay.check_pos)
|
||||||
cat_plays = cat_plays.group_by(StratPlay.catcher)
|
cat_plays = cat_plays.group_by(StratPlay.catcher)
|
||||||
|
elif group_by == 'teamposition':
|
||||||
|
def_plays = def_plays.group_by(StratPlay.defender_team, StratPlay.check_pos)
|
||||||
|
cat_plays = cat_plays.group_by(StratPlay.catcher_team)
|
||||||
if sort is not None:
|
if sort is not None:
|
||||||
if sort == 'player':
|
if sort == 'player':
|
||||||
def_plays = def_plays.order_by(StratPlay.defender)
|
def_plays = def_plays.order_by(StratPlay.defender)
|
||||||
@ -620,11 +623,16 @@ async def get_fielding_totals(
|
|||||||
sum_cs = 0
|
sum_cs = 0
|
||||||
sum_wpa = 0
|
sum_wpa = 0
|
||||||
sum_pb = 0
|
sum_pb = 0
|
||||||
|
|
||||||
this_pos = 'TOT'
|
this_pos = 'TOT'
|
||||||
if group_by == 'playerposition':
|
if group_by in ['playerposition', 'teamposition']:
|
||||||
this_pos = x.check_pos
|
this_pos = x.check_pos
|
||||||
|
this_player = x.defender_id if short_output else model_to_dict(x.defender, recurse=False)
|
||||||
|
if group_by == 'teamposition':
|
||||||
|
this_player = 'TOT'
|
||||||
|
|
||||||
return_stats['stats'].append({
|
return_stats['stats'].append({
|
||||||
'player': x.defender_id if short_output else model_to_dict(x.defender, recurse=False),
|
'player': this_player,
|
||||||
'team': x.defender_team_id if short_output else model_to_dict(x.defender_team, recurse=False),
|
'team': x.defender_team_id if short_output else model_to_dict(x.defender_team, recurse=False),
|
||||||
'pos': this_pos,
|
'pos': this_pos,
|
||||||
'x-ch': x.sum_chances,
|
'x-ch': x.sum_chances,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user