Example #1
0
    def membership(cls, course, user):
        roles = []
        extensions = {}

        course_role = user.get_course_role(course.id)
        if course_role in [
                CourseRole.instructor, CourseRole.teaching_assistant
        ]:
            roles.append("Instructor")
        if course_role == CourseRole.teaching_assistant:
            roles.append("Instructor#TeachingAssistant")
        if course_role == CourseRole.student:
            roles.append("Learner")
        if user.system_role == SystemRole.sys_admin:
            roles.append("Administrator")

        if course.lti_has_sis_data:
            sis_data = course.lti_sis_data
            extensions['sis_courses'] = []
            for sis_course_id, sis_section_ids in sis_data.items():
                extensions['sis_courses'].append({
                    'id': sis_course_id,
                    'section_ids': sis_section_ids
                })

        return caliper.entities.Membership(
            id=ResourceIRI.user_membership(course.uuid, user.uuid),
            member=CaliperActor.generate_actor(user),
            organization=ResourceIRI.course(course.uuid),
            roles=roles if len(roles) > 0 else None,
            status="Active"
            if course_role != CourseRole.dropped else "Inactive",
            extensions=extensions)
Example #2
0
    def membership(cls, course, user):
        membership = {
            "id": ResourceIRI.user_membership(course.uuid, user.uuid),
            "type": CALIPER_ENTITY_TYPES["MEMBERSHIP"],
            "member": CaliperActor.generate_actor(user),
            "organization": ResourceIRI.course(course.uuid),
            "status": "Active",
            "extensions": {}
        }

        roles = []
        course_role = user.get_course_role(course.id)
        if course_role in [CourseRole.instructor, CourseRole.teaching_assistant]:
            roles.append("Instructor")
        if course_role == CourseRole.teaching_assistant:
            roles.append("Instructor#TeachingAssistant")
        if course_role == CourseRole.student:
            roles.append("Learner")
        if user.system_role == SystemRole.sys_admin:
            roles.append("Administrator")

        if len(roles) > 0:
            membership["roles"] = roles

        if course_role == CourseRole.dropped:
            membership['status'] = "Inactive"

        if course.lti_has_sis_data:
            sis_data = course.lti_sis_data
            membership['extensions']['sis_courses'] = []
            membership['extensions']['sis_sections'] = []
            for sis_course_id, sis_section_ids in sis_data.items():
                membership['extensions']['sis_courses'].append(ResourceIRI.sis_course(sis_course_id))

                for sis_section_id in sis_section_ids:
                    membership['extensions']['sis_sections'].append(ResourceIRI.sis_section(sis_course_id, sis_section_id))

            sis_course_id = list(sis_data.keys())[0]
            sis_section_id = sis_data[sis_course_id][0]
            membership['organization'] = cls.course_section(sis_course_id, sis_section_id)

        return membership