better check for duplicate athletes
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user