Example #1
0
def create_courseref(request):
    """
    Create CourseRef and Course entry based on context_title.
    """
    request_dict = request.session['LTI_POST']
    if not request.session.get('is_valid'):
        return redirect(reverse('ct:home'))
    context_id = request_dict.get('context_id')
    roles_from_request = request_dict.get('roles', '').split(',')
    roles = list(set((ROLES_MAP.get(role, Role.ENROLLED) for role in roles_from_request)))
    # Make sure this context_id is not used
    course_ref = CourseRef.objects.filter(context_id=context_id).first()
    if course_ref:
        if Role.INSTRUCTOR in roles:
            return redirect(reverse('ct:course', args=(course_ref.course.id,)))
        else:
            return redirect(reverse('ct:home'))

    course = Course(
        title=request_dict.get('context_title', 'Course title for %s' % context_id),
        addedBy=request.user
    )
    course.save()
    role = Role(role=Role.INSTRUCTOR, course=course, user=request.user)
    role.save()
    course_id = course.id
    course_ref = CourseRef(
        course=course,
        context_id=context_id,
        tc_guid=request_dict.get('tool_consumer_instance_guid', request.META.get('HTTP_HOST'))
    )
    course_ref.save()
    course_ref.instructors.add(request.user)

    return redirect(reverse('ct:edit_course', args=(course_id,)))
Example #2
0
class LTITestCase(TestCase):
    def setUp(self):
        """
        Preconditions.
        """
        self.client = Client()
        self.user = User.objects.create_user('test', '*****@*****.**', 'test')

        mocked_nonce = u'135685044251684026041377608307'
        mocked_timestamp = u'1234567890'
        mocked_decoded_signature = u'my_signature='
        self.headers = {
            u'user_id': 1,
            u'lis_person_name_full': u'Test Username',
            u'lis_person_name_given': u'First',
            u'lis_person_name_family': u'Second',
            u'lis_person_contact_email_primary': u'*****@*****.**',
            u'lis_person_sourcedid': u'Test_Username',
            u'oauth_callback': u'about:blank',
            u'launch_presentation_return_url': '',
            u'lti_message_type': u'basic-lti-launch-request',
            u'lti_version': 'LTI-1p0',
            u'roles': u'Student',
            u'context_id': 1,
            u'tool_consumer_info_product_family_code': u'moodle',
            u'context_title': u'Test title',
            u'tool_consumer_instance_guid': u'test.dot.com',

            u'resource_link_id': 'dfgsfhrybvrth',
            u'lis_result_sourcedid': 'wesgaegagrreg',

            u'oauth_nonce': mocked_nonce,
            u'oauth_timestamp': mocked_timestamp,
            u'oauth_consumer_key': u'',
            u'oauth_signature_method': u'HMAC-SHA1',
            u'oauth_version': u'1.0',
            u'oauth_signature': mocked_decoded_signature
        }

        self.unit = Unit(title='Test title', addedBy=self.user)
        self.unit.save()
        self.course = Course(title='Test title',
                             description='test description',
                             access='Public',
                             enrollCode='111',
                             lockout='222',
                             addedBy=self.user)
        self.course.save()
        self.course_ref = CourseRef(
            course=self.course, context_id=self.headers.get('context_id'),
            tc_guid=self.headers.get('tool_consumer_instance_guid')
        )
        self.course_ref.save()
        self.course_ref.instructors.add(self.user)

        self.courseunit = CourseUnit(
            unit=self.unit, course=self.course,
            order=0, addedBy=self.user
        )
        self.courseunit.save()
