adding courses upload and course delete
This commit is contained in:
@@ -27,7 +27,7 @@ from django.http import (
|
||||
)
|
||||
from django.contrib.auth import authenticate, login, logout
|
||||
from rowers.forms import (
|
||||
LoginForm,DocumentsForm,UploadOptionsForm,ImageForm,
|
||||
LoginForm,DocumentsForm,UploadOptionsForm,ImageForm,CourseForm,
|
||||
TeamUploadOptionsForm,WorkFlowLeftPanelForm,WorkFlowMiddlePanelForm,
|
||||
WorkFlowLeftPanelElement,WorkFlowMiddlePanelElement,
|
||||
LandingPageForm,PlannedSessionSelectForm,WorkoutSessionSelectForm,
|
||||
@@ -69,6 +69,7 @@ from rowers.models import (
|
||||
)
|
||||
from rowers.metrics import rowingmetrics,defaultfavoritecharts
|
||||
from rowers import metrics
|
||||
from rowers import courses
|
||||
import rowers.uploads as uploads
|
||||
from django.forms.formsets import formset_factory
|
||||
from django.forms import modelformset_factory
|
||||
@@ -6052,6 +6053,8 @@ def courses_view(request):
|
||||
|
||||
courses = GeoCourse.objects.all().order_by("country")
|
||||
|
||||
# add search processing
|
||||
|
||||
return render(request,'list_courses.html',
|
||||
{'courses':courses,
|
||||
'rower':r,
|
||||
@@ -8405,6 +8408,28 @@ def workout_comment_view(request,id=0):
|
||||
'form':form,
|
||||
})
|
||||
|
||||
@login_required()
|
||||
def course_delete_view(request,id=0):
|
||||
try:
|
||||
course = GeoCourse.objects.get(id=id)
|
||||
except GeoCourse.DoesNotExist:
|
||||
return Http404("Course doesn't exist")
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if course.manager != r:
|
||||
raise PermissionDenied("Access denied")
|
||||
|
||||
ps = PlannedSession.objects.filter(course=course)
|
||||
nosessions = len(ps) == 0
|
||||
|
||||
if nosessions:
|
||||
course.delete()
|
||||
|
||||
url = reverse(courses_view)
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
@login_required()
|
||||
def course_edit_view(request,id=0):
|
||||
try:
|
||||
@@ -8412,7 +8437,15 @@ def course_edit_view(request,id=0):
|
||||
except GeoCourse.DoesNotExist:
|
||||
return Http404("Course doesn't exist")
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if course.manager != r:
|
||||
raise PermissionDenied("Access denied")
|
||||
|
||||
ps = PlannedSession.objects.filter(course=course)
|
||||
nosessions = len(ps) == 0
|
||||
|
||||
|
||||
script,div = course_map(course)
|
||||
|
||||
return render(request, 'course_view.html',
|
||||
@@ -8420,6 +8453,7 @@ def course_edit_view(request,id=0):
|
||||
'course':course,
|
||||
'mapscript':script,
|
||||
'mapdiv':div,
|
||||
'nosessions':nosessions,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -8892,6 +8926,58 @@ def workout_uploadimage_view(request,id):
|
||||
else:
|
||||
return {'result':0}
|
||||
|
||||
# Image upload
|
||||
@login_required()
|
||||
def course_upload_view(request):
|
||||
is_ajax = False
|
||||
if request.is_ajax():
|
||||
is_ajax = True
|
||||
|
||||
r = getrower(request.user)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = CourseForm(request.POST,request.FILES)
|
||||
|
||||
if form.is_valid():
|
||||
f = form.cleaned_data['file']
|
||||
name = form.cleaned_data['name']
|
||||
notes = form.cleaned_data['notes']
|
||||
if f is not None:
|
||||
filename,path_and_filename = handle_uploaded_file(f)
|
||||
|
||||
polygons = courses.kmltocourse(path_and_filename)
|
||||
|
||||
course = courses.createcourse(r,name,polygons,notes=notes)
|
||||
os.remove(path_and_filename)
|
||||
|
||||
url = reverse(courses_view)
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':1,'url':url})
|
||||
else:
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
messages.error(request,'Something went wrong - no file attached')
|
||||
url = reverse(course_upload_view)
|
||||
|
||||
if is_ajax:
|
||||
return JSONResponse({'result':0,'url':0})
|
||||
else:
|
||||
return HttpResponseRedirect(url)
|
||||
else:
|
||||
messages.error(request,'Form is not valid')
|
||||
return render(request,'course_form.html',
|
||||
{'form':form,
|
||||
})
|
||||
|
||||
else:
|
||||
if not is_ajax:
|
||||
form = CourseForm()
|
||||
return render(request,'course_form.html',
|
||||
{'form':form,
|
||||
})
|
||||
else:
|
||||
return {'result':0}
|
||||
|
||||
|
||||
|
||||
# Generic chart creation
|
||||
|
||||
Reference in New Issue
Block a user