Я создал xblock, теперь я хочу автоматически установить этот xblock как xblock по умолчанию в качестве расширенного компонента для каждого вновь созданного курса.
Спасибо.
Я создал xblock, теперь я хочу автоматически установить этот xblock как xblock по умолчанию в качестве расширенного компонента для каждого вновь созданного курса.
Спасибо.
правильный способ решить эту проблему — отредактировать класс CourseFields
в файле common/lib/xmodule/xmodule/course_module.py
. Вы обнаружите, что существует переменная класса с именем advanced_modules
и типом List
. вы можете просто сделать что-то вроде этого
advanced_modules = List(
display_name=_("Advanced Module List"),
default=[], # this is where you add default values
help=_("Enter the names of the advanced components to use in your course."),
scope=Scope.settings
)
Вам нужно добавить свой XBlock в список дополнительных компонентов. В файле настроек CMS добавьте:
ADVANCED_COMPONENT_TYPES.append('your_xblock')
Настройка расширенного компонента по умолчанию
отредактируйте следующий файл
cms/djangoapps/contentstore/views/components.py
Добавьте следующую строку в функцию «get_component_templates()».
if isinstance(course_advanced_keys, list):
Добавлять
course_advanced_keys.append('your_xblock')