Skip to content

Commit

Permalink
Merge pull request openedx#841 from Stanford-Online/dcadams/query_change
Browse files Browse the repository at this point in the history
Efficiency improvement for EnrollmentRosterView.
  • Loading branch information
David Adams authored Nov 21, 2018
2 parents be07695 + 2c0f726 commit 5cb45b4
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions openedx/stanford/common/djangoapps/enrollment/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,8 @@ def put(self, request, course_id):
'message': u'Invalid email address',
},
)
email_students = request.data.get('email_students', False) in ['true', 'True', True]
auto_enroll = request.data.get('auto_enroll', False) in ['true', 'True', True]
email_params = {}
language = None
if email_students:
course = get_course_by_id(course_key)
email_params = get_email_params(course, auto_enroll)
if User.objects.filter(email=email).exists():
user = User.objects.get(email=email)
language = get_user_email_language(user)

email_students, auto_enroll, email_params, language = api_params_helper(request, course_key, email)
enroll_email(
course_key, email, auto_enroll, email_students, email_params, language=language
)
Expand Down Expand Up @@ -159,17 +151,27 @@ def delete(self, request, course_id):
'message': u'Invalid email address',
},
)

email_students, auto_enroll, email_params, language = api_params_helper(request, course_key, email)
unenroll_email(
course_key, email, email_students, email_params, language=language
)
return Response(status=status.HTTP_204_NO_CONTENT)

def api_params_helper(self, request, course_key, email):
"""
Helper method to get params for enroll/unenroll apis.
"""
email_students = request.data.get('email_students', False) in ['true', 'True', True]
auto_enroll = request.data.get('auto_enroll', False) in ['true', 'True', True]
auto_enroll = request.data.get('auto_enroll', True) in ['true', 'True', True]
email_params = {}
language = None
if email_students:
course = get_course_by_id(course_key)
email_params = get_email_params(course, auto_enroll)
if User.objects.filter(email=email).exists():
try:
user = User.objects.get(email=email)
except User.DoesNotExist:
language = None
else:
language = get_user_email_language(user)
unenroll_email(
course_key, email, email_students, email_params, language=language
)
return Response(status=status.HTTP_204_NO_CONTENT)
return email_students, auto_enroll, email_params, language

0 comments on commit 5cb45b4

Please sign in to comment.