From a47ae2bc5b8d547b20236e5a7811c130c6cd76a0 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 29 Jun 2022 16:17:37 +0200 Subject: [PATCH] adding link to Home, delayed tasks working --- boatmovers/scrapers.py | 10 ++---- boatmovers/tasks.py | 23 +++++++++++++ boatmovers/templates/boatmovers.html | 5 +++ .../templates/boatmovers/athlete_form.html | 3 ++ .../templates/boatmovers/race_form.html | 3 ++ .../templates/boatmovers/result_form.html | 3 ++ boatmovers/templates/boatmovers_base.html | 33 +++++++++++++++++++ boatmovers/templates/crew.html | 3 ++ boatmovers/templates/race.html | 4 +++ boatmovers/views.py | 8 ++++- 10 files changed, 87 insertions(+), 8 deletions(-) create mode 100644 boatmovers/tasks.py create mode 100644 boatmovers/templates/boatmovers_base.html diff --git a/boatmovers/scrapers.py b/boatmovers/scrapers.py index 9033d1cb..8e00011c 100644 --- a/boatmovers/scrapers.py +++ b/boatmovers/scrapers.py @@ -15,18 +15,14 @@ def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos'): # replace column names if different for row in df.itertuples(): - order = row.Pos - crewname = row.Ploeg + order = row[df.columns.get_loc(uitslag)+1] + crewname = row[df.columns.get_loc(clubcol)+1] crew = Crew(name=crewname) crew.save() for i in range(nr): - # need to improve for multiple rowers try: - print(row) - naam = row[df.columns.get_loc('Slag')+1].split(' ') - #print(naam) - #naam = row.Slag.split(' ') + naam = row[df.columns.get_loc(bankjes[i])+1].split(' ') first_name = ' '.join(naam[:-1]) last_name = naam[-1] except AttributeError: diff --git a/boatmovers/tasks.py b/boatmovers/tasks.py new file mode 100644 index 00000000..d45d7d4d --- /dev/null +++ b/boatmovers/tasks.py @@ -0,0 +1,23 @@ +import os +os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true" +from YamJam import yamjam +CFG = yamjam()['rowsandallapp'] + +try: + os.environ.setdefault("DJANGO_SETTINGS_MODULE",CFG['settings_name']) +except KeyError: + os.environ.setdefault("DJANGO_SETTINGS_MODULE","rowsandall_app.settings") + +from django.core.wsgi import get_wsgi_application +application = get_wsgi_application() + +from boatmovers.models import Race +from rq import get_current_job +from django_rq import job + +@job +def race_process(id): + job = get_current_job() + + race = Race.objects.get(id=id) + return race.process() diff --git a/boatmovers/templates/boatmovers.html b/boatmovers/templates/boatmovers.html index f8ab7d67..0a08e1db 100644 --- a/boatmovers/templates/boatmovers.html +++ b/boatmovers/templates/boatmovers.html @@ -1,3 +1,5 @@ +{% extends "boatmovers_base.html" %} +{% block main %} + +

Boat Movers Ranking

@@ -108,3 +112,4 @@

{% endif %} +{% endblock %} diff --git a/boatmovers/templates/boatmovers/athlete_form.html b/boatmovers/templates/boatmovers/athlete_form.html index a9b32c5f..da989c98 100644 --- a/boatmovers/templates/boatmovers/athlete_form.html +++ b/boatmovers/templates/boatmovers/athlete_form.html @@ -1,4 +1,7 @@ +{% extends "boatmovers_base.html" %} +{% block main %}
{% csrf_token %} {{ form.as_p }}
+{% endblock %} diff --git a/boatmovers/templates/boatmovers/race_form.html b/boatmovers/templates/boatmovers/race_form.html index a9b32c5f..da989c98 100644 --- a/boatmovers/templates/boatmovers/race_form.html +++ b/boatmovers/templates/boatmovers/race_form.html @@ -1,4 +1,7 @@ +{% extends "boatmovers_base.html" %} +{% block main %}
{% csrf_token %} {{ form.as_p }}
+{% endblock %} diff --git a/boatmovers/templates/boatmovers/result_form.html b/boatmovers/templates/boatmovers/result_form.html index a9b32c5f..da989c98 100644 --- a/boatmovers/templates/boatmovers/result_form.html +++ b/boatmovers/templates/boatmovers/result_form.html @@ -1,4 +1,7 @@ +{% extends "boatmovers_base.html" %} +{% block main %}
{% csrf_token %} {{ form.as_p }}
+{% endblock %} diff --git a/boatmovers/templates/boatmovers_base.html b/boatmovers/templates/boatmovers_base.html new file mode 100644 index 00000000..af81b876 --- /dev/null +++ b/boatmovers/templates/boatmovers_base.html @@ -0,0 +1,33 @@ +{% load leaflet_tags %} +{% load cookielaw_tags %} + +{% block filters %} +{% endblock %} + + + + {% block title %}Rowsandall Boatmovers{% endblock %} + + + +
+ Ranking +
+ {% if WARNING_MESSAGE != '' %} + {{ WARNING_MESSAGE }} + {% endif %} + {% if messages %} + {% for message in messages %} +

+ {{ message|safe }} +

+ {% endfor %} + {% endif %} + + {% block main %} + + {% endblock %} + + + + {% block scripts %} {% endblock %} diff --git a/boatmovers/templates/crew.html b/boatmovers/templates/crew.html index 56d33232..074882fb 100644 --- a/boatmovers/templates/crew.html +++ b/boatmovers/templates/crew.html @@ -1,3 +1,5 @@ +{% extends "boatmovers_base.html" %} +{% block main %}

{{ crew.name }}

@@ -17,3 +19,4 @@ {% endfor %}

+{% endblock %} diff --git a/boatmovers/templates/race.html b/boatmovers/templates/race.html index 8f602c69..3e92de8a 100644 --- a/boatmovers/templates/race.html +++ b/boatmovers/templates/race.html @@ -1,3 +1,6 @@ +{% extends "boatmovers_base.html" %} + +{% block main %}

{{ race.name }}

@@ -48,3 +51,4 @@

{% endif %} {% endif %} +{% endblock %} diff --git a/boatmovers/views.py b/boatmovers/views.py index 94f3cb0b..97c937f7 100644 --- a/boatmovers/views.py +++ b/boatmovers/views.py @@ -2,12 +2,16 @@ from django.shortcuts import render from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.urls import reverse +from django.contrib import messages import collections # Create your views here. from django.views.generic.edit import CreateView from boatmovers.models import Athlete, Crew, Race, Result +import boatmovers.tasks as tasks +import django_rq +queue = django_rq.get_queue('high') class AthleteCreateView(CreateView): model = Athlete @@ -106,7 +110,9 @@ def race_verify(request, id=0): def race_process(request, id=0): race = get_object_or_404(Race, pk=id) - outcome = race.process() + job = queue.enqueue(tasks.race_process,race.id) + #outcome = race.process() + messages.info(request,"Your race is being processed. Reload to get the new status.") return HttpResponseRedirect(reverse('race_view',kwargs={'id':race.id}))