feat: mark new courses as self-paced [BB-7401] #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changes the new course to be self-paced instead of instructor-paced.
Testing instructions.
Studio -> Schedule & Details
).Please note that the Waffle flag to enforce these dates is currently broken in Nutmeg - you can use the branch from fix: use old-style Course Waffle flag for.RELATIVE_DATES_DISABLE_RESET_FLAG
edx-platform#539 (unless it's merged before you review this)Author's notes
1. Adding relative due dates to sections is a manual step because we will need to change the grading policy for new courses to ensure that completing the section results in a 100% grade from the whole course. This is a more significant change, so it's outside of this ticket's scope.2. Once the previous point is completed, we can mark the section as graded while creating the course. We can also allow setting the number of relative weeks from the admin form (if needed).
I thought about this a bit more and realized that I've been talking about sections, but the subsections are actually graded. I then tested the
cms.djangoapps.models.settings.course_grading.update_section_grader_type
method, and it turns out that it's possible to mark the whole section as graded. It's even displayed on the Course Outline page in Studio as such (without using this API there is no graded/ungraded indication there). However, it's impossible to modify this option on the Studio page, so we don't want to use this approach.Then, I thought about the second thing - i.e., setting a custom grading policy in the newly created course. We can do this with the
CourseGradingModel
mentioned above, but there could be multiple subsections in the "Lesson", so we don't know if all of them should be graded (and if they should be graded equally). Therefore, keeping the grading settings as a manual step sounds logical until we obtain more requirements from the client.We could set up a default relative date (
Number of Relative Weeks Due By
in the "Advanced Settings";relative_weeks_due
directly in the Course XBlock). However, it means that this date will be enforced for Problem blocks in ungraded sections, without informing learners about them anywhere (I've mentioned this in the README). Therefore, this would be a confusing behavior for both learners and course authors.Merge checklist:
Check off if complete or not applicable: