Skip to main content

这个 Xblock 在 edx 的原始 lti_consumer XBlock 上增加了可配置性

项目描述

可配置的 LTI 消费者 XBlock

此 XBlock 建立在edX LTI 消费者 Xblock 之上,以简化讲师对其的配置。

以下是该模块为 Open edX 带来的一些示例:

  • 预配置 LTI 服务,可从Advanced组件按钮一键添加,
  • 通过定位启动 url 模式对某些 LTI 服务进行强制配置,
  • 为所有 LTI 服务强制执行默认配置,以实现更好的控制、安全性或人体工程学,
  • 平台级 LTI 凭证配置适用于所有课程。培训班。

安装

这个包可以安装pip

$ pip install configurable_lti_consumer-xblock

如果您愿意将此 XBlock 作为独立软件包安装或测试,则需要Edx 的lti_consumer-xblock作为额外依赖项。您可以使用以下命令单独安装它pip

$ pip install git+https://github.com/edx/xblock-lti-consumer@v1.1.8#egg=lti-consumer-xblock

如果您打算在基本 Open edX 安装中安装它,则此依赖项将已经可用,因此您不需要执行上述命令。

入门

首先,如果您打算在项目本身上工作,则需要克隆此存储库:

$ git clone git@github.com:openfun/xblock-configurable-lti-consumer.git

在您的机器上克隆项目后,您将需要构建一个自定义的edx 平台 docker 映像,其中包括可配置的 LTI 消费者 XBlock,并设置一个开发环境,其中包括启动和运行的所有必需服务(稍后将详细介绍):

$ cd xblock-configurable-lti-consumer
$ make bootstrap

如果一切顺利,您现在应该可以访问以下服务:

具有以下凭据:

email: admin@example.com
password: admin

配置示例

典型的 LTI 配置如下所示:

LTI_XBLOCK_CONFIGURATIONS = [
    {
        "display_name": "Marsha Video",
        "oauth_consumer_key": "InsecureOauthConsumerKey",
        "shared_secret": "InsecureSharedSecret",
        "is_launch_url_regex": True,
        "automatic_resizing": True,
        "inline_ratio": 0.5625,
        "hidden_fields": [
            "lti_id",
            "description",
            "launch_target",
            "custom_parameters",
            "button_text",
            "modal_height",
            "modal_width",
            "has_score",
            "weight",
            "hide_launch",
            "accept_grades_past_due",
            "ask_to_send_username",
            "ask_to_send_email",
        ],
        "defaults": {
            "custom_parameters": [],
            "ask_to_send_username": True,
            "weight": 0,
            "modal_height": 400,
            "ask_to_send_email": True,
            "accept_grades_past_due": False,
            "button_text": "button",
            "has_score": False,
            "hide_launch": False,
            "launch_target": "iframe",
            "modal_width": 80,
            "launch_url": "https://marsha\.education/lti/videos/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
            "lti_id": "marsha",
        },
    },
    {
        "pattern": ".*ltiapps\.net.*",
        "hidden_fields": ["launch_target"],
        "defaults": {"launch_target": "modal"},
    },
    {
        "display_name": "LTI consumer",
        "pattern": ".*",
        "hidden_fields": ["ask_to_send_username", "ask_to_send_email"],
        "automatic_resizing": False,
        "defaults": {
            "ask_to_send_email": True,
            "launch_target": "new_window",
            "ask_to_send_username": True,
        },
    },
]

这个配置做了几件事:

  • 它在 Studio 的组件按钮后面添加了一个“Marsha Video”链接Advanced,以便一键添加视频。视频会自动添加到启动 url 指向的 Marsha实例中,
  • 它强制所有指向ltiapps.net使用模式的 LTI 消费者 XBlock,
  • 它建议所有其他 LTI 消费者 XBlocks 默认在新窗口中打开,并在发送用户的用户名和电子邮件之前强制询问。

此列表中每个配置的顺序很重要,因为对于给定的 XBlock,我们将使用与其启动 url 匹配的第一个配置模式。

如果您希望加密oauth_consumer_key和凭据并保持其他设置可见,您可以使用as 映射密钥shared_secret在单独的设置中声明其中一个或两者 :LTI_XBLOCK_SECRETSlti_id

LTI_XBLOCK_SECRETS = {
    "marsha": {
        "oauth_consumer_key": "InsecureOauthConsumerKey",
        "shared_secret": "InsecureSharedSecret",
    }
}

请注意,当前存储库中包含的工作台正在官方 France Université Numérique Open edX 扩展 Docker 映像上运行此配置(请参阅config/settings.yml.dist ) 。

与 Open edX Studio 集成

目前,如果您想 在 Studio 的组件按钮中为某些配置添加预配置选项,该项目需要一个edx/edx-platform的小分支。Advanced

在我们看来,这个小分叉值得应用,因为:

  • 它将使您免于安装许多 XBlock,并有助于使您的 Open edX 安装易于管理,
  • 它允许您为要提供给讲师的每项 LTI 服务自动添加特定链接。他们不需要激活 LTI 并为每门课程提供凭据......他们不需要为他们添加的每个 XBlock 提供服务的启动 URL......

对于open-release/hawthorn.1,要应用的补丁程序可在此处获得: https ://gist.github.com/sampaccoud/f15083325cec4f14a53bfb78fb4b4e42

开发者指南

项目启动后(请参阅“入门”部分),要开始处理项目,请使用:

$ make dev

您可以通过以下方式停止运行服务:

$ make stop

如果出于任何原因,您需要删除数据库并从新数据库开始,请使用 down目标:

$ make down

执照

这项工作是根据 AGPL 3.0 许可证发布的(请参阅许可证)。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

可配置的_lti_consumer-xblock-1.4.1.tar.gz (23.3 kB 查看哈希

已上传 source

内置分布

可配置的_lti_consumer_xblock-1.4.1-py2.py3-none-any.whl (39.3 kB 查看哈希

已上传 py2 py3