Repository navigation
CompetencyMasteryStatus and StudentCompetencyStatus data models - #830
jesperhodge wants to merge 1 commit into
Conversation
|
Thanks for the pull request, @jesperhodge! This repository is currently maintained by 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 approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo 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:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere 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:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
|
Closing in favor of a draft PR from the top of the stack instead of a base-branch placeholder — see the replacement PR for the #642 mastery-status stack. |
|
Reopening — reverting the top-of-stack approach in #832 back to this base-branch PR at the bottom of the stack. |
|
I think the PR description is ready now |
Base branch for the openedx#642 mastery-status PR stack (cbe-642-01-models-package, cbe-642-02-mastery-status, cbe-642-03-competency-status), each targeting the previous PR in the stack. The branch has to stay one commit ahead of main for openedx#830 to remain open, and main now derives __version__ from package metadata, so this commit carries no change. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
b9fa0b9 to
d68558e
Compare
|
#852 has been merged. |
Description
This PR is the base branch for the reviewable stack that implements the two of #642's four
models that do not depend on #641:
CompetencyMasteryStatus, the lookup table of the threemastery ranks (
AttemptedNotDemonstrated,PartiallyAttempted,Demonstrated), andStudentCompetencyStatus, the top-level table recording a learner's current mastery status forone competency (a
Tag), one row per learner per tag, updated in place rather than appended.Supporting information
which starts at StudentCompetencyCriteriaStatus and StudentCompetencyCriteriaGroupStatus data models jesperhodge/openedx-core#20 and is out of scope here.
Note
Implemented by an AI agent (Claude Code), with a human directing the work and reviewing the
code and decisions.
How to review this PR
Review the stack on my fork, bottom to top. Do not review this PR directly — its own diff is
empty: it holds an anchor commit that GitHub requires to open a PR with commits ahead of
main.cbe/models.pyinto amodels/package that it used to carry landed via #800.CompetencyMasteryStatus, the mastery-rank lookup table, and its seed migration.StudentCompetencyStatus, the top-level learner mastery table.Each PR targets the one below it; #16 targets this PR's branch (
642-stack-base-branch), whichitself targets
main. Review comments belong on the part that owns the code.How to merge
mainonce the stack above is fully merged into its branch.Migration numbering
This PR's migrations are
0008_competency_mastery_status,0009_seed_competency_mastery_statusesand0010_studentcompetencystatus, which follow #641's0007onmain. #847 also adds a migration0008, and #820 adds a0002. Whichever of these PRs merges second renumbers its migrations after the other, because Django rejects a migration graph with two leaf nodes.Testing instructions
Confirm no migration drift:
By hand, the two behaviors most worth confirming are the "one row per learner and tag" constraint
and that a
Tagin use cannot be deleted out from under a recorded status:CI's MySQL job is the one that matters for the check constraint above; SQLite enforces it too,
but MySQL is the backend #642 was written against.