In order to remove the deprecated flag_undefined_default=True
argument, this commit updates the following flags to always be
enabled using a new temporary class:
- course_experience.course_outline_page
- course_experience.unified_course_tab
Adds a temporary setting `USE_DEFAULT_TRUE_NAMESPACE`,
to enable a monitored rollout of this change.
TNL-7061 is the ticket where these flags will actually be
removed. This requires more careful work including removing
all dead code, and potentially refactoring tests that were
testing shared functionality, but only when the flag was
False.
ARCHBOM-1316
- Looks at masquerading config for dates, outline, metadata, and
celebration APIs in course_home_api / courseware_api.
- Consolidates and cleans up places we check whether masquerading
gives us full access to a course.
This takes over some of the logic in the is_enabled property which
previously checked two things: (1) is the date time-sensitive and
(2) is the date even applicable to this course.
Now, is_enabled is only responsible for time-sensitive checks and
the new is_allowed property checks applicability.
In this way, we can more cleanly separate whether a date block
should show up on the dates sidebar (is_enabled and is_allowed)
and the dates tab (is_allowed).
- use new dates banner template on course outline page
- remove old banner from main.html
- let dates tab use new dates banner template
- remove dates banner completely from the courseware problem view
on the web app
- use new banner on the courseware problem view on the mobile app
- update banner util to use get_course_blocks
In the course outline, if a subsection has any graded content,
show a graded icon (the pencil icon).
Also, show the graded icon for LTI xmodule units (xblocks is a
different repo, but will get same treatment).
AA-75
TNL-7053
The courseware_api view will use check_course_access - which now returns AccessResponse objects, and all other uses of check_course_access will now use check_course_access_with_redirect, which is a drop-in replacement for the original check_course_access implementation.
We also added a few new helpers to access_utils:
- check_public_access is a replacement for allow_public_access, which now returns AccessResponse objects
- check_enrollment checks if the learner is enrolled, and uses check_public_access to account for COURSE_ENABLE_UNENROLLED_ACCESS_FLAG
- check_survey checks whether there is a required survey that the learner must complete prior to accessing the course.
There are two new kinds of AccessError subclasses:
- SurveyRequiredAccessError
- EnrollmentRequiredAccessError