Private
Public Access
1
0

Merge branch 'release/v22.2.6'

This commit is contained in:
2024-11-11 12:36:51 +01:00
6 changed files with 65 additions and 9 deletions

View File

@@ -36,6 +36,21 @@ from rowers.models import VirtualRace
# distance of course from lat_lon in km
def pass_start(df, course):
if df.empty:
return False
def f(x):
return coordinate_in_path(x[' latitude'], x[' longitude'], p)
polygons = course.polygons.all()
p = polygon_to_path(polygons[0])
inpolygon = df.apply(lambda row:f(row), axis=1).copy()
return inpolygon.any()
def howfaris(lat_lon, course):
coords = course.coord

View File

@@ -14,7 +14,6 @@ class InvalidTrajectoryError(Exception):
def __str__(self): # pragma: no cover
return repr(self.value)
def time_in_path(df, p, maxmin='max', getall=False, name='unknown', logfile=None):
if df.empty: # pragma: no cover

View File

@@ -3727,6 +3727,18 @@ class Workout(models.Model):
elif self.workouttype in mytypes.otetypes and self.boattype in mytypes.boattypes:
self.boattype = 'static'
records = VirtualRaceResult.objects.filter(workoutid=self.pk)
for record in records:
record.boattype = self.boattype
record.boatclass = self.workouttype
record.save()
records = IndoorVirtualRaceResult.objects.filter(workoutid=self.pk)
for record in records:
record.boattype = self.boattype
record.boatclass = self.workouttype
record.save()
super(Workout, self).save(*args, **kwargs)
def __str__(self):

View File

@@ -21,6 +21,7 @@
<p>
<form method="GET" id="competitorform">
{{ dateform.as_table }}
{% for competitor in competitors %}
{% if competitor in selected_users %}
<input type="checkbox" name="users" value="{{ competitor.id|encode }}" checked>{{ competitor }}<br>

Binary file not shown.

View File

@@ -13,6 +13,7 @@ from json.decoder import JSONDecodeError
import ruptures as rpt
from rowers.courses import getnearestcourses
from rowers.courses import pass_start
from pandas.errors import IntCastingNaNError
def default(o): # pragma: no cover
@@ -1337,6 +1338,18 @@ def course_mapcompare_view(request, id=0):
except GeoCourse.DoesNotExist: # pragma: no cover
raise Http404("Course does not exist")
startdate = request.GET.get('startdate', None)
enddate = request.GET.get('enddate', None)
if startdate:
startdate = iso8601.parse_date(startdate)
else:
startdate = timezone.now()-datetime.timedelta(days=30)
if enddate:
enddate = iso8601.parse_date(enddate)
else:
enddate = timezone.now()+datetime.timedelta(days=1)
focususer = encoder.decode_hex(request.GET.get('user',None))
if focususer:
try:
@@ -1380,7 +1393,12 @@ def course_mapcompare_view(request, id=0):
selected_users = Rower.objects.filter(id__in=selected_ids)
workoutids = [result.workoutid for result in results]
#workoutids = [result.workoutid for result in results]
workoutids = []
for result in results:
w = Workout.objects.get(id=result.workoutid)
if w.startdatetime >= startdate and w.startdatetime <= enddate:
workoutids.append(result.workoutid)
startenddict = {}
@@ -1388,14 +1406,8 @@ def course_mapcompare_view(request, id=0):
startenddict[result.workoutid] = (result.startsecond, result.endsecond)
if len(workoutids) == 0: # pragma: no cover
url = reverse('course_view',
kwargs={
'id': course.id,
})
messages.info(request, 'There are no results to display')
return HttpResponseRedirect(url)
workouts = []
for id in workoutids:
@@ -1412,6 +1424,11 @@ def course_mapcompare_view(request, id=0):
labeldict=labeldict,
startenddict=startenddict)
dateform = DateRangeForm(initial={
'startdate':startdate,
'enddate':enddate,
})
breadcrumbs = [
{
'url': reverse('courses_view'),
@@ -1447,6 +1464,7 @@ def course_mapcompare_view(request, id=0):
'teams': [],
'competitors': competitors,
'selected_users': selected_users,
'dateform': dateform,
})
@@ -4602,7 +4620,12 @@ def workout_edit_view(request, id=0, message="", successmessage=""):
strict=True)
suggested_courses = list(set(courses) ^ set(suggested_courses))
s2 = []
for c in suggested_courses:
if pass_start(rowdata.df, c):
s2.append(c)
suggested_courses = s2
breadcrumbs = [
@@ -4712,6 +4735,12 @@ def workout_map_view(request, id=0):
strict=True)
suggested_courses = list(set(courses) ^ set(suggested_courses))
s2 = []
for c in suggested_courses:
if pass_start(rowdata.df, c):
s2.append(c)
suggested_courses = s2
return render(request, 'map_view.html',