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 18977d1d..00000000 Binary files a/db.sqlite3-journal and /dev/null differ