2

コース テンプレートを挿入しようとしています (テンプレートは、edx studio でコースを作成するために必要な必須の詳細と、いくつかの採点設定です)。openx がインストールされているサーバーのデータベースに対する読み取り/書き込み権限を持つ外部スクリプトを使用して、コース テンプレートを挿入したいと考えています。

私はすでにドキュメントを調べましたが、私の目的に関する情報がないようです。openx に任意にコースを挿入しようとしたところ、少なくとも 1 つの 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 に答える