From 53679a1ba3beeaca84df6eecd41314a65a5277db Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 27 Jun 2022 21:28:49 +0200 Subject: [PATCH] first attempt to read csv - needs improvement --- boatmovers/models.py | 12 +++++++ boatmovers/scrapers.py | 51 +++++++++++++++++++++++++++ boatmovers/templates/boatmovers.html | 17 +++++++++ db.sqlite3-journal | Bin 12824 -> 0 bytes 4 files changed, 80 insertions(+) delete mode 100644 db.sqlite3-journal diff --git a/boatmovers/models.py b/boatmovers/models.py index d930eab3..616ee1ef 100644 --- a/boatmovers/models.py +++ b/boatmovers/models.py @@ -8,6 +8,8 @@ import datetime from django.utils import timezone import trueskill +from rowers.utils import dologging + def current_day(ttz=None): if ttz is None: return (datetime.datetime.now(tz=timezone.utc)).date() @@ -169,6 +171,16 @@ class Race(models.Model): athlete.trueskill_mu = rating.mu athlete.trueskill_sigma = rating.sigma athlete.save() + u = 'Rating athlete {id} {f} {l} mu = {mu} sigma = {sigma} race {rid} {rname}'.format( + id = id, + f = athlete.first_name, + l = athlete.last_name, + mu = rating.mu, + sigma = rating.sigma, + rid = self.id, + rname = self.name, + ) + dologging('ratings.log',u) self.processed = True self.save() diff --git a/boatmovers/scrapers.py b/boatmovers/scrapers.py index f4f9c658..cea9dc53 100644 --- a/boatmovers/scrapers.py +++ b/boatmovers/scrapers.py @@ -6,6 +6,57 @@ import pandas as pd url_heineken = '' + +def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos'): + race = Race.objects.get(id=raceid) + nr = race.crew_size + + df = pd.read_csv(filename) + # replace column names if different + + for row in df.itertuples(): + order = row.Pos + crewname = row.Ploeg + crew = Crew(name=crewname) + crew.save() + + for i in range(nr): + # need to improve for multiple rowers + try: + naam = row.Slag.split(' ') + first_name = ' '.join(naam[:-1]) + last_name = naam[-1] + except AttributeError: + try: + first_name = str(row.Slag) + last_name = '' + except TypeError: + first_name = 'Unknown' + last_name = 'Athlete' + athletes = Athlete.objects.filter(first_name = first_name, + last_name = last_name) + if len(athletes) >= 1: + athlete = athletes[0] + else: + athlete = Athlete(first_name=first_name, + last_name=last_name, + club = crewname) + athlete.save() + print(athlete) + + crew.athletes.add(athlete) + + result = Result( + crew = crew, + race = race, + order = order + ) + try: + result.save() + except ValidationError as e: + print(e) + + def time_team_scraper(url,raceid): race = Race.objects.get(id=raceid) nr = race.crew_size diff --git a/boatmovers/templates/boatmovers.html b/boatmovers/templates/boatmovers.html index 87db2bb2..f8ab7d67 100644 --- a/boatmovers/templates/boatmovers.html +++ b/boatmovers/templates/boatmovers.html @@ -1,6 +1,20 @@ +

Boat Movers Ranking

+
+

@@ -25,6 +39,8 @@ {% endfor %}

+
+

This page is an experimental ranking based on public race results, mainly from Dutch Masters @@ -91,3 +107,4 @@ Add Result

{% endif %} +
diff --git a/db.sqlite3-journal b/db.sqlite3-journal deleted file mode 100644 index 18977d1d7cf8f4540a475472617c8437cc685ebb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12824 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 bl!L$a@N_sgV5R$D0k4TXUg8(?zXSOnyG0?u