From 91d4b1fd55832febd6e2e1c1d83ff4ccb65ef34f Mon Sep 17 00:00:00 2001 From: Kyle Boots <kboots@mit.edu> Date: Tue, 12 Apr 2016 13:30:14 -0400 Subject: [PATCH] Added display name and due date to LTI Parameters --- lti_consumer/lti.py | 6 ++++++ lti_consumer/lti_consumer.py | 3 +++ lti_consumer/tests/unit/test_lti.py | 9 +++++++++ 3 files changed, 18 insertions(+) diff --git a/lti_consumer/lti.py b/lti_consumer/lti.py index 83bcd79..8ba30e4 100644 --- a/lti_consumer/lti.py +++ b/lti_consumer/lti.py @@ -128,8 +128,14 @@ class LtiConsumer(object): u'lis_result_sourcedid': self.xblock.lis_result_sourcedid, u'context_id': self.xblock.context_id, + u'custom_component_display_name': self.xblock.display_name, } + if self.xblock.due: + lti_parameters['custom_component_due_date'] = self.xblock.due.strftime('%Y-%m-%d %H:%M:%S') + if self.xblock.graceperiod: + lti_parameters['custom_component_graceperiod'] = str(self.xblock.graceperiod.total_seconds()) + if self.xblock.has_score: lti_parameters.update({ u'lis_outcome_service_url': self.xblock.outcome_service_url diff --git a/lti_consumer/lti_consumer.py b/lti_consumer/lti_consumer.py index e2b6dfa..2f769d0 100644 --- a/lti_consumer/lti_consumer.py +++ b/lti_consumer/lti_consumer.py @@ -119,6 +119,9 @@ LTI_PARAMETERS = [ 'tool_consumer_instance_description', 'tool_consumer_instance_url', 'tool_consumer_instance_contact_email', + 'custom_component_due_date', + 'custom_component_graceperiod', + 'custom_component_display_name' ] diff --git a/lti_consumer/tests/unit/test_lti.py b/lti_consumer/tests/unit/test_lti.py index c6452eb..0676028 100644 --- a/lti_consumer/tests/unit/test_lti.py +++ b/lti_consumer/tests/unit/test_lti.py @@ -5,8 +5,11 @@ Unit tests for lti_consumer.lti module import unittest +from datetime import timedelta from mock import Mock, PropertyMock, patch +from django.utils import timezone + from lti_consumer.tests.unit.test_utils import FAKE_USER_ID, make_request from lti_consumer.tests.unit.test_lti_consumer import TestLtiConsumerXBlock @@ -146,6 +149,9 @@ class TestLtiConsumer(TestLtiConsumerXBlock): """ Test `get_signed_lti_parameters` returns the correct dict """ + self.lti_consumer.xblock.due = timezone.now() + self.lti_consumer.xblock.graceperiod = timedelta(days=1) + expected_lti_parameters = { u'user_id': self.lti_consumer.xblock.user_id, u'oauth_callback': u'about:blank', @@ -157,6 +163,9 @@ class TestLtiConsumer(TestLtiConsumerXBlock): u'lis_result_sourcedid': self.lti_consumer.xblock.lis_result_sourcedid, u'context_id': self.lti_consumer.xblock.context_id, u'lis_outcome_service_url': self.lti_consumer.xblock.outcome_service_url, + u'custom_component_display_name': self.lti_consumer.xblock.display_name, + u'custom_component_due_date': self.lti_consumer.xblock.due.strftime('%Y-%m-%d %H:%M:%S'), + u'custom_component_graceperiod': str(self.lti_consumer.xblock.graceperiod.total_seconds()), 'lis_person_sourcedid': 'edx', 'lis_person_contact_email_primary': 'edx@example.com', u'custom_param_1': 'custom1', -- GitLab