Course prerequisites

I recently set up the latest version of Tutor. I’ve seen references in the Open edX documentation regarding course prerequisites. I’m not seeing any options to do this when going to the “Schedule & Details” page of a course. I was able to figure out how to set up subsection prerequisites, but obviously, that’s not the same thing.

I’ve seen the course milestones page on the admin interface, but I’ve been unable to find any documentation on how to properly use it.

Any help or tips are appreciated!

1 Like

Hi @reallyxloco! Can you give some links to the documentation that you are referring to?

@regis Here are a couple links. Admittedly, I’m not 100% sure if the documentation is the latest or if it matches the version Tutor uses.

Specifying Prerequisite Courses and Exams

Enabling Course Prerequisites

Thanks for the links! This is very useful. It seems like enabling prerequisistes requires some modifications to the LMS and CMS settings. Do you think prerequisites should be enabled by default? If not, you should create a plugin.

I understand that building a plugin is a bit convoluted, for now. We should probably work on a more lightweight plugin system that would complement the current approach.

Is it possible to update the appropriate config files with a plugin? The Tutor docs aren’t very clear on that.

Hi Regis,

It would be great if these are enabled by default. Everyone will still be able to (de)select these options under schedule and details settings in studio.

Best regards,
Cherie

Hi all, thanks for the info, we are looking to enable this feature using tutor local, the only way to enable it is creating a plugin? Or I can override the settings as described here: https://docs.tutor.overhang.io/local.html#loading-different-production-settings-for-edx-platform?

thanks a lot for your help.

Hi,
did it work for you Could you share your settings? Thank you!

It should be easy enough to achieve this today, thanks to simple yaml plugins: https://docs.tutor.overhang.io/plugins/gettingstarted.html#yaml-file

I wouldn’t be doing it. I need to add:
‘MILESTONES APP’: True
‘ENABLE PREREQUISITE COURSES’: true
I generate the .yml inserts correctly but it doesn’t insert it in the lms.env.json and cms.env.json
How should I do?

For example I execute:

grep -r ENABLE_PREREQUISITE_COURSES “$(tutor config printroot)/env/apps/openedx/settings/”

and returns me:

/home/christian/edxPlatform/env/apps/openedx/settings/lms/production.py:ENABLE_PREREQUISITE_COURSES = True
/home/christian/edxPlatform/env/apps/openedx/settings/lms/development.py:ENABLE_PREREQUISITE_COURSES = True
Coincidencia en el fichero binario /home/christian/edxPlatform/env/apps/openedx/settings/cms/production.pyc
/home/christian/edxPlatform/env/apps/openedx/settings/cms/production.py:ENABLE_PREREQUISITE_COURSES = True
/home/christian/edxPlatform/env/apps/openedx/settings/cms/development.py:ENABLE_PREREQUISITE_COURSES = True

But as you can see, it does not impact the * .env.json files

pd:
I run tutor config save and local tutor quickstart -I

I see strange output when running local quickstart tutor, it is as follows

Initialising lms…

Fix incorrect uploaded file path

if [ -d /openedx/data/uploads/ ]; then
if [ -n “$(ls -A /openedx/data/uploads/)” ]; then
echo “Migrating LMS uploaded files to shared directory”
mv /openedx/data/uploads/* /openedx/media/
rm -rf /openedx/data/uploads/
fi
fi
.
.
.
Loading settings lms.envs.tutor.production
WARNING:py.warnings:/openedx/edx-platform/lms/djangoapps/courseware/init.py:5: DeprecationWarning: Importing ‘lms.djangoapps.courseware’ as ‘courseware’ is no longer supported
warnings.warn(“Importing ‘lms.djangoapps.courseware’ as ‘courseware’ is no longer supported”, DeprecationWarning)
.
.
.
Your models have changes that are not yet reflected in a migration, and so won’t be applied.
Run ‘manage.py makemigrations’ to make new migrations, and then re-run ‘manage.py migrate’ to apply them.
WARNING:py.warnings:/openedx/edx-platform/lms/djangoapps/courseware/init.py:5: DeprecationWarning: Importing ‘lms.djangoapps.courseware’ as ‘courseware’ is no longer supported
warnings.warn(“Importing ‘lms.djangoapps.courseware’ as ‘courseware’ is no longer supported”, DeprecationWarning)

help please I’m stuck.

Based on the edx-platform documentation and source code, I believe this is the plugin you need:

name: courseprerequisistes
version: 0.1.0
patches:
  common-env-features: |
    "MILESTONES_APP": true,
    "ENABLE_PREREQUISITE_COURSES": true

@cacciaresi @CherieCAF @ChristianBarrientos Would you be so kind as to test this plugin and check whether it achieves what you want? If yes, I’ll add the configuration to the defaults.

1 Like

Regis,

That works.

Many thanks,
Cherie

1 Like

wondering if these settings are to be added to the default template? Would be glad to create a PR

Right! I never actually added these settings to the default Tutor configuration. I think it would make sense to add them. But did you actually manage to use milestones? There is another conversation going on here where @nachham struggles to use them: Enable section milestones - #8 by regis

There is interest in topic milestones and the end-of-course popup message, but the * hidden/undocumented* settings make it hard to configure correctly. I tried following the instructions from @HenryV (Complete the course button), but we could never trigger the “end of course event”. Perhaps he had set something previously that didn’t make it in his instructions. @slunav’s problem (Programs do not track progress on courses - #3 by slunav) seems directly related. More exploration is required on using milestones. We called it good enough if the learner could access their course certificate.

Regarding prerequisites: I consider course prerequisites a core and essential part of the platform and should be enabled by default. A course developer should have the option of using them in the course without asking the platform admin to enable them. Is there any reason not to enable the courseprerequisistes plugin by default in Tutor? The settings are well-documented, as linked by @reallyxloco. I find it interesting that Open edX does not enable them by default…

1 Like

This question is now tracked here: The course prerequisites feature should be enabled by default · Issue #492 · overhangio/tutor · GitHub

I’m not sure about the subsection mentioned in the other post… but at least course-level prerequisites works for me.