courses and challenges small improvements
This commit is contained in:
@@ -7,11 +7,34 @@ from rowers.views.statements import *
|
||||
from rowsandall_app.settings import SITE_URL
|
||||
from rowers.scoring import *
|
||||
|
||||
from django.contrib.gis.geoip2 import GeoIP2
|
||||
|
||||
# List Courses
|
||||
def courses_view(request):
|
||||
r = getrower(request.user)
|
||||
g = GeoIP2()
|
||||
ip = request.META.get('REMOTE_ADDR')
|
||||
try:
|
||||
lat_lon = g.lat_lon(ip)
|
||||
city = g.city(ip)
|
||||
except:
|
||||
lat_lon = None
|
||||
city = None
|
||||
|
||||
|
||||
courses = GeoCourse.objects.all().order_by("country","name","distance")
|
||||
nearby = request.GET.get('nearby')
|
||||
|
||||
if nearby and lat_lon is not None:
|
||||
newlist = []
|
||||
for c in courses:
|
||||
coords = c.coord
|
||||
distance = geo_distance(lat_lon[0],lat_lon[1],coords[0],coords[1])[0]
|
||||
if distance < 100:
|
||||
newlist.append(c)
|
||||
courses = newlist
|
||||
|
||||
|
||||
courses = GeoCourse.objects.all().order_by("country","name")
|
||||
|
||||
# add search processing
|
||||
query = request.GET.get('q')
|
||||
@@ -34,6 +57,7 @@ def courses_view(request):
|
||||
'active':'nav-racing',
|
||||
'searchform':searchform,
|
||||
'rower':r,
|
||||
'location':lat_lon,
|
||||
})
|
||||
|
||||
# List Courses
|
||||
@@ -116,7 +140,7 @@ def course_replace_view(request,id=0):
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
thecourses = GeoCourse.objects.filter(manager=r).exclude(id=id)
|
||||
#thecourses = GeoCourse.objects.filter(manager=r).exclude(id=id)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = CourseSelectForm(request.POST)
|
||||
@@ -132,8 +156,8 @@ def course_replace_view(request,id=0):
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
|
||||
form = CourseSelectForm()
|
||||
form.fields["course"].queryset = thecourses
|
||||
form = CourseSelectForm(course=course,manager=r)
|
||||
#form.fields["course"].queryset = thecourses
|
||||
|
||||
script,div = course_map(course)
|
||||
|
||||
@@ -646,6 +670,15 @@ def virtualevents_view(request):
|
||||
if request.is_ajax():
|
||||
is_ajax = True
|
||||
|
||||
g = GeoIP2()
|
||||
ip = request.META.get('REMOTE_ADDR')
|
||||
try:
|
||||
lat_lon = g.lat_lon(ip)
|
||||
city = g.city(ip)
|
||||
except:
|
||||
lat_lon = None
|
||||
city = None
|
||||
|
||||
# default races
|
||||
races1 = VirtualRace.objects.filter(
|
||||
startdate__gte=datetime.date.today(),
|
||||
@@ -656,6 +689,8 @@ def virtualevents_view(request):
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
races = (races1 | races2).order_by("startdate","start_time")
|
||||
|
||||
if len(races) == 0:
|
||||
@@ -718,10 +753,26 @@ def virtualevents_view(request):
|
||||
else:
|
||||
form = VirtualRaceSelectForm()
|
||||
|
||||
nearby = request.GET.get('nearby')
|
||||
if nearby and lat_lon is not None:
|
||||
newlist = []
|
||||
for race in races:
|
||||
if race.course is None:
|
||||
newlist.append(race)
|
||||
else:
|
||||
c = race.course
|
||||
coords = c.coord
|
||||
distance = geo_distance(lat_lon[0],lat_lon[1],coords[0],coords[1])[0]
|
||||
if distance < 100:
|
||||
newlist.append(race)
|
||||
|
||||
races = newlist
|
||||
|
||||
if is_ajax:
|
||||
return render(request,'racelist.html',
|
||||
{ 'races':races,
|
||||
'rower':r,
|
||||
'location': lat_lon,
|
||||
})
|
||||
|
||||
breadcrumbs = [
|
||||
@@ -737,6 +788,7 @@ def virtualevents_view(request):
|
||||
'breadcrumbs':breadcrumbs,
|
||||
'active':'nav-racing',
|
||||
'rower':r,
|
||||
'location': lat_lon,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user