Private
Public Access
1
0

better check for duplicate athletes

This commit is contained in:
Sander Roosendaal
2022-06-29 16:35:47 +02:00
parent a47ae2bc5b
commit a4926ccc72
2 changed files with 26 additions and 7 deletions

View File

@@ -33,6 +33,11 @@ class Athlete(models.Model):
return u'{f} {l}'.format(f = self.first_name, l=self.last_name)
def save(self, *args, **kwargs):
name = '{f} {l}'.format(f = self.first_name, l = self.last_name)
for a in Athlete.objects.filter(gender=self.gender):
aname = '{f} {l}'.format(f = a.first_name, l = a.last_name)
if name == aname:
raise ValidationError("Duplicate:{id}".format(id=a.id))
rating = trueskill.Rating(self.trueskill_mu, self.trueskill_sigma)
self.trueskill_exposed = trueskill.expose(rating)

View File

@@ -3,11 +3,12 @@ from bs4 import BeautifulSoup
import requests
from boatmovers.models import *
import pandas as pd
from django.core.exceptions import ValidationError
url_heineken = ''
def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos'):
def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos',gender='m'):
race = Race.objects.get(id=raceid)
nr = race.crew_size
@@ -33,14 +34,21 @@ def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos'):
first_name = 'Unknown'
last_name = 'Athlete'
athletes = Athlete.objects.filter(first_name = first_name,
last_name = last_name)
last_name = last_name,
gender=gender)
if len(athletes) >= 1:
athlete = athletes[0]
else:
athlete = Athlete(first_name=first_name,
last_name=last_name,
club = crewname)
athlete.save()
club = crewname,
gender=gender)
try:
athlete.save()
except ValidationError as e:
text, id = e.message.split(':')
athlete = Athlete.objects.get(id=id)
print(athlete)
crew.athletes.add(athlete)
@@ -56,7 +64,7 @@ def csv_reader(filename,raceid,clubcol='Ploeg',bankjes=['Slag'],uitslag='Pos'):
print(e)
def time_team_scraper(url,raceid):
def time_team_scraper(url,raceid,gender='m'):
race = Race.objects.get(id=raceid)
nr = race.crew_size
r = requests.get(url)
@@ -105,8 +113,14 @@ def time_team_scraper(url,raceid):
else:
athlete = Athlete(first_name=first_name,
last_name=last_name,
club = name)
athlete.save()
club = name,
gender=gender)
try:
athlete.save()
except ValidationError as e:
text, id = e.message.split(':')
athlete = Athlete.objects.get(id=id)
print(athlete)
crew.athletes.add(athlete)