Files
edx-platform/common/djangoapps/enrollment/data.py
stephensanchez f01e5268b4 Initial setup for new enrollment API
Quick tweaks to the API

Aggregating course modes data.

Fixing the POST request endpoints.
2014-10-20 20:26:31 +00:00

49 lines
1.5 KiB
Python

"""
Data Aggregation Layer of the Enrollment API. Collects all enrollment specific data into a single
source to be used throughout the API.
"""
from django.contrib.auth.models import User
from opaque_keys.edx.keys import CourseKey
from enrollment.serializers import CourseEnrollmentSerializer
from student.models import CourseEnrollment
def get_course_enrollments(student_id):
qset = CourseEnrollment.objects.filter(
user__username=student_id, is_active=True
).order_by('created')
return CourseEnrollmentSerializer(qset).data
def get_course_enrollment(student_id, course_id):
course_key = CourseKey.from_string(course_id)
try:
enrollment = CourseEnrollment.objects.get(
user__username=student_id, course_id=course_key
)
return CourseEnrollmentSerializer(enrollment).data
except CourseEnrollment.DoesNotExist:
return None
def update_course_enrollment(student_id, course_id, mode=None, is_active=None):
course_key = CourseKey.from_string(course_id)
student = User.objects.get(username=student_id)
if not CourseEnrollment.is_enrolled(student, course_key):
enrollment = CourseEnrollment.enroll(student, course_key)
else:
enrollment = CourseEnrollment.objects.get(user=student, course_id=course_key)
enrollment.update_enrollment(is_active=is_active, mode=mode)
enrollment.save()
return CourseEnrollmentSerializer(enrollment).data
def get_course_enrollment_info(course_id):
pass
def get_course_enrollments_info(student_id):
pass