section-to-course
Purpose
Allows course authors to factor sections from Open edX courses into their own new course.
Installation
This application is not yet available on PyPI, so you will need to install it from source. You can install it from source on the current main
branch by adding:
git+https://github.com/open-craft/section-to-course.git
...to the requirements/private.txt
file of your Open edX installation, and then run pip install -r requirements/private.txt
. If you're developing locally without the platform, create a virtualenv using the latest Python 3.8 release, and then run pip install -e .
from the root of this repository.
Development
If developing on this application, you will need to install it as an editable package. To do so, follow these steps:
- Set up the Open edX devstack using the
nutmeg.master
version as explained in this guide.
Then, in the edx-platform
repository root, run:
git remote add open-craft git@github.com:open-craft/edx-platform.git
git fetch open-craft
git checkout open-craft/opencraft-release/nutmeg.2
- Then, in the
src
directory of your devstack, run:
git clone git@github.com:open-craft/section-to-course.git
Then, in your devstack
directory, run:
make dev.shell.studio
cd /edx/src/section-to-course
pip install -e .
Configuration (optional)
New courses are self-paced. If you want to set relative deadlines in them, follow the next steps:
Add the following Waffle Flags (with
Everyone: Yes
) in Django admin:Go to Django admin -> Course_Date_Signals -> Self paced relative dates configs and add a config with
Enabled: Yes
.
Usage
Once installed, the plugin should automatically register itself within Django. Be sure to run database migrations.
The admin views are in the Django admin, under the "Section to Course" section. From there, you can create a new section to course link, which will create a new course with the same content as the section you selected. You can also view the list of existing section to course links, refresh them, and delete them.
Note: The start date of a newly created course is in the future, so you will likely want to modify it in the "Schedule & Details" section in Studio.
Relative due dates (optional)
If you want to configure relative deadlines in your course, follow these steps:
- Mark a subsection in the newly created course as graded (otherwise, deadlines will be enforced but learners will not see these dates in the LMS).
- Enter the number of weeks in the subsection's "Due in" field.
- You may also want to adjust the new course's grading policy to change the weight of the section.
Refreshing a Course
There are two ways to refresh a course:
- Use the admin action from the changelist view. This will allow you to refresh several courses at once.
- Use the refresh button on the detail view for a single course, shown here:
License
The code in this repository is licensed under the AGPL 3.0.
Please see LICENSE.txt for details.
Contributing
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.
Reporting Security Issues
Please do not report security issues in public. Please email help@opencraft.com.