Commit 82e31d53 by ichuang

Hookup CourseEnrollmentAllowed to lms/djangoapps/courseware/access.py

parent 97fb0544
......@@ -5,6 +5,8 @@ like DISABLE_START_DATES"""
import logging
import time
import student.models
from django.conf import settings
from xmodule.course_module import CourseDescriptor
......@@ -124,6 +126,10 @@ def _has_access_course_desc(user, course, action):
debug("Allow: in enrollment period")
return True
# if user is in CourseEnrollmentAllowed with right course_id then can also enroll
if user is not None and student.models.CourseEnrollmentAllowed.objects.filter(email=user.email, course_id=course.id):
return True
# otherwise, need staff access
return _has_staff_access_to_descriptor(user, course)
......
......@@ -335,26 +335,27 @@ def instructor_dashboard(request, course_id):
elif action == 'Enroll student':
student = request.POST.get('enstudent','')
datatable = {}
try:
nce = CourseEnrollment(user=User.objects.get(email=student), course_id=course_id)
nce.save()
msg += "Enrolled student with email '%s'" % student
except Exception as err:
msg += "Error! Failed to enroll student with email '%s'\n" % student
msg += str(err) + '\n'
ret = _do_enroll_students(course, course_id, student)
datatable = ret['datatable']
elif action == 'Un-enroll student':
student = request.POST.get('enstudent','')
datatable = {}
isok = False
cea = CourseEnrollmentAllowed.objects.filter(course_id=course_id, email=student)
if cea:
cea.delete()
msg += "Un-enrolled student with email '%s'" % student
isok = True
try:
nce = CourseEnrollment.objects.get(user=User.objects.get(email=student), course_id=course_id)
nce.delete()
msg += "Un-enrolled student with email '%s'" % student
except Exception as err:
msg += "Error! Failed to un-enroll student with email '%s'\n" % student
msg += str(err) + '\n'
if not isok:
msg += "Error! Failed to un-enroll student with email '%s'\n" % student
msg += str(err) + '\n'
elif action == 'Un-enroll ALL students':
......@@ -582,7 +583,7 @@ def get_student_grade_summary_data(request, course, course_id, get_grades=True,
if get_grades:
gradeset = grades.grade(student, request, course, keep_raw_scores=get_raw_scores)
# log.debug('student={0}, gradeset={1}'.format(student,gradeset))
log.debug('student={0}, gradeset={1}'.format(student,gradeset))
if get_raw_scores:
student_grades = [score.earned for score in gradeset['raw_scores']]
else:
......
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