EDX: как установить расширенные компоненты по умолчанию для вновь созданного курса

Я создал xblock, теперь я хочу автоматически установить этот xblock как xblock по умолчанию в качестве расширенного компонента для каждого вновь созданного курса.

Спасибо.


person Dadaso Zanzane    schedule 25.06.2015    source источник
comment
Мое предложенное решение решает вашу проблему?   -  person Régis B.    schedule 01.10.2015
comment
Hay, к сожалению, не сработало, я нашел другое решение для того же   -  person Dadaso Zanzane    schedule 05.10.2015


Ответы (3)


правильный способ решить эту проблему — отредактировать класс 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
)
person D.W    schedule 11.10.2017

Вам нужно добавить свой XBlock в список дополнительных компонентов. В файле настроек CMS добавьте:

ADVANCED_COMPONENT_TYPES.append('your_xblock')
person Régis B.    schedule 18.08.2015

Настройка расширенного компонента по умолчанию

отредактируйте следующий файл

cms/djangoapps/contentstore/views/components.py

Добавьте следующую строку в функцию «get_component_templates()».

if isinstance(course_advanced_keys, list):

Добавлять

course_advanced_keys.append('your_xblock')
person Dadaso Zanzane    schedule 05.10.2015