Merge pull request #502 from MITx/pmitros/berkeley_enrollment_hack
Enrollment hack for allowing Berkeley to add their students.
This commit is contained in:
@@ -393,3 +393,44 @@ def instructor_dashboard(request, course_id):
|
||||
context = {'course': course,
|
||||
'staff_access': True,}
|
||||
return render_to_response('courseware/instructor_dashboard.html', context)
|
||||
|
||||
@ensure_csrf_cookie
|
||||
@cache_control(no_cache=True, no_store=True, must_revalidate=True)
|
||||
def enroll_students(request, course_id):
|
||||
''' Allows a staff member to enroll students in a course.
|
||||
|
||||
This is a short-term hack for Berkeley courses launching fall
|
||||
2012. In the long term, we would like functionality like this, but
|
||||
we would like both the instructor and the student to agree. Right
|
||||
now, this allows any instructor to add students to their course,
|
||||
which we do not want.
|
||||
|
||||
It is poorly written and poorly tested, but it's designed to be
|
||||
stripped out.
|
||||
'''
|
||||
|
||||
course = get_course_with_access(request.user, course_id, 'staff')
|
||||
existing_students = [ce.user.email for ce in CourseEnrollment.objects.filter(course_id = course_id)]
|
||||
|
||||
if 'new_students' in request.POST:
|
||||
new_students = request.POST['new_students'].split('\n')
|
||||
else:
|
||||
new_students = []
|
||||
new_students = [s.strip() for s in new_students]
|
||||
|
||||
added_students = []
|
||||
rejected_students = []
|
||||
|
||||
for student in new_students:
|
||||
try:
|
||||
nce = CourseEnrollment(user=User.objects.get(email = student), course_id = course_id)
|
||||
nce.save()
|
||||
added_students.append(student)
|
||||
except:
|
||||
rejected_students.append(student)
|
||||
|
||||
return render_to_response("enroll_students.html", {'course':course_id,
|
||||
'existing_students': existing_students,
|
||||
'added_students': added_students,
|
||||
'rejected_students': rejected_students,
|
||||
'debug':new_students})
|
||||
|
||||
29
lms/templates/enroll_students.html
Normal file
29
lms/templates/enroll_students.html
Normal file
@@ -0,0 +1,29 @@
|
||||
<h1>Student Enrollment Form </h1>
|
||||
|
||||
<p> Course: ${ course }
|
||||
|
||||
<form method="POST">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" value="${ csrf_token }">
|
||||
<h2> Add new students </h2>
|
||||
<textarea name="new_students">
|
||||
</textarea>
|
||||
<input type="submit">
|
||||
</form>
|
||||
|
||||
<p> Existing students:
|
||||
|
||||
<p> ${ existing_students }
|
||||
|
||||
<p> New students added:
|
||||
${ added_students }
|
||||
|
||||
<p> Students rejected:
|
||||
${ rejected_students }
|
||||
|
||||
<p> Debug:
|
||||
<p> ${ debug }
|
||||
|
||||
|
||||
<p> foo
|
||||
<p> bar
|
||||
<p> biff
|
||||
@@ -154,7 +154,8 @@ if settings.COURSEWARE_ENABLED:
|
||||
'courseware.views.gradebook', name='gradebook'),
|
||||
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/grade_summary$',
|
||||
'courseware.views.grade_summary', name='grade_summary'),
|
||||
|
||||
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/enroll_students$',
|
||||
'courseware.views.enroll_students', name='enroll_students'),
|
||||
)
|
||||
|
||||
# discussion forums live within courseware, so courseware must be enabled first
|
||||
|
||||
Reference in New Issue
Block a user