diff --git a/boatmovers/forms.py b/boatmovers/forms.py index ca5efb59..898d5f23 100644 --- a/boatmovers/forms.py +++ b/boatmovers/forms.py @@ -3,3 +3,7 @@ from django import forms class CsvForm(forms.Form): file = forms.FileField(label='CSV File') # comment = forms.CharField(required=False) + +class TimeTeamForm(forms.Form): + resulturl = forms.URLField() + startorder = forms.IntegerField(initial=1,label='First result to process') diff --git a/boatmovers/tasks.py b/boatmovers/tasks.py index d45d7d4d..bd95f6e2 100644 --- a/boatmovers/tasks.py +++ b/boatmovers/tasks.py @@ -12,6 +12,7 @@ from django.core.wsgi import get_wsgi_application application = get_wsgi_application() from boatmovers.models import Race +from boatmovers.scrapers import time_team_scraper from rq import get_current_job from django_rq import job @@ -21,3 +22,8 @@ def race_process(id): race = Race.objects.get(id=id) return race.process() + +@job +def handle_timeteam(url,raceid,gender,startorder): + time_team_scraper(url,raceid,gender=gender,startorder=startorder) + return 1 diff --git a/boatmovers/templates/csvform.html b/boatmovers/templates/csvform.html index 483c4a0e..882c4d59 100644 --- a/boatmovers/templates/csvform.html +++ b/boatmovers/templates/csvform.html @@ -2,7 +2,7 @@ {% block main %}

- {{ race.name }} + {{ race.name }}

{% csrf_token %} diff --git a/boatmovers/templates/race.html b/boatmovers/templates/race.html index ee3e2d57..ab59510d 100644 --- a/boatmovers/templates/race.html +++ b/boatmovers/templates/race.html @@ -58,6 +58,9 @@

Add Result CSV

+

+ Add Result from Time Team +

{% endif %} {% endif %} {% endblock %} diff --git a/boatmovers/templates/timeteamform.html b/boatmovers/templates/timeteamform.html new file mode 100644 index 00000000..ddc2e601 --- /dev/null +++ b/boatmovers/templates/timeteamform.html @@ -0,0 +1,14 @@ +{% extends "boatmovers_base.html" %} + +{% block main %} +

+ {{ race.name }} +

+

+ {% csrf_token %} + {{ form.as_p }} + + +

+

