Currently, all XBlock/XModule handlers are lumped together in the
same transaction (courseware.module_render:handle_xblock_callback).
This makes it difficult to pinpoint problems with specific handlers.
With this change, the transaction name will now look like:
OpenAssessmentBlockWithMixins.save_submission
CapaDescriptorWithMixins.xmodule_handler/problem_show
fix for making sure all descriptor fields are always available for course descriptors despite module_class tricks
add required fields to cache data for tests
use a different strategy to mock up the get_children method
Switch to font awesome icons, to fix issue with toggling collapsible sections of the schedule in ccx coach dashboard
Ensure access check takes place after descriptor is bound to the user, or field override checks will never happen
Original Commit Messages:
use edx's own get_parent method, rather than our own.
add field to unique constraint to avoid MultipleObjectsReturned in case of multiple browser clicks on submit
fix 0011 migration, inherit from TimeStampedField and add composite index (migration only)
fix bug where adding an already registered user to a ccx would cause a crash due to an undefined variable
add assertNumQueries tests to test modules where override field providers are used
remove unnecessary teardown
implement recommended style for checking empty list
import utility methods rather than use duplicate code
added comment explaining date conversion to string for json
add logging for invalid users or emails when enrolling students
add comment about xmodule user state
avoid using get_or_create, which seems to be causing a race condition on schedule change save
relocate badly placed edvent handlers to fix multiple submit problem
Final official name is Custom Courses for EdX (CCX), rename all code to remove previous name.
Rename the FEATURE constant used to identify this feature
Rename the middleware for the CCX change
rename the constant used for storing the current poc id on the session.
rename the _PocContext threading local
rename the override provider in all places where it is referenced
`PersonalOnlineCoursesOverrideProvider` -> `CustomCoursesForEdxOverrideProvider`
generally rename symbols from overrides.py to replace `poc` with `ccx` where possible without changing model names or attributes
rename more symbols from poc to ccx
rename util functions from app utils module
general symbol renaming poc -> ccx in views.py and related url changes
Rename the coach role wherever it is used.
reword poc_coach to ccx_coach
UI rename
replace POC with CCX globally
template context variable renamed
rename poc_ to ccx_ in urls and all related locations (views, js, scss etc)
remove pocs migrations
Final massive renaming, including models. Re-built migration.
cleaning up a few tailing references
Fix reference typo in schedule template JS
undo modifications made on the fly in test setup to ensure that our tests are properly isolated from the rest of the system tests.
Fixesjazkarta/edx-platform#38
Clean up some leftover strings and comments
fixing more strings and comments in python files
fix a naming error in the schedule tab that was causing problems in deleting courseware items.
Fixesjazkarta/edx-platform#36
updating tests and utility code to match changes in infrastructure from latest rebase
Django double-importing overwrites the TESTUSER object, invalidating identity comparisons. Use a string instead to avoid the problem.
The get_current_poc function operates using a threadlocal and so no longer requires the user as an argument
Use client's session to set POC for test, now that we have the capability to do that.
Use a middleware to set the current POC one time per request, and avoid having to look up the stack for the current request in 'get_current_poc'.
Fetch all overrides for a block at one time.
Speed up the lineage computation by doing some caching.
Unused import.
Get field overrides once per user per block.
Streamline configuration.
Fix poc config tuples
This feature provides the ability to designate a "coach" who can create customized runs of an existing course, invite students to participate, and manage students through the run of the course.
In this squashed commit we implement the initial scifi, add the 'POC Coach' course role, refine the scifi, add migrations for models, create POCs, enforce POC Coach role, provide panels for Coach Dashboard, set up rudimentary display of course outline, add and remove units, show/hide all units, and save schedule changes, set dates when adding units, edit dates on units already added and provide some tests.
We also provide mechanisms for invitation and enrollment in a POC (to become CCX) and control the display of blocks to students in a POC.
individual students, and a reimplementation of the individual due date
feature.
This work introduces an architecture, used with the 'authored_data'
portion of LmsFieldData, which allows arbitrary field overrides to be
made for fields that are part of the course content or settings (Mongo
data). The basic architecture is extensible by means of writing and
configuring arbitrary field override providers.
One concrete implementation of a field override provider is provided
which allows for overrides to be for individual students. This provider
is then used as a basis for reimplementing the individual due date
extensions feature as a proof of concept for the design.
One can imagine writing override providers that provide overrides based
on a student's membership in a cohort or other similar idea. This work
is being done, in fact, to pave the way for the Personal Online Courses
feature being developed by MIT, which will use an override provider very
much long those lines.
This is required so that an a video module exported by one Open edX
deployment and imported by another will work correctly if it contains an
edx_video_id but does not populate other URL fields.
JIRA: MA-110
- added entrance exam check on course info
- staff can by pass gating and added tests
- refined gating logic
- changes after rebasing with Asad's branch
- check ENTRANCE_EXAMS feature is enabled
- updated test to reflect new logic
- catering anonymous user in entrance exam permission
- fixed broken tests
- change after feedback on 16/3
- fix for a broken test
- created new entrance_exams module
- fixed quality error and improved test coverage
- put get_required_content back in milestones helper
- Refactored entrance exams logic
- Refactored tabs logic
- Fixed broken unit test
- changes after feedback from dan-f on 3/27
- removed unnecessary user.is_anonymous check
- Addressed PR feedback
- Addressed commit-specific feedback
- Rework guard clauses
- Add coverage for course info case