LTI custom fields

186 views
Skip to first unread message

Wing S

unread,
Sep 7, 2017, 12:07:06 AM9/7/17
to General Open edX discussion
Dear All,

I would like to pass the user last name and family name via LTI. I have set the custom fields lis_person_name_given &  lis_person_name_family in advanced page. But how can I set it to get the current user's last name and family?

One more question, is there have any area we can set some predefined LTI variable for global use instead of set it in advance page for every courses?

Best Regards,
Wing

Nate Aune

unread,
Sep 8, 2017, 8:22:24 PM9/8/17
to General Open edX discussion
This pull request to the upstream xblock-lti-consumer XBlock repo provides the capability to pass in the 'lis_person_name_given', 'lis_person_name_family', 'lis_person_name_full' and 'custom_user_id' which represents actual edX user id.
https://github.com/edx/xblock-lti-consumer/pull/32

Wing S

unread,
Sep 14, 2017, 5:01:18 AM9/14/17
to General Open edX discussion
Hello Nate,

I have used that version but I got the below error.

Sep 14 16:56:31 openedx [service_variant=lms][courseware.module_render][env:sandbox] ERROR [openedx  23335] [module_render.py:1007] - error executing xblock handler
Traceback (most recent call last):
  File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/module_render.py", line 982, in _invoke_xblock_handler
    resp = instance.handle(handler, req, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/mixins.py", line 86, in handle
    return self.runtime.handle(self, handler_name, request, suffix)
  File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1334, in handle
    return super(MetricsMixin, self).handle(block, handler_name, request, suffix=suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/runtime.py", line 1025, in handle
    results = handler(request, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti_consumer.py", line 719, in lti_launch_handler
    lti_parameters = lti_consumer.get_signed_lti_parameters()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti.py", line 163, in get_signed_lti_parameters
    full_name = profile.filter(key='name')
AttributeError: 'UserProfile' object has no attribute 'filter'
Sep 14 16:56:31 openedx [service_variant=lms][root][env:sandbox] ERROR [openedx  23335] [exceptions.py:16] - Uncaught exception from <class 'django.core.handlers.wsgi.WSGIHandler'>
Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner
    return func(*args, **kwargs)
  File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/module_render.py", line 876, in handle_xblock_callback
    return _invoke_xblock_handler(request, course_id, usage_id, handler, suffix, course=course)
  File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/module_render.py", line 982, in _invoke_xblock_handler
    resp = instance.handle(handler, req, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/mixins.py", line 86, in handle
    return self.runtime.handle(self, handler_name, request, suffix)
  File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1334, in handle
    return super(MetricsMixin, self).handle(block, handler_name, request, suffix=suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/runtime.py", line 1025, in handle
    results = handler(request, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti_consumer.py", line 719, in lti_launch_handler
    lti_parameters = lti_consumer.get_signed_lti_parameters()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti.py", line 163, in get_signed_lti_parameters
    full_name = profile.filter(key='name')
AttributeError: 'UserProfile' object has no attribute 'filter'
Sep 14 16:56:31 openedx [service_variant=lms][django.request][env:sandbox] ERROR [openedx  23335] [base.py:256] - Internal Server Error: /courses/course-v1:POLYU+Perusall+201701/xblock/block-v1:POLYU+Perusall+201701+type@lti_consumer+block@0ebd91144c2445ebb4a76c301f7450ba/handler/lti_launch_handler
Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/decorators.py", line 145, in inner
    return func(*args, **kwargs)
  File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/module_render.py", line 876, in handle_xblock_callback
    return _invoke_xblock_handler(request, course_id, usage_id, handler, suffix, course=course)
  File "/edx/app/edxapp/edx-platform/lms/djangoapps/courseware/module_render.py", line 982, in _invoke_xblock_handler
    resp = instance.handle(handler, req, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/mixins.py", line 86, in handle
    return self.runtime.handle(self, handler_name, request, suffix)
  File "/edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1334, in handle
    return super(MetricsMixin, self).handle(block, handler_name, request, suffix=suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/xblock/runtime.py", line 1025, in handle
    results = handler(request, suffix)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti_consumer.py", line 719, in lti_launch_handler
    lti_parameters = lti_consumer.get_signed_lti_parameters()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/lti_consumer/lti.py", line 163, in get_signed_lti_parameters
    full_name = profile.filter(key='name')
AttributeError: 'UserProfile' object has no attribute 'filter'
Sep 14 16:56:31 openedx [service_variant=lms][request_cache][env:sandbox] WARNING [openedx  23335] [__init__.py:66] - Could not retrieve the current request. A stub request will be created instead using settings.SITE_NAME. This should be used *only* in test cases, never in production!
Sep 14 17:00:02 openedx [service_variant=lms][openedx.core.lib.log_utils][env:sandbox] INFO [openedx  23335] [log_utils.py:36] - ApiKeyHeaderPermission used: ip="127.0.0.1", path="/notifier_api/v1/users/"

Do you know why?

Best Regards,
Wing

Nate Aune於 2017年9月9日星期六 UTC+8上午8時22分24秒寫道:

Nate Aune

unread,
Sep 14, 2017, 7:35:53 AM9/14/17
to edx-...@googlegroups.com
Which version of Open edX are you using?

--
You received this message because you are subscribed to a topic in the Google Groups "General Open edX discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msgid/edx-code/d413e555-5963-423c-892b-9e8839959e18%40googlegroups.com.
--

Wing S

unread,
Sep 17, 2017, 10:18:48 PM9/17/17
to General Open edX discussion
Dear Nate,

I am using Ficus.4. Is that version dependent? Because if my OpenEdx want to upgrade, we need to ensure the product still work for teaching purpose. :-)

Best Regards,
Wing

Nate Aune於 2017年9月14日星期四 UTC+8下午7時35分53秒寫道:
Reply all
Reply to author
Forward
0 new messages