adding more links to courses and selecting which users to see
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user