additional routes for post 2014 and post 2018 eras

This commit is contained in:
nprasad2077 committed 2023-05-01 22:07:35 -05:00
1 parent 0b18de5a82
commit 6995af94b2
2 files changed
+79 -2

No files matched your search

+4 -2
View File
@@ -1,5 +1,5 @@
from django.urls import path
from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast, Top20ScorersPost2009WS
from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast, Top20ScorersPost2009WS, Top20ScorersPost2014WS, Top20ScorersPost2018WS
urlpatterns = [
path('api/playerdata/', PlayerDataList.as_view(), name='playerdata_list'),
@@ -17,5 +17,7 @@ urlpatterns = [
path('api/points_per_game_histogram/<int:season>/', PointsPerGameHistogramBySeasonList.as_view(), name='points_per_game_histogram'),
path('api/top_pts_scatter_plot/', TopPtsScatterPlotData.as_view(), name='top_pts_scatter_plot'),
path('api/top_pts_scatter_plot_fast/', TopPtsScatterPlotDataFast.as_view(), name='top_pts_scatter_plot_fast'),
path('api/top_20_post_2009_PTS_ws/', Top20ScorersPost2009WS.as_view(), name='top_20_post_2009_PTS_ws')
path('api/top_20_post_2009_PTS_ws/', Top20ScorersPost2009WS.as_view(), name='top_20_post_2009_PTS_ws'),
path('api/top_20_post_2014_PTS_ws/', Top20ScorersPost2014WS.as_view(), name='top_20_post_2014_PTS_ws'),
path('api/top_20_post_2018_PTS_ws/', Top20ScorersPost2018WS.as_view(), name='top_20_post_2018_PTS_ws'),
]
+75
View File
@@ -292,4 +292,79 @@ class Top20ScorersPost2009WS(APIView):
}
return Response(response_data)
class Top20ScorersPost2014WS(APIView):
def get(self, request):
# Get the top 20 scorers after the 2015 season
top_scorers = PlayerPlayoffTotalsData.objects \
.filter(season__gt=2014) \
.values('player_name') \
.annotate(total_pts=Sum('PTS')) \
.order_by('-total_pts')[:20]
# Get the total WS for each of the top 20 scorers after the 2015 season
chart_data = []
for scorer in top_scorers:
player_name = scorer['player_name']
total_ws = PlayerPlayoffAdvancedData.objects \
.filter(player_name=player_name, season__gt=2014) \
.aggregate(total_ws=Sum('ws'))['total_ws']
chart_data.append({
'x': scorer['total_pts'],
'y': total_ws,
'player_name': player_name
})
# Sort the data by total_ws DESC
chart_data = sorted(chart_data, key=lambda x: x['y'], reverse=True)
# Prepare the response data for chart.js
response_data = {
'datasets': [
{
'data': chart_data
}
]
}
return Response(response_data)
class Top20ScorersPost2018WS(APIView):
def get(self, request):
# Get the top 20 scorers after the 2015 season
top_scorers = PlayerPlayoffTotalsData.objects \
.filter(season__gt=2018) \
.values('player_name') \
.annotate(total_pts=Sum('PTS')) \
.order_by('-total_pts')[:20]
# Get the total WS for each of the top 20 scorers after the 2015 season
chart_data = []
for scorer in top_scorers:
player_name = scorer['player_name']
total_ws = PlayerPlayoffAdvancedData.objects \
.filter(player_name=player_name, season__gt=2018) \
.aggregate(total_ws=Sum('ws'))['total_ws']
chart_data.append({
'x': scorer['total_pts'],
'y': total_ws,
'player_name': player_name
})
# Sort the data by total_ws DESC
chart_data = sorted(chart_data, key=lambda x: x['y'], reverse=True)
# Prepare the response data for chart.js
response_data = {
'datasets': [
{
'data': chart_data
}
]
}
return Response(response_data)