This block does not implement any security features to stop a student from faking their test results. It is strictly for test purposes at this time. You have been warned.
Experimental XBlock for hosting a SCORM content object. Currently it has built in trivial quiz for testing purposes, but eventually it will allow the user to upload an arbitrary SCORM zipfile.
- See here for an overview of the SCORM API.
- See the issues page for (an incomplete list of) work that needs to be done.
- Fork.
- Comment on the issue related to the thing you want to fix, so others know you're working on it. If you want to do something that doesn't have an issue associated with it, create an issue.
- Work on each feature/issue in a separate branch
- Submit pull request(s)
- Install the XBlock. The module name for
advanced_modules
isxb_scorm
. - Upload your SCORMs (see below)
- Insert them into a course using Studio
Right now, there is no nice GUI to do this. The XBlock looks under /edx/app/edxapp/scorm
for potential SCORMs to display. They must be unzipped. The folder structure looks like:
/edx/app/edxapp/scorm/
|
|--> some_scorm/
| |
| |--> ... some files ...
| |--> imsmanifest.xml
| |--> ... more files ...
|
|--> another_scorm/
|
|--> ... files ...
|--> imsmanifest.xml
It looks for an imsmanifest.xml
file inside the directory. It only looks one directory deep, so the above structure must be followed EXACTLY.
On Devstack, modify /edx/app/edxapp/edx-platform/lms/urls.py
:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# SCORM content (NEW)
urlpatterns += static('/scorm/', document_root='/edx/app/edxapp/scorm/')
# in debug mode, allow any template to be rendered (most useful for UX reference templates)
urlpatterns += url(r'^template/(?P<template>.+)$', 'debug.views.show_reference_template'),
Also modify /edx/app/edxapp/edx-platform/cms/urls.py
:
if settings.DEBUG:
try:
from .urls_dev import urlpatterns as dev_urlpatterns
urlpatterns += dev_urlpatterns
except ImportError:
pass
# SCORM content (NEW)
from django.conf.urls.static import static
urlpatterns += static('/scorm/', document_root='/edx/app/edxapp/scorm/')
In production, add to /edx/app/nginx/sites-enabled/lms
and /edx/app/nginx/sites-enabled/cms
:
location /scorm{
alias /edx/app/edxapp/scorm;
index index.html;
}
(All of this static location business will go away when someone gets time to fix it.)
If this filesystem location doesn't work for you, you can change it in xb_scorm.py
near the top.
As the content is simply 'dumped on a web server', any of it can be viewed by anyone who knows the URL. There are no permissions or security yet.
If you're using Articulate Storyline to generate Tin Can content, I recommend unchecking the 'generate Flash content' check box when you're exporting. This will force mobile users (phones, iPads and tablets) to use the HTML5 renderer. This XBlock doesn't work with the Articulate app, and besides, why would you want to use Flash?
In general, if you're having trouble with content generated by Storyline, it's worth downloading the latest version from the Articulate website and re-exporting your content. There's a list of changes (bugs, new features, and so on) at
- http://www.articulate.com/support/storyline/issues-addressed-in-the-latest-articulate-storyline-update (Storyline 1)
- http://www.articulate.com/support/storyline-2/issues-addressed-in-the-latest-articulate-storyline-2-update/ (Storyline 2)
In particular, if sound isn't working on iPads and iPhones, that's fixed in updates at the start of 2015.