Skip to main content

section-to-course

PyPI CI Codecov Supported Python versions License Project status

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:

  1. 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
  1. 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:

  1. Add the following Waffle Flags (with Everyone: Yes) in Django admin:

    1. studio.custom_relative_dates

    2. course_experience.relative_dates

    3. course_experience.relative_dates_disable_reset

  2. 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:

  1. 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).

  2. Enter the number of weeks in the subsection’s “Due in” field.

  3. 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:

  1. Use the admin action from the changelist view. This will allow you to refresh several courses at once.

  2. Use the refresh button on the detail view for a single course, shown here:

A screenshot of the admin page showing the refresh button in the upper left

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.

Change Log

Unreleased

[0.4.3] - 2024-02-21

Fixed

  • Compatibility of compat imports with post Quince releases.

[0.4.2] - 2023-11-15

Changed

  • Upgraded tox from v3 to v4 and removed tox-battery.

Added

  • Created a new test for missing migrations and added it to the CI.

Fixed

  • Added a missing Django migration.

  • Replaced the invalid ROOT_URLCONF in test_settings.py.

  • Made ./manage.py executable.

[0.4.1] - 2023-11-07

Fixed

  • Compatibility of compat imports with Palm.

[0.4.0] - 2023-05-18

Changed

  • Removed course autocomplete for performance reasons. Source courses must now be specified by course key pasted into the source course ID field.

Added

  • Github integration-tests action.

[0.3.0] - 2023-05-12

Changed

  • New section-based courses are self-paced.

[0.2.0] - 2023-05-10

Added

  • Admin views for creating new section-based courses.

  • First release on PyPI.

[0.1.0] - 2023-04-03

Added

  • Initial section-derived course creation code.

Metadata

Release files for section-to-course 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for section-to-course 0.4.3
File Size Uploaded
section-to-course-0.4.3.tar.gz 32.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for section-to-course 0.4.3
File Interpreter ABI Platform
section_to_course-0.4.3-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 63.7 kB

Release files / section-to-course-0.4.3.tar.gz

Download URL section-to-course-0.4.3.tar.gz
Size 32.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ee7c9ac7f65faa9264485a0544e1b4f98b1b877f3e4f84647601cc078f44fdce
BLAKE2b-256 checksum
How to use checksums
9e7fa26bac5087ccb5bcc24d36a2a0c35aca4cc35645af97412eb687255741ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / section_to_course-0.4.3-py2.py3-none-any.whl

Download URL section_to_course-0.4.3-py2.py3-none-any.whl
Size 31.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
a9dcb6e05430cb93157da25d37352a3c338af4d8e33c3388e52568b8fd278849
BLAKE2b-256 checksum
How to use checksums
7e6ab7a13de88518604e84342d8fb097c0d759279a5d9a8f7f2494e77768ac83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.4.3 This release

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page