openedx / openedx/openedx-platform

CCX: Allow optional inheritance of master course schedule on creation

Open
#37,892 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

Context:

When creating a CCX (Custom Course for edX), edx-platform automatically applies visible_to_staff_only overrides to all units from the master course. This causes the CCX to be created with no visible units or schedule for learners.

Some platforms use CCXs as parallel course instances that should inherit the master course structure and schedule immediately, rather than starting fully hidden and requiring manual intervention by the coach.

Problem statement

Today, CCX creation always hides all content inherited from the master course by applying visible_to_staff_only = True overrides at multiple levels of the course tree. This behavior:

  • Prevents CCXs from inheriting the master course schedule

  • Requires coaches to manually re-enable visibility for all units

There is currently no supported or configurable way to allow a CCX to expose master course units and schedule at creation time while preserving the existing default behavior.

Proposal

Introduce a configurable mechanism to control whether CCX creation should hide master course units.

When the mechanism indicates that schedule inheritance is enabled:

  • CCX creation should skip applying visible_to_staff_only overrides

  • Units should remain visible to learners

  • The CCX should reflect the master course structure and schedule

When disabled (default behavior):

  • CCX creation should continue hiding all content, preserving backward compatibility

Why this is viable

Backward compatible: the default CCX behavior remains unchanged

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the CCX creation flow and the places where visible_to_staff_only overrides are applied to the course tree. Identify an existing configuration mechanism that could control this behavior. Done means the default still hides inherited content, while the enabled path preserves learner-visible units and the master course schedule; no file or test is named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.