From 813a8d86df094fbb342b7f11f68a1718f267c1c2 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Fri, 5 Apr 2024 13:06:39 +0200
Subject: [PATCH] fixes
---
rowers/templates/courses_challenges.html | 2 +-
rowers/tests/testdata/testdata.tcx.gz | Bin 4001 -> 4000 bytes
rowers/views/racesviews.py | 27 +++++++++++++++++------
3 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/rowers/templates/courses_challenges.html b/rowers/templates/courses_challenges.html
index 7c83ed87..dec869a1 100644
--- a/rowers/templates/courses_challenges.html
+++ b/rowers/templates/courses_challenges.html
@@ -48,7 +48,7 @@
- Challenges page
+ All Active Challenges
Nearby Challenges
diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz
index 1c7631ef1d42f6dbcb77fdaa4138395b664ea591..17b31447d2626ed92aaf111d21d34387eaeb8222 100644
GIT binary patch
delta 257
zcmV+c0sj7>AD|xwABzYGrrEIust$kRix;#+M+Dy;_dgyib_d+qo$2Fm%%3kmt#;oZ
zJh(_4&n`af`?O1M&&Ao>O}Bp8ot$i+R{FSFAHVGSE}ggAyRK|D;Q1XTfpR&tLDh
zTBprkKJB;NaQSGzIRC-(bkm2wEl-x+W|=tTPahuLmHRq)+^vrvJv{v7X=bzibGQB1
z^cFvTefnaV?hN1ufZhKGiz{F3p8WPP9p2fZUaiw}c#u#oFCM0+@giON@Xr4LjbD`r
H#DD<+@tThp
delta 258
zcmV+d0sa1g46+&;32UkLl1W59h;{C*6P2C9`s~;OghE
zcU!H~W-p)i+itjgv|pV6;CZ^~!{3%C%Wktw9P+0RkM7ES9X#&V$B!N!{_-@l+5WlP
z{%d-RpT0hQu}pUc@B_f^|AWPqFLqCU`zY*DY)={Y<|D3=!x)6;m7E`50Cf1FwE
Iw#0w|0Ot#om;e9(
diff --git a/rowers/views/racesviews.py b/rowers/views/racesviews.py
index 86294801..860c58cd 100644
--- a/rowers/views/racesviews.py
+++ b/rowers/views/racesviews.py
@@ -32,7 +32,10 @@ def courses_challenges_view(request):
liked_courses = GeoCourse.objects.filter(followers=r)
courses = GeoCourse.objects.filter(id__in=[course.id for course in nearby_courses]) | liked_courses
- courses = sample(list(courses),3)
+ if courses.count() >= 3:
+ courses = sample(list(courses),3)
+ else:
+ courses = GeoCourse.objects.all().order_by("country", "name", "distance")
coursesdicts = []
for course in courses:
@@ -43,17 +46,27 @@ def courses_challenges_view(request):
'div': div,
})
+ allchallenges = VirtualRace.objects.all().order_by("-startdate")
+ totalnrchallenges = allchallenges.count()
challenges = VirtualRace.objects.filter(startdate__gte=timezone.now())
challenges2 = VirtualRace.objects.filter(startdate__lte=timezone.now(),
evaluation_closure__gte=timezone.now()-datetime.timedelta(days=3))
- challenges = challenges | challenges2
- while len(challenges) < 3:
- allchallenges = VirtualRace.objects.all().order_by("-startdate")
- challenges = list(challenges)+sample(list(allchallenges), 3-len(challenges))
- challenges = list(set(challenges))
+ challenges = challenges | challenges2
+ count = 3
+ if totalnrchallenges > count:
+ allchallenges = list(allchallenges)
+ while len(challenges) < count:
+ try:
+ challenges = list(challenges)+sample(allchallenges, count-len(challenges))
+ except ValueError:
+ count = count-1
+ challenges = list(set(challenges))
+ else:
+ challenges = VirtualRace.objects.all()
+ count = challenges.count()
- challenges = sample(list(challenges),3)
+ challenges = sample(list(challenges),count)
challengesdicts = []
for challenge in challenges: