Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
31790ab4
Commit
31790ab4
authored
Apr 27, 2015
by
Phil McGachey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[LTI Provider] Wiring up LTI views to the courseware template
parent
b5f58ccf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
165 additions
and
47 deletions
+165
-47
lms/djangoapps/courseware/module_render.py
+3
-3
lms/djangoapps/lti_provider/tests/test_views.py
+131
-40
lms/djangoapps/lti_provider/views.py
+31
-4
No files found.
lms/djangoapps/courseware/module_render.py
View file @
31790ab4
...
...
@@ -815,7 +815,7 @@ def xblock_resource(request, block_type, uri): # pylint: disable=unused-argumen
return
HttpResponse
(
content
,
mimetype
=
mimetype
)
def
_
get_module_by_usage_id
(
request
,
course_id
,
usage_id
):
def
get_module_by_usage_id
(
request
,
course_id
,
usage_id
):
"""
Gets a module instance based on its `usage_id` in a course, for a given request/user
...
...
@@ -887,7 +887,7 @@ def _invoke_xblock_handler(request, course_id, usage_id, handler, suffix):
if
error_msg
:
return
JsonResponse
(
object
=
{
'success'
:
error_msg
},
status
=
413
)
instance
,
tracking_context
=
_
get_module_by_usage_id
(
request
,
course_id
,
usage_id
)
instance
,
tracking_context
=
get_module_by_usage_id
(
request
,
course_id
,
usage_id
)
tracking_context_name
=
'module_callback_handler'
req
=
django_to_webob_request
(
request
)
...
...
@@ -945,7 +945,7 @@ def xblock_view(request, course_id, usage_id, view_name):
if
not
request
.
user
.
is_authenticated
():
raise
PermissionDenied
instance
,
_
=
_
get_module_by_usage_id
(
request
,
course_id
,
usage_id
)
instance
,
_
=
get_module_by_usage_id
(
request
,
course_id
,
usage_id
)
try
:
fragment
=
instance
.
render
(
view_name
,
context
=
request
.
GET
)
...
...
lms/djangoapps/lti_provider/tests/test_views.py
View file @
31790ab4
This diff is collapsed.
Click to expand it.
lms/djangoapps/lti_provider/views.py
View file @
31790ab4
...
...
@@ -6,10 +6,15 @@ from django.conf import settings
from
django.contrib.auth.decorators
import
login_required
from
django.contrib.auth.views
import
redirect_to_login
from
django.core.urlresolvers
import
reverse
from
django.http
import
HttpResponse
,
HttpResponse
BadRequest
,
HttpResponseForbidden
from
django.http
import
HttpResponseBadRequest
,
HttpResponseForbidden
from
django.views.decorators.csrf
import
csrf_exempt
from
courseware.access
import
has_access
from
courseware.courses
import
get_course_with_access
from
courseware.module_render
import
get_module_by_usage_id
from
edxmako.shortcuts
import
render_to_response
from
lti_provider.signature_validator
import
SignatureValidator
from
opaque_keys.edx.keys
import
CourseKey
# LTI launch parameters that must be present for a successful launch
REQUIRED_PARAMETERS
=
[
...
...
@@ -97,7 +102,7 @@ def lti_run(request):
# Remove the parameters from the session to prevent replay
del
request
.
session
[
LTI_SESSION_KEY
]
return
render_courseware
()
return
render_courseware
(
request
,
params
)
def
get_required_parameters
(
dictionary
,
additional_params
=
None
):
...
...
@@ -139,7 +144,7 @@ def restore_params_from_session(request):
return
get_required_parameters
(
session_params
,
additional_params
)
def
render_courseware
():
def
render_courseware
(
request
,
lti_params
):
"""
Render the content requested for the LTI launch.
TODO: This method depends on the current refactoring work on the
...
...
@@ -149,4 +154,26 @@ def render_courseware():
:return: an HttpResponse object that contains the template and necessary
context to render the courseware.
"""
return
HttpResponse
(
'TODO: Render refactored courseware view.'
)
usage_id
=
lti_params
[
'usage_id'
]
course_id
=
lti_params
[
'course_id'
]
course_key
=
CourseKey
.
from_string
(
course_id
)
user
=
request
.
user
course
=
get_course_with_access
(
user
,
'load'
,
course_key
)
staff
=
has_access
(
request
.
user
,
'staff'
,
course
)
instance
,
_
=
get_module_by_usage_id
(
request
,
course_id
,
usage_id
)
fragment
=
instance
.
render
(
'student_view'
,
context
=
request
.
GET
)
context
=
{
'fragment'
:
fragment
,
'course'
:
course
,
'disable_accordion'
:
True
,
'allow_iframing'
:
True
,
'disable_header'
:
True
,
'disable_footer'
:
True
,
'disable_tabs'
:
True
,
'staff_access'
:
staff
,
'xqa_server'
:
settings
.
FEATURES
.
get
(
'USE_XQA_SERVER'
,
'http://xqa:server@content-qa.mitx.mit.edu/xqa'
),
}
return
render_to_response
(
'courseware/courseware.html'
,
context
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment