2

我正在尝试插入一个课程模板(模板是在 edx studio 上创建课程所需的强制性详细信息以及一些评分设置)。我希望通过外部脚本插入课程模板,该脚本将对安装 opensx 的服务器的数据库具有读/写权限。

我已经浏览了这些文档,但他们似乎没有关于我的目标的信息。我随意尝试在openxx中插入一门课程,发现至少有一个MySQL表发生了变化,相关MongoDB中的一些集合也发生了变化。但这几乎不是什么具体的东西。我会浏览源代码,但它是一个如此庞大的代码库。

我正在使用openx的山茱萸版本。

有人可以为我指出正确的方向,我该如何完成这个任务,或者至少告诉我应该查看代码库的哪一部分?

4

1 回答 1

1

这是您创建课程的方式:

from xmodule.modulestore.django import modulestore
from datetime import datetime
store.create_course(
    "org", "num", "run", # course ID
    1,                   # course creator user ID
    # Set the start date of the course to the start of the year
    fields={"start": datetime(2016, 1, 1)} 
)

看到fields论证了吗?这是可以定义新课程的属性。可以定义的属性列表在common.lib.xmodule.xmodule.course_module:CourseFields中可用。在上面的示例中,我们定义了start属性,但可以使用相同的方法定义其他字段。

如果您希望在创建课程属性后修改它,例如start属性,您可以这样做:

from opaque_keys.edx.keys import CourseKey
course = store.get_course(CourseKey.from_string("course-v1:org+num+run"))
course.start = datetime.now()
course.save()

请注意,这不包括定义每门课程的评估。以编程方式定义它更复杂。grading_handler通过查看内容存储视图中的视图,您可以更好地了解如何定义分级设置。正如我们所见,所有的评分信息都存储在一个CourseGradingModel. 您需要的方法是update_from_json.

于 2016-07-04T06:58:09.397 回答