Implement the use of CCX opaque keys throughout the ccx code base
include the new custom ccx id package in the github checkouts list
update the coach dashboard wrapper to get CCX information from the incoming course_id, if possible
update function signatures for all view functions to expect CCX as passed by the dashboard wrapper (default to None), remove calls to get_ccx_for_coach as the ccx is passed in.
update reverse calls in python view code to use a CCXLocator for the URL instead of a CourseLocator
use CCXLocator where necessary
use course id to find ccx, instead of thread local
remove unused method and related tests
use course id for getting ccx
provide course id to the get_current_ccx method
ensure the course id passed in is a CourseKey instance of some type whether it starts out as a string or not
use the provided block to figure out what the course_id should be, then get the ccx for that
redirect to ccx dashboard using coach ccx if no ccx is passed in
update student dashboard listing for ccx to build an appropriate url from a CCXLocator, not from the course locator.
refactor building the ccx locator so we don't have to do it repeatedly
begin test refactoring after ccx_keys introduction
Ensure that when access checking happens, the course_locator form of a ccx locator is used. This ensures that the access check happens against the course and it is not necesarry to duplicate the entire access control structure for the course.
pick up api change in ccx-keys
create and conditionally use a wrapper for the mixed modulestore returned by xmodule.modulestore.django.modulestore
the wrapper will strip and restore ccx values from CourseKey and UsageKey objects
fix return values on a few methods
remove unused symbol
pull updated ccx-keys package
set course_id on the caching descriptor system to avoid api incompatibilities in some subsystems
use ccx.course instead of self.course
fix get method to find course keys from blocks that are not themselves keys but have a location attribute (which will be a key)
if an item coming out of the db has children, restore the ccx to them as well
if the block passed in has a CCX key, unwrap that before we try to look up the override, otherwise it will never be found.
pick up a change in the ccx keys package that allows for stripping CCX identity from a usage key
begin writing tests to cover this modulestore wrapper
remove the switch_pocs view, the url pattern for it, and the tests that covered it
remove the ccx context and the middleware responsible for setting the current CCX. These are no longer needed
all dashboard views should raise 404 if a ccx is not provided by the coach_dashboard decorator
code quality
prevent errors resulting from trying to `get` a ccx based on non-unique criteria.
remove obsolete usage of ACTIVE_CCX_KEY
fix setUp method for grading tests to properly create grades for the ccx rather than for the course.
clean up reverse calls
code quality
adding docstrings to clarify purpose of this patch
fix bug in getting ccx for coach
fix grading views to properly fetch a ccx-ified course so that grades for that version will be calculated
fix small errors in modulestore implementation
fix errant merge marker
update call to get_current_ccx after key refactoring merged with tab changes
- added the abstract and concrete layers of enrollment report provider
- created a celery task.
-added the button in the e-commerce reports section
added the enrollment data backend
added the payment data and start writing the test cases.
updated the code with the feedback suggestions and wrote some test cases.
- all the downloadable reports are now visible in the ecommerce download section.
Pending instructor tasks is also visible in the ecommerce section
added the fields in the user profile information
changed the report store configuration key
added the new http endpoint for financial reports to add more permissions for finance_admin to access.
fix quality issues
added test cases to check csv content data
rebased with master and resolved conflicts
changed the log messages
added the changes as per code clintonb suggestions during code review
updated the test cases for the finance_admin decorator
changes suggested by clinton.
Created and moved Table level filters to the Custom Manager for the CourseEnrollment model.
ecommerce.js file was loaded twice in the instructor_dashboard.js fixed the issues
added the registration code column in the csv
added the full gender in the csv file
Update data sources and add display name translations for the report columns
fix meta name
Make sure the reports section does not appear on non whitelabel courses
pylint fixes
expand out enumerated values
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
Show the display name for the POC in the menu for switching.
Remove the MOOC: prefix from the MOOC title to avoid truncation issues.
Incorporate the display name of the POC into the display of course org/number/name at the top of the page in the default theme.
Provide warning on the grading policy page in system warning style.
Provide a PocMembership model api that returns PocMemberships for a user. Default to active memberships.
Build generator that yields triplets of poc, membership and course for each poc membership a user has.
This is an analog of the `get_course_enrollment_pairs` in common/djangoapps/students/views.py and is used in the student dashboard to provide pocs as options for a student to view.
refactor to use model api instead of inline code.
provide pocs as possible targets for a student to visit from their dashboard.
Unset the current active poc when visiting the dashboard so as to avoid needing to switch active pocs when viewing a plain course. This ensures we can leave template code for the display of courses unchanged.
Update templates to show pocs in a course-like view on a student's dashboard.
Revert a portion of the template change so that the poc title will still render properly when a poc is being viewed.
Based loosely on course enrollment model
Ensure that registered users are 'active' when they are enrolled in a POC
Respect the 'auto enroll' and 'email students' checkboxes in the UI
Add an auto_enroll flag to the PocFutureMembership model so we can automatically enroll non-users when they have registered and activated their account.
Build a future enrollment using the auto_enroll value from the request so we can ensure that non-existent users can be auto-enrolled
Ensure that any user added by way of the one-at-a-time UI is automatically auto-enrolled
Update tests with email sending to use the flag from the request
Provide api on the PocMembership object to auto-enroll a newly active member in this poc.
This method will delete the passed PocFutureMembership object and will automatically enroll the user in the POC named in that future membership as well as the MOOC from which it was created
Conditionally activate poc memberships that are pending when a new registree first activates their account.