As an email marketer, I would like to send an account activation reminder to learners who haven't activated
their accounts to increase their chances of coming back and engaging with our platform. Each user profile in
SailThru will have a var with the correct activation_key originally assigned to the user.
LEARNER-2110
When provided, this setting appends tpa_hint=<value> to the `next` URL provided for /login and /register page URLs, which bypasses the Open edX Login/Register page with an an automatic redirection to the TPA login/register URL.
This allows the already implemented tpa_hint feature to be automatically added to login, registration, and enrolment URLs generated throughout the platform.
Avoids auto-appending the tpa_hint parameter when the request is already in the TPA pipeline, to prevent infinite redirect loops, and adds tests to verify this behaviour.
When purchasing multiple courses (especially with bundled Program purchase) the donation box shows up multiple times. Donation box should only show once regardless of number of courses purchased.
LEARNER-2125
Input forms that need validation will have AJAX requests
performed to get validation decisions live.
All but a few important and common form fields perform
generic validation; these will need a back-end handler
in the future in order to have them validated through AJAX requests.
Information is conveyed on focus and blur for both
errors and successes.
In particular, implement a validation API for registration,
where a client makes AJAX calls to the endpoints requesting
validation decisions on each input. Responses are strings
dependent on the type of validation error; if no error,
then empty string to indicate OK.
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.