Example #3
0
class LTITestCase(TestCase):
    def setUp(self):
        """
        Preconditions.
        """
        self.client = Client()
        self.user = User.objects.create_user('test', '*****@*****.**', 'test')

        mocked_nonce = u'135685044251684026041377608307'
        mocked_timestamp = u'1234567890'
        mocked_decoded_signature = u'my_signature='
        self.headers = {
            u'user_id': 1,
            u'lis_person_name_full': u'Test Username',
            u'lis_person_name_given': u'First',
            u'lis_person_name_family': u'Second',
            u'lis_person_contact_email_primary': u'*****@*****.**',
            u'lis_person_sourcedid': u'Test_Username',
            u'oauth_callback': u'about:blank',
            u'launch_presentation_return_url': '',
            u'lti_message_type': u'basic-lti-launch-request',
            u'lti_version': 'LTI-1p0',
            u'roles': u'Student',
            u'context_id': 1,
            u'tool_consumer_info_product_family_code': u'moodle',
            u'context_title': u'Test title',
            u'tool_consumer_instance_guid': u'test.dot.com',
            u'resource_link_id': 'dfgsfhrybvrth',
            u'lis_result_sourcedid': 'wesgaegagrreg',
            u'oauth_nonce': mocked_nonce,
            u'oauth_timestamp': mocked_timestamp,
            u'oauth_consumer_key': u'',
            u'oauth_signature_method': u'HMAC-SHA1',
            u'oauth_version': u'1.0',
            u'oauth_signature': mocked_decoded_signature
        }

        self.unit = Unit(title='Test title', addedBy=self.user)
        self.unit.save()
        self.course = Course(title='Test title',
                             description='test description',
                             access='Public',
                             enrollCode='111',
                             lockout='222',
                             addedBy=self.user)
        self.course.save()
        self.course_ref = CourseRef(
            course=self.course,
            context_id=self.headers.get('context_id'),
            tc_guid=self.headers.get('tool_consumer_instance_guid'))
        self.course_ref.save()
        self.course_ref.instructors.add(self.user)

        self.courseunit = CourseUnit(unit=self.unit,
                                     course=self.course,
                                     order=0,
                                     addedBy=self.user)
        self.courseunit.save()
Example #4
0
def create_courseref(request):
    """
    Create CourseRef and Course entry based on context_title.
    """
    request_dict = request.session['LTI_POST']
    if not request.session.get('is_valid'):
        return redirect(reverse('ct:home'))
    context_id = request_dict.get('context_id')
    roles_from_request = request_dict.get('roles', '').split(',')
    roles = list(
        set((ROLES_MAP.get(role, Role.ENROLLED)
             for role in roles_from_request)))
    # Make sure this context_id is not used
    course_ref = CourseRef.objects.filter(context_id=context_id).first()
    if course_ref:
        if Role.INSTRUCTOR in roles:
            return redirect(reverse('ct:course',
                                    args=(course_ref.course.id, )))
        else:
            return redirect(reverse('ct:home'))

    course = Course(title=request_dict.get('context_title',
                                           'Course title for %s' % context_id),
                    addedBy=request.user)
    course.save()
    role = Role(role=Role.INSTRUCTOR, course=course, user=request.user)
    role.save()
    course_id = course.id
    course_ref = CourseRef(course=course,
                           context_id=context_id,
                           tc_guid=request_dict.get(
                               'tool_consumer_instance_guid',
                               request.META.get('HTTP_HOST')))
    course_ref.save()
    course_ref.instructors.add(request.user)

    return redirect(reverse('ct:edit_course', args=(course_id, )))
