def get_credit_requirement_status(course_key, username, namespace=None, name=None): """ Retrieve the user's status for each credit requirement in the course. Args: course_key (CourseKey): The identifier for course username (str): The identifier of the user Example: >>> get_credit_requirement_status("course-v1-edX-DemoX-1T2015", "john") [ { "namespace": "reverification", "name": "i4x://edX/DemoX/edx-reverification-block/assessment_uuid", "display_name": "In Course Reverification", "criteria": {}, "reason": {}, "status": "failed", "status_date": "2015-06-26 07:49:13", }, { "namespace": "proctored_exam", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Proctored Mid Term Exam", "criteria": {}, "reason": {}, "status": "satisfied", "status_date": "2015-06-26 11:07:42", }, { "namespace": "grade", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Minimum Passing Grade", "criteria": {"min_grade": 0.8}, "reason": {"final_grade": 0.95}, "status": "satisfied", "status_date": "2015-06-26 11:07:44", }, ] Returns: list of requirement statuses """ requirements = CreditRequirement.get_course_requirements(course_key, namespace=namespace, name=name) requirement_statuses = CreditRequirementStatus.get_statuses(requirements, username) requirement_statuses = dict((o.requirement, o) for o in requirement_statuses) statuses = [] for requirement in requirements: requirement_status = requirement_statuses.get(requirement) statuses.append({ "namespace": requirement.namespace, "name": requirement.name, "display_name": requirement.display_name, "criteria": requirement.criteria, "reason": requirement_status.reason if requirement_status else None, "status": requirement_status.status if requirement_status else None, "status_date": requirement_status.modified if requirement_status else None, }) return statuses
def get_credit_requirement_status(course_key, username, namespace=None, name=None): """ Retrieve the user's status for each credit requirement in the course. Args: course_key (CourseKey): The identifier for course username (str): The identifier of the user Example: >>> get_credit_requirement_status("course-v1-edX-DemoX-1T2015", "john") [ { "namespace": "proctored_exam", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Proctored Mid Term Exam", "criteria": {}, "reason": {}, "status": "satisfied", "status_date": "2015-06-26 11:07:42", "order": 1, }, { "namespace": "grade", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Minimum Passing Grade", "criteria": {"min_grade": 0.8}, "reason": {"final_grade": 0.95}, "status": "satisfied", "status_date": "2015-06-26 11:07:44", "order": 2, }, ] Returns: list of requirement statuses """ requirements = CreditRequirement.get_course_requirements(course_key, namespace=namespace, name=name) requirement_statuses = CreditRequirementStatus.get_statuses(requirements, username) requirement_statuses = {o.requirement: o for o in requirement_statuses} statuses = [] for requirement in requirements: requirement_status = requirement_statuses.get(requirement) statuses.append({ "namespace": requirement.namespace, "name": requirement.name, "display_name": requirement.display_name, "criteria": requirement.criteria, "reason": requirement_status.reason if requirement_status else None, "status": requirement_status.status if requirement_status else None, "status_date": requirement_status.modified if requirement_status else None, # We retain the old name "order" in the API because changing APIs takes a lot more coordination. "order": requirement.sort_value, }) return statuses
def get_credit_requirement_status(course_key, username, namespace=None, name=None): """ Retrieve the user's status for each credit requirement in the course. Args: course_key (CourseKey): The identifier for course username (str): The identifier of the user Example: >>> get_credit_requirement_status("course-v1-edX-DemoX-1T2015", "john") [ { "namespace": "reverification", "name": "i4x://edX/DemoX/edx-reverification-block/assessment_uuid", "display_name": "In Course Reverification", "criteria": {}, "reason": {}, "status": "failed", "status_date": "2015-06-26 07:49:13", "order": 0, }, { "namespace": "proctored_exam", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Proctored Mid Term Exam", "criteria": {}, "reason": {}, "status": "satisfied", "status_date": "2015-06-26 11:07:42", "order": 1, }, { "namespace": "grade", "name": "i4x://edX/DemoX/proctoring-block/final_uuid", "display_name": "Minimum Passing Grade", "criteria": {"min_grade": 0.8}, "reason": {"final_grade": 0.95}, "status": "satisfied", "status_date": "2015-06-26 11:07:44", "order": 2, }, ] Returns: list of requirement statuses """ requirements = CreditRequirement.get_course_requirements(course_key, namespace=namespace, name=name) requirement_statuses = CreditRequirementStatus.get_statuses(requirements, username) requirement_statuses = dict((o.requirement, o) for o in requirement_statuses) statuses = [] for requirement in requirements: requirement_status = requirement_statuses.get(requirement) statuses.append({ "namespace": requirement.namespace, "name": requirement.name, "display_name": requirement.display_name, "criteria": requirement.criteria, "reason": requirement_status.reason if requirement_status else None, "status": requirement_status.status if requirement_status else None, "status_date": requirement_status.modified if requirement_status else None, "order": requirement.order, }) return statuses