+{% endblock %} diff --git a/boatmovers/urls.py b/boatmovers/urls.py index 45590356..271d5bea 100644 --- a/boatmovers/urls.py +++ b/boatmovers/urls.py @@ -14,6 +14,7 @@ urlpatterns = [ url(r'result/add/$',views.ResultCreateView.as_view(),name='result_add'), url(r'race/(?P\d+)/$',views.race_view,name='race_view'), url(r'race/(?P\d+)/csv/$',views.race_add_csv,name='race_add_csv'), + url(r'race/(?P\d+)/timeteam/$',views.race_handle_timeteam,name='race_handle_timeteam'), url(r'race/(?P\d+)/verify/$',views.race_verify,name='race_verify'), url(r'race/(?P\d+)/process/$',views.race_process,name='race_process'), url(r'race/(?P\d+)/deleteresults/$',views.race_delete_results, diff --git a/boatmovers/views.py b/boatmovers/views.py index 06aeb984..4235c6d8 100644 --- a/boatmovers/views.py +++ b/boatmovers/views.py @@ -10,7 +10,7 @@ import collections 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 +from boatmovers.forms import CsvForm, TimeTeamForm from boatmovers.scrapers import * #from rowers.rows import handle_uploaded_file import django_rq @@ -138,6 +138,39 @@ def race_verify(request, id=0): return HttpResponseRedirect(reverse('race_view',kwargs={'id':race.id})) +def race_handle_timeteam(request,id=0): + race = get_object_or_404(Race, pk=id) + if race.verified or race.processed: + messages.error(request,"Cannot upload CSV file for processed or verified race") + url = reverse("race_view",kwargs={'id':id}) + return HttpResponseRedirect(url) + + form = TimeTeamForm(initial={'resulturl':race.resulturl}) + if request.method == 'POST': + form = TimeTeamForm(request.POST) + + if form.is_valid(): + startorder = form.cleaned_data['startorder'] + url = form.cleaned_data['resulturl'] + race.resulturl = url + race.save() + job = queue.enqueue( + tasks.handle_timeteam, + url,race.id,race.gender,startorder) + + messages.info(request,'URL has been submitted for processing') + url = reverse('race_view',kwargs={'id':race.id}) + + return HttpResponseRedirect(url) + + return render(request, + 'timeteamform.html', + { + 'race':race, + 'form':form, + }) + + def handle_uploaded_file(f): with open('media/results.csv', 'wb+') as destination: for chunk in f.chunks(): diff --git a/ratings.csv b/ratings.csv index 24a6a473..62a36aa3 100644 --- a/ratings.csv +++ b/ratings.csv @@ -1086,4 +1086,36 @@ Jul-01-2022 14:22:48 3479,Annemarie,Palmers,22.366324437937013,7.475681072993052 Jul-01-2022 14:22:48 3223,Suzanne,Heijbrock,16.178798978402458,6.178607878151747,35,Spaarne lenterace DM 4x A-C Jul-01-2022 14:22:48 3477,Nora,Bijl,22.372308827834612,7.4775220578913855,35,Spaarne lenterace DM 4x A-C Jul-01-2022 14:22:48 3478,Agnes van,Uitert,22.372308827834612,7.4775220578913855,35,Spaarne lenterace DM 4x A-C -Jul-01-2022 14:22:48 3479,Annemarie,Palmers,22.372308827834612,7.4775220578913855,35,Spaarne lenterace DM 4x A-C \ No newline at end of file +Jul-01-2022 14:22:48 3479,Annemarie,Palmers,22.372308827834612,7.4775220578913855,35,Spaarne lenterace DM 4x A-C +Jul-05-2022 05:14:01 3297,Rianne,Beerkens,39.683129158860076,3.6687669903231614,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3416,Antoinette,Klawer,29.488311189552455,3.960745830587814,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3297,Rianne,Beerkens,39.685737183180706,3.668117133581208,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3416,Antoinette,Klawer,29.491457998226885,3.959869460042804,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 2355,Rianne,Dekker,30.877436383054206,5.823340176699139,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3007,Bregtje,Hermans,29.210813336320097,6.106004998487721,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 2355,Rianne,Dekker,30.888225082523256,5.823084969830709,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3007,Bregtje,Hermans,29.223544520296336,6.105666069044869,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3113,Jessie,Heemskerk,23.95621767688493,6.066815109327828,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3415,Noreen van der,Linden,30.19266872429093,4.095226934097734,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3113,Jessie,Heemskerk,23.97403265715589,6.068374032249687,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3415,Noreen van der,Linden,30.198146631949335,4.0954453128434976,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3480,Annabelle,Agez,22.484539513691725,7.013609312308439,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3481,Melanie,Thiele,22.484539513691725,7.013609312308439,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3480,Annabelle,Agez,22.48982850911875,7.015520745756935,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:14:01 3481,Melanie,Thiele,22.48982850911875,7.015520745756935,36,Dutch Masters Open W 2x A-C +Jul-05-2022 05:15:49 3016,Lieke,Droog,32.24166523081364,3.505698273693523,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:49 3298,Corien,Prins,35.76732762310348,3.6279761527108816,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:49 3016,Lieke,Droog,32.243812453282096,3.5051470509618974,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:49 3298,Corien,Prins,35.76965795677901,3.6273487841177503,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:49 3414,Lenny,Voorhaar,32.580439890221854,4.154125087591538,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:49 3482,Mira van der,Mije,25.863223971520657,6.28566928839552,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3414,Lenny,Voorhaar,32.584258663284395,4.154108164871136,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3482,Mira van der,Mije,25.876717853791124,6.285529642461962,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3461,Anna,Zanstra,24.85100401801386,6.266923834224782,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3464,Joanne,Preuter,24.85100401801386,6.266923834224782,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3461,Anna,Zanstra,24.863237890103925,6.2673553273389535,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3464,Joanne,Preuter,24.863237890103925,6.2673553273389535,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3483,Nina,Samel,21.626493095034196,6.984446620462897,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3484,Karin,Russig,21.626493095034196,6.984446620462897,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3483,Nina,Samel,21.633584272648232,6.986487626428133,37,Dutch Masters Open W 2x B +Jul-05-2022 05:15:50 3484,Karin,Russig,21.633584272648232,6.986487626428133,37,Dutch Masters Open W 2x B \ No newline at end of file