Example #5
0
    def setUp(self):
        """
        Preconditions.
        """
        from chat.fsm_plugin.chat import get_specs
        from chat.fsm_plugin.additional import get_specs as get_specs_additional
        self.client = Client()
        self.user = User.objects.create_user('test', '*****@*****.**', 'test')
        get_specs()[0].save_graph(self.user.username)
        get_specs_additional()[0].save_graph(self.user.username)

        mocked_nonce = u'135685044251684026041377608307'
        mocked_timestamp = u'1234567890'
        mocked_decoded_signature = u'my_signature='
        self.headers = {
            u'user_id': 1,
            u'lis_person_name_full': u'Test Username',
            u'lis_person_name_given': u'First',
            u'lis_person_name_family': u'Second',
            u'lis_person_contact_email_primary': u'*****@*****.**',
            u'lis_person_sourcedid': u'Test_Username',
            u'oauth_callback': u'about:blank',
            u'launch_presentation_return_url': '',
            u'lti_message_type': u'basic-lti-launch-request',
            u'lti_version': 'LTI-1p0',
            u'roles': u'Student',
            u'context_id': 1,
            u'tool_consumer_info_product_family_code': u'moodle',
            u'context_title': u'Test title',
            u'tool_consumer_instance_guid': u'test.dot.com',

            u'resource_link_id': 'dfgsfhrybvrth',
            u'lis_result_sourcedid': 'wesgaegagrreg',

            u'oauth_nonce': mocked_nonce,
            u'oauth_timestamp': mocked_timestamp,
            u'oauth_consumer_key': u'consumer_key',
            u'oauth_signature_method': u'HMAC-SHA1',
            u'oauth_version': u'1.0',
            u'oauth_signature': mocked_decoded_signature
        }

        self.unit = Unit(title='Test title', addedBy=self.user)
        self.unit.save()
        self.course = Course(title='Test title',
                             description='test description',
                             access='Public',
                             enrollCode='111',
                             lockout='222',
                             addedBy=self.user)
        self.course.save()
        self.course_ref = CourseRef(
            course=self.course, context_id=self.headers.get('context_id'),
            tc_guid=self.headers.get('tool_consumer_instance_guid')
        )
        self.course_ref.save()
        self.course_ref.instructors.add(self.user)

        self.role1 = Role(
            role=Role.ENROLLED,
            user=self.user,
            course=self.course,
        )
        self.role1.save()

        self.courseunit = CourseUnit(
            unit=self.unit, course=self.course,
            order=0, addedBy=self.user, releaseTime=timezone.now()
        )
        self.courseunit.save()
        lesson = Lesson(title='title', text='text', addedBy=self.user)
        lesson.save()
        unitlesson = UnitLesson(
            unit=self.unit, order=0, lesson=lesson, addedBy=self.user, treeID=lesson.id
        )
        unitlesson.save()
        self.lti_consumer = LtiConsumer(
            consumer_name='test',
            consumer_key='consumer_key',
            consumer_secret='test_key'
        )
        self.lti_consumer.save()
    def setUp(self):
        """
        Preconditions.
        """
        from chat.fsm_plugin.chat import get_specs
        from chat.fsm_plugin.additional import get_specs as get_specs_additional
        self.client = Client()
        self.user = User.objects.create_user('test', '*****@*****.**', 'test')
        get_specs()[0].save_graph(self.user.username)
        get_specs_additional()[0].save_graph(self.user.username)

        mocked_nonce = '135685044251684026041377608307'
        mocked_timestamp = '1234567890'
        mocked_decoded_signature = 'my_signature='
        self.headers = {
            'user_id': 1,
            'lis_person_name_full': 'Test Username',
            'lis_person_name_given': 'First',
            'lis_person_name_family': 'Second',
            'lis_person_contact_email_primary': '*****@*****.**',
            'lis_person_sourcedid': 'Test_Username',
            'oauth_callback': 'about:blank',
            'launch_presentation_return_url': '',
            'lti_message_type': 'basic-lti-launch-request',
            'lti_version': 'LTI-1p0',
            'roles': 'Student',
            'context_id': 1,
            'tool_consumer_info_product_family_code': 'moodle',
            'context_title': 'Test title',
            'tool_consumer_instance_guid': 'test.dot.com',
            'resource_link_id': 'dfgsfhrybvrth',
            'lis_result_sourcedid': 'wesgaegagrreg',
            'oauth_nonce': mocked_nonce,
            'oauth_timestamp': mocked_timestamp,
            'oauth_consumer_key': 'consumer_key',
            'oauth_signature_method': 'HMAC-SHA1',
            'oauth_version': '1.0',
            'oauth_signature': mocked_decoded_signature
        }

        self.unit = Unit(title='Test title', addedBy=self.user)
        self.unit.save()
        self.course = Course(title='Test title',
                             description='test description',
                             access='Public',
                             enrollCode='111',
                             lockout='222',
                             addedBy=self.user)
        self.course.save()
        self.course_ref = CourseRef(
            course=self.course,
            context_id=self.headers.get('context_id'),
            tc_guid=self.headers.get('tool_consumer_instance_guid'))
        self.course_ref.save()
        self.course_ref.instructors.add(self.user)

        self.role1 = Role(
            role=Role.ENROLLED,
            user=self.user,
            course=self.course,
        )
        self.role1.save()

        self.courseunit = CourseUnit(unit=self.unit,
                                     course=self.course,
                                     order=0,
                                     addedBy=self.user,
                                     releaseTime=timezone.now())
        self.courseunit.save()
        lesson = Lesson(title='title', text='text', addedBy=self.user)
        lesson.save()
        unitlesson = UnitLesson(unit=self.unit,
                                order=0,
                                lesson=lesson,
                                addedBy=self.user,
                                treeID=lesson.id)
        unitlesson.save()
        self.lti_consumer = LtiConsumer(consumer_name='test',
                                        consumer_key='consumer_key',
                                        consumer_secret='test_key')
        self.lti_consumer.save()