Private
Public Access
1
0

Now writing results

This commit is contained in:
Sander Roosendaal
2021-10-08 10:45:59 +02:00
parent 3bec1d4289
commit b497449846
3 changed files with 76 additions and 0 deletions

View File

@@ -3410,6 +3410,8 @@ class VirtualRaceResult(models.Model):
verbose_name="Skill Class")
race = models.ForeignKey(VirtualRace,on_delete=models.CASCADE,related_name='entries',
blank=True,null=True)
course = models.ForeignKey(GeoCourse,on_delete=models.CASCADE,null=True,blank=True)
duration = models.TimeField(default=datetime.time(1,0))
distance = models.IntegerField(default=0)
points = models.FloatField(default=0)

View File

@@ -540,6 +540,10 @@ def handle_check_race_course(self,
if 'mode' in kwargs: # pragma: no cover
mode = kwargs['mode']
summary = False
if 'summary' in kwargs:
summary = kwargs['summary']
columns = ['time',' latitude',' longitude','cum_dist']
try:
@@ -599,6 +603,7 @@ def handle_check_race_course(self,
courseid=courseid
)
with engine.connect() as conn, conn.begin():
result = conn.execute(query)
polygons = result.fetchall()
@@ -736,6 +741,33 @@ def handle_check_race_course(self,
with engine.connect() as conn, conn.begin():
result = conn.execute(query)
if summary:
try:
row = rdata(csvfile=f1)
except IOError: # pragma: no cover
try:
row = rdata(csvfile=f1 + '.csv')
except IOError: # pragma: no cover
try:
row = rdata(csvfile=f1 + '.gz')
except IOError: # pragma: no cover
pass
vals, units, typ = row.updateinterval_metric(
' AverageBoatSpeed (m/s)',0.1,mode='larger',
debug=False,smoothwindow=15.,
activewindow=[startsecond,endsecond]
)
summary = row.allstats()
row.write_csv(f1,gzip=True)
query = "UPDATE `rowers_workout` SET `summary` = '%s' WHERE `id` = %s" % (summary, workoutid)
with engine.connect() as conn, conn.begin():
result = conn.execute(query)
conn.close()
engine.dispose()

View File

@@ -6168,6 +6168,48 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
powerupdateform = PowerIntervalUpdateForm(initial=data)
if request.method == 'POST' and "course" in request.POST:
courseselectform = CourseSelectForm(request.POST,choices=courses)
if courseselectform.is_valid():
course = courseselectform.cleaned_data['course']
# get or create a record
records = VirtualRaceResult.objects.filter(
userid=r.id,
course=course,
workoutid=row.id
)
if records:
record = records[0]
else:
# create record
record = VirtualRaceResult(
userid = r.id,
username = r.user.first_name+' '+r.user.last_name,
workoutid = row.id,
weightcategory = r.weightcategory,
adaptiveclass = r.adaptiveclass,
course = course,
distance = course.distance,
boatclass = row.workouttype,
boattype = row.boattype,
sex = r.sex,
age = calculate_age(r.birthdate),
)
record.save()
job = myqueue(
queue,
handle_check_race_course,
row.csvfilename,
row.id,
course.id,
record.id,
r.user.email,
r.user.first_name,
summary=True,
)
messages.info(request,'We are checking your time on the course in the background')
# feeling lucky / ruptures
if request.method == 'POST' and "ruptures" in request.POST:
df = pd.DataFrame({