Now writing results
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user