From f346a5604c80420398f9514937890a3ef7631dfe Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Mon, 29 Dec 2025 17:34:47 +0200 Subject: [PATCH] this --- lti/views.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lti/views.py b/lti/views.py index 84eee153..f9fad5c6 100644 --- a/lti/views.py +++ b/lti/views.py @@ -284,13 +284,23 @@ class LaunchView(View): def handle_deep_linking_launch(self, request, message_launch, platform, launch_data): """Handle deep linking request""" - # Store deep link data in session - deep_link = message_launch.get_deep_link() + # Get deep linking settings from launch data + deep_linking_settings = launch_data.get('https://purl.imsglobal.org/spec/lti-dl/claim/deep_linking_settings', {}) + if not deep_linking_settings: + raise ValueError("Missing deep linking settings in launch data") + + deep_link_return_url = deep_linking_settings.get('deep_link_return_url') + + if not deep_link_return_url: + raise ValueError("Missing deep_link_return_url in deep linking settings") + + # Store deep link data in session for use in SelectMediaView request.session['lti_deep_link'] = { - 'deep_link_return_url': deep_link.get_response_url(), + 'deep_link_return_url': deep_link_return_url, 'deployment_id': launch_data.get('https://purl.imsglobal.org/spec/lti/claim/deployment_id'), 'platform_id': platform.id, + 'message_launch_data': launch_data, # Store full launch data for JWT creation } # Redirect to media selection page