The function `create_account_with_params` calls `_do_create_account`,
which exhibits some discrepant behavior with throwing errors when handling
duplicate email and/or username.
A duplicate email raises a `ValidationError` (rather than the expected
`AccountValidationError`) from the first part of `_do_create_account`,
when errors from `form` (the `AccountCreationForm`) are raised.
A duplicate username raises the expected `AccountValidationError`, but
from a later part of `_do_create_account`. As a result, registering with
both duplicate username and email raises a `ValidationError` for email only.
The user message for username is “An account with the Public Username
'{username}' already exists.” which differs from that of email, “It
looks like {email} belongs to an existing account. Try again with a
different email." The latter is more consistent with other user messages.
Test all errors raised by account creation function as a result of
duplicate email/username will be caught, if the user somehow managed to
pass the first check, `check_account_exists`.
Previously, there was no catch for the AccountValidationError
exception raised by the account creation function. If, for some
reason, the user made it past the first check for a duplicate
username/email, then the exception was raised, uncaught, and
crashed the server.
LEARNER-1628
This allows enrolled users to write reviews on the reviews page that
can be accessed through the course tools sidebar. A button in the top
corner of the page toggles the widget that is configured with a
setting in the common.py file. The reviews tool is Course Talk.
* Change settings default
* Set `ENABLE_CREATOR_GROUP` to False for devstack
* Set `ENABLE_CREATOR_GROUP` to False for tests
In f095c5fec6 it was decided to enable
anyone to make courses in Studio by default in order to make things
easier in dev environments. This was before the code was open source.
This default is likely in effect for many Open edX instances, but almost
no one would want this setting outside of development.
In production environments, the DiscussionXBlock was generating CSS and
JS asset URLs that pointed to the unminified versions of those bundled
assets. Due to our nginx rules, this would cause the assets to be
served without the long expiration times, forcing the user's browser to
constantly refetch these assets while browsing a course.
[PERF-431]