Skip to content

Conversation

@bradenmacdonald
Copy link
Contributor

Sketch of a possible OutlineRoot model, for https://openedx.atlassian.net/wiki/spaces/AC/pages/4612685830/Migrating+Courses+to+Learning+Core

WIP

The requirements for OutlineRoot are:
- One OutlineRoot per course run
- Children must all be containers (Sections, Subsections, or Units) and
all children must be the same type
- Never used in libraries
- Never added as a child of another container type

@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label May 13, 2025
@openedx-webhooks
Copy link

Thanks for the pull request, @bradenmacdonald!

This repository is currently maintained by @axim-engineering.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

Details
Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.

@github-project-automation github-project-automation bot moved this to Needs Triage in Contributions May 13, 2025
@mphilbrick211 mphilbrick211 moved this from Needs Triage to Waiting on Author in Contributions May 15, 2025
@openedx-webhooks openedx-webhooks added the core contributor PR author is a Core Contributor (who may or may not have write access to this repo). label May 15, 2025
@bradenmacdonald bradenmacdonald changed the title feat: OutlineRoot model Prototype models for Courses and Outline Roots in Learning Core May 20, 2025
Comment on lines +26 to +40
class CatalogCourse(models.Model):
"""
A catalog course is a collection of course runs.

So for example, "Stanford Python 101" is a catalog course, and "Stanford
Python 101 Spring 2025" is a course run of that course. Almost all
interesting use cases are based around the course run - e.g. enrollment
happens in a course run, content is authored in a course run, etc. But
sometimes we need to deal with the related runs of the same course, so this
model exists for those few times we need a reference to all of them.

A CatalogCourse is not part of a particular learning package, because
although we encourage each course's runs to be in the same learning package,
that's neither a requirement nor always possible.
"""
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ormsbee @kdmccormick So do you think I should remove the CatalogCourse model because we don't want it in the authoring domain, and just put org/course_id into the course run model?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My gut says to remove CatalogCourse. Does that make the prototype any more difficult?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mmm, I don't think it's any more difficult either way.

@kdmccormick kdmccormick mentioned this pull request Jun 13, 2025
Copy link
Member

@kdmccormick kdmccormick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these look great as a starting place for the prototype. Thanks!

Are you looking for review for a merge to main? If so, I'd want to open a discussion about whether Course (run) even belongs here. My sense is that we would need to step back and decide where LearningContext goes, and then define Course with that in mind. I'm not even sure authoring is the right app.

But we can table that discussion for later if these are just for the prototype.

@bradenmacdonald
Copy link
Contributor Author

@kdmccormick No, I was just going to merge these into the lc-course-prototype branch, but I see you've already incorporated them so I can actually just close this for now unless you want to keep discussing it here.

I'm kinda leaning toward keeping both Course[Run] and CatalogCourse in here, but moving them into a core domain instead of an authoring domain. That's a long-term discussion that we don't need to have now though. I guess for now, do you have any preference about it for the prototype, like do you care if I leave CatalogCourse in or do you want me to refactor it to just have Course[Run] ?

@kdmccormick
Copy link
Member

Nope, no preference!

@mphilbrick211
Copy link

@bradenmacdonald - hi there! Is this still in progress?

@bradenmacdonald
Copy link
Contributor Author

@mphilbrick211 We're still deciding how to move forward on this. I'll close it for now, and we can keep it as a reference.

@github-project-automation github-project-automation bot moved this from Waiting on Author to Done in Contributions Sep 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core contributor PR author is a Core Contributor (who may or may not have write access to this repo). open-source-contribution PR author is not from Axim or 2U

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants