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.
As some i18n features need ```ugettext``` or its shorcut ```_``` to be called on a non-string-literal, so the pylint check of ```translation-of-non-string``` should be explicitly disabled in such situations.
Update edx-lint to the version that checks if tearDown uses super.
Convert a number of tearDown methods into addCleanup.
Remove some unneeded tearDown methods: no need to call patch.stopall if
none of them were started with patch.start.
This file was never run, because of a missing __init__.py. It needs a
super() call to make the ModuleStoreTestCase work properly.
Then one test failed, because of a missed change from dollar to
configurable currency.
Allow global staff to generate example certificates
on the instructor dashboard.
Allow global staff to enable/disable self-generated
certificates for a course.
Conflicts:
lms/djangoapps/courseware/courses.py
lms/djangoapps/instructor_task/api.py
refined entrance exam student attempts reset
Quality improvements 1/16
added rescore, delete state and task history functionality
added unit tests for entrance exam reset attempts
added unit tests for re scoring of entrance exam and task history
improved test coverage
Got rid of pep violation
feedback changes and added jasmine test
added more jasmine tests for Javascript changes
added bok-choy tests for UI changes
replaced input containing <p> tags with <label>
Removed ee element assertions to avoid js error
Added call to super.setUp()
changes based on feedback on 2/18
Writing tests in JS instead of coffee script
commit related to skip entrance exam 2/13
fixed bad-continuation quality error
fixed broken bok-choy test
changes based on feedback on 2/18
added js tests and removed coffee script tests
fixed broken bok-choy and unit tests
changes left while rebasing
rephrase test titles
do not need these libs
changes based on feedback on 2/24
changes text which was left
Changes based on feedback on 3/3
The existing pattern of using `override_settings(MODULESTORE=...)` prevented
us from having more than one layer of subclassing in modulestore tests.
In a structure like:
@override_settings(MODULESTORE=store_a)
class BaseTestCase(ModuleStoreTestCase):
def setUp(self):
# use store
@override_settings(MODULESTORE=store_b)
class ChildTestCase(BaseTestCase):
def setUp(self):
# use store
In this case, the store actions performed in `BaseTestCase` on behalf of
`ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
had specified to use `store_b`. This is because the `override_settings`
decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
no matter what `ChildTestCase` does.
To remedy this, we move the call to `override_settings` into the
`ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
Subclasses can just defined the `MODULESTORE` class attribute to specify which
modulestore to use _for the entire `setUp` chain_.
[PLAT-419]
Makes logistration available at /login and /register as well as /accounts/login/ and /accounts/register/. In addition:
- Adds support for redirect URLs in third party auth for combined login/registration page
- Adds support for external auth on the combined login/registration page
- Removes old login and registration acceptance tests
- Adds deprecation warnings to old login and register views
- Moves third party auth util to student_account
- Adds exception for microsites (theming)
Added receipts_pdf.py
Used Paragraph for displaying a large body of text.
added the table
Line breaks in the para text. font size adjusted.
Improved the main table (alignments) and totals (converted to a table as well)
Converted the footer into a table, and allowed for pagination.
Added pagination to item data table.
Handled wrapping of long descriptions into multiple lines.
email attachment for both invoice and receipt
added the currency from the settings
Removed magic numeric literals and added meaningful variables.
Added initial set of substitutions from configuration
add defining logo paths via configuration
Removed font dependencies. Will use the system default fonts which appear good enough to me.
Alignment adjustments as per suggestions.
Fixed the pep8 violations. Added comments to styling
added the decimal points to the price values
Cleanup. Docstrings.
i18n the text in the pdf file
fix pep8/pylint issues
Changed the amounts from string to float.
Overrode the 'pdf_receipt_display_name' property in the OrderItem subclass Donation.
used the PaidCourseRegistration instead of the parent OrderItem to avoid course_id related exceptions.
quality fixes
added the test cases for the pdf
made the changes in the pdf suggested by griff
updated the pdf tests to assert the pdf content
used the pdfminor library
fix quality issues
made the changes suggested by Will
added the text file that says "pdf file not available. please contact support"
in case pdf fails to attach in the email
Update the redeem code schema
Updating the redeem code schema.
Adding migration file.
Adding course mode support when redeeming a code.
Conflicts:
lms/djangoapps/shoppingcart/views.py
Add sales admin privileges for redeem code generation.
Making sure redeem code URLs work for verified courses.
pep8 violations
Code Review and Test Cleanup changes
Added tests, fixed tests.
Updating the boolean checks in ecommerce template
added the functionality of adding the expiration date, and also handled in the shopping cart when the user try to add the expired coupon code in the shopping cart
added expiration date in the coupons list in the ecommerce page
added the unit tests and jasmine tests
fix the quality issues and rebased with master
regenerated the migration file with a different number
i18n and verified te course mode
changes suggested by stephan