Commit eac0d7cc by David Ormsbee

Merge pull request #502 from MITx/pmitros/berkeley_enrollment_hack

Enrollment hack for allowing Berkeley to add their students.
parents 473fd9b0 bcba20a3
...@@ -393,3 +393,44 @@ def instructor_dashboard(request, course_id): ...@@ -393,3 +393,44 @@ def instructor_dashboard(request, course_id):
context = {'course': course, context = {'course': course,
'staff_access': True,} 'staff_access': True,}
return render_to_response('courseware/instructor_dashboard.html', context) 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})
<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: ...@@ -154,7 +154,8 @@ if settings.COURSEWARE_ENABLED:
'courseware.views.gradebook', name='gradebook'), 'courseware.views.gradebook', name='gradebook'),
url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/grade_summary$', url(r'^courses/(?P<course_id>[^/]+/[^/]+/[^/]+)/grade_summary$',
'courseware.views.grade_summary', name='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 # discussion forums live within courseware, so courseware must be enabled first
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment