Controlled Navigation XBlock allows course authors to create a sequence of components that learners will navigate through in a controlled manner. The course author can configure the order of the components, and the learner will be able to navigate through them using the navigation buttons.
This XBlock has been created as an open source contribution to the Open edX platform and has been funded by Unidigital project from the Spanish Government - 2023.
| Open edX Release | Version |
|---|---|
| Palm | >= 0.2.0 |
| Quince | >= 0.2.0 |
| Redwood | >= 0.2.0 |
The settings can be changed in controlled_navigation/settings/common.py or,
for example, in tutor configurations.
NOTE: the current common.py works with Open edX Palm, Quince and Redwood
version.
Once the XBlock has been installed in your Open edX installation, you can enable it in a course from Studio through the Advanced Settings.
- Go to Studio and open the course to which you want to add the XBlock.
- Go to Settings > Advanced Settings from the top menu.
- Search for Advanced Module List and add
"controlled_navigation"to the list. - Click Save Changes button.
From Studio, you can add the Controlled Navigation Component to a course unit.
Click on the Advanced button in Add New Component.
Select Content With Controlled Navigation from the list.
Configure the component as needed.
The Controlled Navigation component has a set of settings that can be configured by the course author.
The Controlled Navigation component has the following settings:
- Randomness: If enabled, the children components will be displayed in a random order. This randomization is unique to each learner. If disabled, the children components will be displayed in the order they were added to the Controlled Navigation component.
- Subset Size: If the Randomness setting is enabled, this setting allows the course author to specify the number of children components that will be displayed to the learner. By default, it is disabled (0), and all the children components will be displayed.
- Forward Navigation Only: If enabled, the learner will only be able to navigate to the next component. If disabled, the learner will be able to navigate to the next and previous components. By default, it is enabled.
- Next Button Text: The text that will be displayed in the button that allows the learner to navigate to the next component.
- Previous Button Text: The text that will be displayed in the button that allows the learner to navigate to the previous component.
Here is how the Controlled Navigation component looks in the Author View:
When accessing the component by selecting the VIEW ➔ button, you will see the list of children components that are part of the Controlled Navigation component.
Here is an example of a Controlled Navigation component with a Problem component as a child:
When a learner accesses the course, they will see the children components of the Controlled Navigation component one by one. The learner will be able to navigate to the next component by clicking the Next button, and to the previous component by clicking the Previous button.
XBlock is the Open edX component architecture for building custom learning interactive components.
You can see the Controlled Navigation component in action in the XBlock Workbench. Running the Workbench requires having docker running.
git clone git@github.com:eduNEXT/xblock-controlled-navigation virtualenv venv/ source venv/bin/activate cd xblock-controlled-navigation make upgrade make install make dev.run
Once the process is done, you can interact with the Controlled Navigation XBlock in the Workbench by navigating to http://localhost:8000
For details regarding how to deploy this or any other XBlock in the Open edX platform, see the installing-the-xblock documentation.
If you're having trouble, the Open edX community has active discussion forums available at https://discuss.openedx.org where you can connect with others in the community.
Also, real-time conversations are always happening on the Open edX community Slack channel. You can request a Slack invitation, then join the community Slack workspace.
For anything non-trivial, the best path is to open an issue in this repository with as many details about the issue you are facing as you can provide.
For more information about these options, see the Getting Help page.
The code in this repository is licensed under the AGPL-3.0 unless otherwise noted.
Please see LICENSE.txt for details.
Contributions are very welcome.
This project is currently accepting all types of contributions, bug fixes, security fixes, maintenance work, or new features. However, please make sure to have a discussion about your new feature idea with the maintainers prior to beginning development to maximize the chances of your change being accepted. You can start a conversation by creating a new issue on this repo summarizing your idea.
This Xblock is initially available in English and Spanish. You can help by translating this component to other languages. Follow the steps below:
- Create a folder for the translations in
locale/, eg:locale/fr_FR/LC_MESSAGES/, and create yourtext.pofile with all the translations. - Run
make compile_translations, this will generate the.mofile. - Create a pull request with your changes.
Please do not report a potential security issue in public. Please email security@edunext.co.