February 20, 2021

Set Advanced Module List by Default in Open edX

Activities, Android Developer, Ansible, Apache2, Atlassian, Ayo Belajar Linux, Bestpath Network, BLC Telkom Klaten, BSD, Caddy Server, Case Study, Cisco, Cisco Indonesia, Cloud Computing, Cockpit, Custom Weapons, Docker, E-Learning, Engenius, Error, FreeBSD, FreeBSD Indonesia, Komunitas Pengguna Linux Indonesia, KPLI Bulukumba, KPLI Klaten, Let's Encrypt, Linux, MacOS, Microsoft Azure, Microsoft SQL Server, MikroTik, MikroTik Indonesia, MySQL, Nginx, Open edX, OpenSID, Others, PHP, phpMyAdmin, PostgreSQL, Proxmox, Python, Redash, Sendy, SSH, Stories, Subnetting, TP-Link, Ubiquiti, Unix, Virtualization, Windows, X-Mosque, Faizar Septiawan, Icar, siBunglonGanteng, Orang Ganteng, siBunglonLabs

When setup course in Open edX, you can use some of default components that can help or support the learning process. But maybe you also need additional components which are not provided by Open edX by default, the component is called XBlock. You can make this XBlock and then install it on the Open edX server or you can also install XBlock that has been made by other people according to your needs.

After you install XBlock on the Open edX server, the XBlock cannot be used immediately, but you must register the XBlock name in each course, by entering a course then clicking Settings > Advanced Settings and find Advanced Module List field.

If all the courses you are going to prepare in Open edX require the same XBlock, you can set the XBlock name to the default list so you don’t have to manually add the XBlock name to each course. Note the following steps to add the name XBlock to the default list Advanced Module List.

Open file /edx/app/edxapp/edx-platform/common/lib/xmodule/xmodule/course_module.py when using Open edX native installation or open file /opt/bitnami/apps/edx/edx-platform/common/lib/xmodule/xmodule/course_module.py when using Open edX Bitnami, then find the following line:

    advanced_modules = List(
        display_name=_("Advanced Module List"),
        help=_("Enter the names of the advanced modules to use in your course."),
        scope=Scope.settings
    )

and change it to be like this:

    advanced_modules = List(
        display_name=_("Advanced Module List"),
        default=[], # add your module list here
        help=_("Enter the names of the advanced modules to use in your course."),
        scope=Scope.settings
    )

Then restart the Studio Open edX service (CMS).

References