- Doubled up :hover and :focus styling to improve a11y
- Increase contrast of certain UI elements for improved a11y
- Added some image alt text for a11y
- Changed video caption styling to blue and made them underline on hover and added a skip link before video for screenreaders.
Fixes Bugs:
- LMS-1336
With tests, some settings changes
(all should default to not breaking anything for edx)
Added styling for shopping cart User Experience
- Styled shoppingcart list page
- Styled navigation shopping cart button
- Styled receipt page
- Styled course about page for shopping cart courses
Addressed HTML/SCSS issues
Remove offending body class and unnecessary sass changes
Addresses many review comments on stanford shopping cart
* framework for generating order instructions on receipt page
in shoppingcart.models
* move user_cart_has_item into shoppingcart.models
* move min_course_price_for_currency into course_modes.models
* remove auto activation on purchase
* 2-space indents in templates
* etc
revert indentation on navigation.html for ease of review
pep8 pylint
move logging/error handling from shoppingcart view to model
Addressing @dave changes
Adds a new Email link to the instructor dashboard for frontend interface to send
email to course members. Adds a feature flag ENABLE_INSTRUCTOR_EMAIL to toggle this.
Creates a new djangoapp bulk_email that handles this action by getting the recipient
list and batching the emails to different celery tasks to do the actual sending.
Requires lynx package to convert HTML email to plaintext. Handles SMTP errors by
retrying or falling through to the next email. Adds the option to opt out of course
specific emails in the user dashboard with an Email Settings link for each course.
Uses severable configurable settings with defaults. DEFAULT_BULK_FROM_EMAIL
specifies the from address for email. EMAILS_PER_TASK specifies the number of emails
each celery task takes on. EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER,
EMAIL_HOST_PASSWORD, and EMAIL_USE_TLS for the SMTP email backend settings.
Co-authored-by: Akshay Jagadeesh <akjags@gmail.com>
If a course is not started, the course image and title on the dashboard link
to the course about page. Because the LMS course about pages do not exist
(i.e. 404) with the marketing site enabled, we simply do not use a link if
the course has not started.
Now that we are using separate pages for login and registration rather than
modals, clicking the registration button for a course should direct an
unauthenticated user to the registration page, and the user should be enrolled
in the course upon successful registration. Likewise, an unauthenticated user
attempting to unenroll from a course should be directed to the login page and
subsequently unenrolled from the course upon successful login. The enrollment
change service also now uses HTTP status codes rather than JSON to communicate
status to the front end.