Private
Public Access
1
0

courses functionality

This commit is contained in:
Sander Roosendaal
2018-02-21 12:57:46 +01:00
parent d3e3925625
commit 289d3fc2cc
13 changed files with 322 additions and 62 deletions

View File

@@ -62,7 +62,7 @@ from rowers.models import (
Team,TeamForm,TeamInviteForm,TeamInvite,TeamRequest,
WorkoutComment,WorkoutCommentForm,RowerExportForm,
CalcAgePerformance,PowerTimeFitnessMetric,PlannedSessionForm,
PlannedSessionFormSmall,
PlannedSessionFormSmall,GeoCourseEditForm,
)
from rowers.models import (
FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement,BasePlannedSessionFormSet
@@ -6051,9 +6051,20 @@ def boxplot_view(request,userid=0,
def courses_view(request):
r = getrower(request.user)
courses = GeoCourse.objects.all().order_by("country")
courses = GeoCourse.objects.all().order_by("country","name")
# add search processing
query = request.GET.get('q')
if query:
query_list = query.split()
courses = GeoCourse.objects.filter(
reduce(operator.and_,
(Q(name__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(country__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(notes__icontains=q) for q in query_list))
)
return render(request,'list_courses.html',
{'courses':courses,
@@ -8444,7 +8455,40 @@ def course_edit_view(request,id=0):
ps = PlannedSession.objects.filter(course=course)
nosessions = len(ps) == 0
script,div = course_map(course)
if request.method == 'POST':
form = GeoCourseEditForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
notes = form.cleaned_data['notes']
course.name = name
course.notes = notes
course.save()
form = GeoCourseEditForm(instance=course)
return render(request, 'course_edit_view.html',
{
'course':course,
'mapscript':script,
'mapdiv':div,
'nosessions':nosessions,
'rower':r,
'form':form,
}
)
@login_required()
def course_view(request,id=0):
try:
course = GeoCourse.objects.get(id=id)
except GeoCourse.DoesNotExist:
return Http404("Course doesn't exist")
r = getrower(request.user)
script,div = course_map(course)
@@ -8453,7 +8497,8 @@ def course_edit_view(request,id=0):
'course':course,
'mapscript':script,
'mapdiv':div,
'nosessions':nosessions,
'nosessions':False,
'rower':r,
}
)
@@ -8945,9 +8990,15 @@ def course_upload_view(request):
if f is not None:
filename,path_and_filename = handle_uploaded_file(f)
polygons = courses.kmltocourse(path_and_filename)
cs = courses.kmltocourse(path_and_filename)
course = courses.createcourse(r,name,polygons,notes=notes)
for course in cs:
cname = name+' - '+course['name']
cnotes = notes+'\n\n'+course['description']
polygons = course['polygons']
course = courses.createcourse(r,cname,polygons,notes=cnotes)
os.remove(path_and_filename)
url = reverse(courses_view)
@@ -12571,6 +12622,12 @@ def plannedsession_view(request,id=0,rowerid=0,
raise Http404("Planned Session does not exist")
if ps.course:
coursescript,coursediv = course_map(ps.course)
else:
coursescript = ''
coursediv = ''
if ps.manager != request.user and r not in ps.rower.all():
raise PermissionDenied("You do not have access to this session")
@@ -12623,6 +12680,8 @@ def plannedsession_view(request,id=0,rowerid=0,
'plannedsession':ps,
'timeperiod':timeperiod,
'ranking':ranking,
'coursescript': coursescript,
'coursediv': coursediv
}
)