Private
Public Access
1
0
This commit is contained in:
2023-09-20 22:35:34 +02:00
parent e994fd1bf3
commit 7dd62a9776
5 changed files with 3160 additions and 9 deletions

View File

@@ -5,12 +5,13 @@ from django.urls import reverse
from django.contrib import messages
import collections
import pandas as pd
# Create your views here.
from django.views.generic.edit import CreateView
from boatmovers.models import Athlete, Crew, Race, Result
import boatmovers.tasks as tasks
from boatmovers.forms import CsvForm, TimeTeamForm
from boatmovers.forms import CsvForm, TimeTeamForm, DatesForm
from boatmovers.scrapers import *
#from rowers.rows import handle_uploaded_file
import django_rq
@@ -98,6 +99,60 @@ def boatmovers_view(request):
'new_races': new_races}
)
def boatmovers_compareview(request):
form = DatesForm()
df = pd.DataFrame()
if request.method == 'POST':
form = DatesForm(request.POST)
if form.is_valid():
date1 = form.cleaned_data['date1']
date2 = form.cleaned_data['date2']
sort_by = form.cleaned_data['sort_by']
ascending = form.cleaned_data['ascending']
limit_to_first = form.cleaned_data['limit_to_first']
gender = form.cleaned_data['gender']
file1 = "media/boatmovers_"+date1+".csv"
df1 = pd.read_csv(file1)
if gender in ['m','f']:
df1 = df1[df1.gender==gender]
df1.index = df1['id']
df1 = df1.assign(rank=range(len(df1)))
df1['rank'] = df1['rank']+1
df1.rename(columns={'full_name':'Name','trueskill_exposed':'Score1','rank':'Rank1'},inplace=True)
df1 = df1.loc[:, ['Name','club','gender','Score1','Rank1']]
file2 = "media/boatmovers_"+date2+".csv"
df2 = pd.read_csv(file2)
if gender in ['m','f']:
df2 = df2[df2.gender==gender]
df2.index = df2['id']
df2 = df2.assign(rank=range(len(df2)))
df2['rank'] = df2['rank']+1
df2.rename(columns={'trueskill_exposed':'Score2','rank':'Rank2'},inplace=True)
df2 = df2.loc[:, ['Rank2','Score2']]
df = df1.merge(df2,left_on='id',right_on='id')
df['PositionsClimbed'] = df['Rank1']-df['Rank2']
df['ScoreIncrease'] = df['Score2']-df['Score1']
df = df.loc[:, ['Name', 'club', 'gender', 'Rank1', 'Rank2', 'PositionsClimbed',
'Score1', 'Score2',
'ScoreIncrease']]
df.sort_values(by='Rank2',inplace=True)
df = df.head(limit_to_first)
df.sort_values(by=[sort_by],inplace=True,ascending=ascending)
return render(request,
'boatmovers_compare.html',
{
'form':form,
'df':df,
})
def race_view(request,id=0):
race = get_object_or_404(Race, pk=id)
results = race.results.all().order_by('order')