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 %}
+{% 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 %}
+{% 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 %}
+{% 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 %}
+
+
+
+
+ {% 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}))