Private
Public Access
1
0

adding time team import

This commit is contained in:
Sander Roosendaal
2022-07-05 07:16:21 +02:00
parent 65f00b6ec3
commit 273b9a9bb6
8 changed files with 96 additions and 3 deletions

View File

@@ -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')

View File

@@ -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

View File

@@ -2,7 +2,7 @@
{% block main %}
<h1>
{{ race.name }}
{{ race.name }}
</h1>
<p>
<form method="post" enctype="multipart/form-data">{% csrf_token %}

View File

@@ -58,6 +58,9 @@
<p>
<a href="/boatmovers/race/{{ race.id }}/csv/">Add Result CSV</a>
</p>
<p>
<a href="/boatmovers/race/{{ race.id }}/timeteam/">Add Result from Time Team</a>
</p>
{% endif %}
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,14 @@
{% extends "boatmovers_base.html" %}
{% block main %}
<h1>
{{ race.name }}
</h1>
<p>
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="hidden" name="action" value="create" />
<input type="submit" value="Submit"/>
</form>
</p>
{% endblock %}

View File

@@ -14,6 +14,7 @@ urlpatterns = [
url(r'result/add/$',views.ResultCreateView.as_view(),name='result_add'),
url(r'race/(?P<id>\d+)/$',views.race_view,name='race_view'),
url(r'race/(?P<id>\d+)/csv/$',views.race_add_csv,name='race_add_csv'),
url(r'race/(?P<id>\d+)/timeteam/$',views.race_handle_timeteam,name='race_handle_timeteam'),
url(r'race/(?P<id>\d+)/verify/$',views.race_verify,name='race_verify'),
url(r'race/(?P<id>\d+)/process/$',views.race_process,name='race_process'),
url(r'race/(?P<id>\d+)/deleteresults/$',views.race_delete_results,

View File

@@ -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():