Commit 82e31d53 by ichuang

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

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