I’m new to both Django and Open edX Tutor, and I’m trying to experiment with plugin development. Specifically, I’m working on creating a plugin that adds a new course tab, ideally one that could be customizable in the Studio’s “Pages & Resources” section like the default pages.
Having experience with developing basic XBlocks, I’m now looking to create a more complex course-level feature through tab integration
Current Challenge
Despite trying various approaches and referencing existing projects, I haven’t been able to successfully implement a working course tab plugin. I’m unsure if the issues are due to outdated references or mistakes in my implementation.
Resources I’ve Consulted
I’ve looked into the following projects and resources:
I couldn’t add a link to all of them due to me having a new account
I’ve tried two approaches:
Installing existing plugins and enable them for the ones that are plugins
Adding the others via OPENEDX_EXTRA_PIP_REQUIREMENTS like a new Xblock
Neither approach has been successful so far.
For the older projects I tried to update the outdated django references before using them.
Questions
Are there any recent, simple example projects that demonstrate adding a new course tab?
Is there updated documentation I might have missed?
What’s the current recommended approach for implementing custom course tabs in Open edX?
Any guidance, examples, or pointers to relevant resources would be greatly appreciated. I’m happy to provide more specific details about my implementation attempts if needed.
I’m afraid I won’t be able to help you here, but it may be helpful for others to hear some more details about your setup. Are you running tutor? What version? What does it mean for an approach to be unsuccessful - what have you tried to debug?
Thanks for your response! Yes, I am using Tutor, specifically version Sumac.
The approach that failed for me involved getting the module installed and added to the image, so there was no error during tutor images build openedx, but no additional tab appeared in the course. I then tried adding the module name to the Advanced Module List (Settings -> Advanced Settings), similar to what’s described in the rocketchat-tab repository, but still couldn’t get it working properly.
Thanks again for taking the time to respond!
Could you please verify from the LMS and CMS Docker containers if Rocket.Chat is installed?
For this, Run tutor local exec lms bash
and then run pip list and see if your module rocketchat exists in the list.
Same for CMS container: tutor local exec cms bash
Secondly, if it is installed, could you also check whether the settings.ROCKETCHAT_BASE_URL is properly exported?
For this, Run tutor local exec cms ./manage.py cms shell in your terminal.
and then Run
from django.conf import settings
print(settings.ROCKETCHAT_BASE_URL)
Additionally, please review the logs of the CMS container to see if there are any errors related to Rocket.Chat. The module should be imported successfully if both of these are configured correctly. Let me know if everything appears in place, and I can try reproducing the issue on my system.