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: