Private
Public Access
1
0

adding more links to courses and selecting which users to see

This commit is contained in:
2024-10-31 16:03:48 +01:00
parent 11e5a851e1
commit f1cf8d47c0
5 changed files with 89 additions and 1 deletions

View File

@@ -1337,12 +1337,49 @@ def course_mapcompare_view(request, id=0):
except GeoCourse.DoesNotExist: # pragma: no cover
raise Http404("Course does not exist")
focususer = encoder.decode_hex(request.GET.get('user',None))
if focususer:
try:
focususer = Rower.objects.get(id=focususer).id
except Rower.DoesNotExist:
focususer = None
focususers = request.GET.getlist('users',[])
focususers = [encoder.decode_hex(f) for f in focususers]
results = VirtualRaceResult.objects.filter(
course=course,
workoutid__isnull=False,
coursecompleted=True,
).order_by("distance", "duration")
competitor_ids = []
for result in results:
if result.userid not in competitor_ids:
competitor_ids.append(result.userid)
competitors = Rower.objects.filter(id__in=competitor_ids)
if focususer:
results2 = results.filter(userid=focususer)
else:
results2 = VirtualRaceResult.objects.none()
if focususers:
results3 = results.filter(userid__in=focususers)
else:
results3 = VirtualRaceResult.objects.none()
if results2 or results3:
results = results2 | results3
selected_ids = []
for result in results:
if result.userid not in selected_ids:
selected_ids.append(result.userid)
selected_users = Rower.objects.filter(id__in=selected_ids)
workoutids = [result.workoutid for result in results]
startenddict = {}
@@ -1407,7 +1444,9 @@ def course_mapcompare_view(request, id=0):
'results': results,
'active': 'nav-racing',
'teamid': 0,
'teams': []
'teams': [],
'competitors': competitors,
'selected_users': selected_users,
})
@@ -4660,6 +4699,21 @@ def workout_map_view(request, id=0):
if request.user == w.user.user:
mayedit = 1
records = VirtualRaceResult.objects.filter(
workoutid=w.id, userid=w.user.user.id, coursecompleted=True
)
courses = []
if records.count() > 0:
courses = list(set([record.course for record in records]))
has_latlon, lat_mean, lon_mean = dataprep.workout_has_latlon(w.id)
suggested_courses = getnearestcourses([lat_mean, lon_mean], GeoCourse.objects.all(), whatisnear=25,
strict=True)
suggested_courses = list(set(courses) ^ set(suggested_courses))
return render(request, 'map_view.html',
{'mapscript': mapscript,
'workout': w,
@@ -4668,6 +4722,8 @@ def workout_map_view(request, id=0):
'active': 'nav-workouts',
'mapdiv': mapdiv,
'mayedit': mayedit,
'courses': courses,
'suggested_courses': suggested_courses,
})