Private
Public Access
1
0

new courses landing page

This commit is contained in:
2024-04-05 12:23:10 +02:00
parent 8415578b07
commit c4f965070e
5 changed files with 193 additions and 7 deletions

View File

@@ -8,10 +8,86 @@ from django import forms
from rowers.plannedsessions import timefield_to_seconds_duration
from rowers.courses import getnearestraces, getnearestcourses,coursetokml, coursestokml
from random import sample
# landing page for challenges & courses
def courses_challenges_view(request):
r = getrower(request.user)
g = GeoIP2()
ip = request.META.get('HTTP_X_REAL_IP', '1.1.1.1')
try:
lat_lon = g.lat_lon(ip)
city = g.city(ip)
except: # pragma: no cover
lat_lon = None
city = {
'city': '',
'country_name': '',
'time_zone': '',
}
courses = GeoCourse.objects.all().order_by("country", "name", "distance")
nearby_courses = getnearestcourses(lat_lon, courses, whatisnear=2000)
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)
coursesdicts = []
for course in courses:
script, div = course_map(course)
coursesdicts.append({
'course': course,
'script': script,
'div': div,
})
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 = sample(list(challenges),3)
challengesdicts = []
for challenge in challenges:
script = ''
div = ''
if challenge.course:
script, div = course_map(challenge.course)
challengesdicts.append(
{
'script': script,
'div': div,
'challenge': challenge,
}
)
breadcrumbs = [
{
'url': reverse('courses_challenges_view'),
'name': 'Courses and Challenges'
}
]
return render(request, "courses_challenges.html",
{
'coursesdicts': coursesdicts,
'rower': r,
'challengesdicts': challengesdicts,
'breadcrumbs': breadcrumbs,
})
# List Courses
def courses_view(request):
r = getrower(request.user)
g = GeoIP2()