ds
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user