openedx / openedx/openedx-platform
CCX: Allow optional inheritance of master course schedule on creation
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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