Commit Graph

697 Commits

Author SHA1 Message Date
Sarina Canelake
b3bc4023b0 Refactor html->plaintext conversion (for bulk email) into separate library 2013-08-29 12:40:33 -04:00
Sarina Canelake
f98d6764b2 Disable bulk email for XML-backed courses 2013-08-29 12:40:32 -04:00
Sarina Canelake
65f7b098dd Bulk Email: Add design styling
Switch to using decorators; refactor and cleanup tests.
2013-08-29 12:40:32 -04:00
Kevin Luo
3b32d4216c Add delay to course bulk email task and use SITE_NAME for site url
Delay for possible race condition with fetching course email object.
 Use settings.SITE_NAME for host name to generate email footer url.
2013-08-29 12:40:32 -04:00
Kevin Luo
3ea2b24b98 Add HTML editor for authoring bulk email message (adopted from CMS) 2013-08-29 12:40:32 -04:00
Kevin Luo
907bf6e1b7 Add bulk email feature for instructors, with optout option
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>
2013-08-29 12:40:31 -04:00
Adam Palay
2e47d61cef fixes delete state on dashboard 2013-08-19 10:22:42 -04:00
David Ormsbee
3ce87583ab Shift enroll/unenroll logic to CourseEnrollment model, add is_active and mode.
Features coming down the pipe will want to be able to:
* Refer to enrollments before they are actually activated (approval step).
* See what courses a user used to be enrolled in for when they re-enroll in
  the same course, or a different run of that course.
* Have different "modes" of enrolling in a course, representing things like
  honor certificate enrollment, auditing (no certs), etc.

This change adds an is_active flag and mode (with default being "honor").
The commit is only as large as it is because many parts of the codebase were
manipulating enrollments by adding and removing CourseEnrollment objects
directly. It was necessary to create classmethods on CourseEnrollment to
encapsulate this functionality and then port everything over to using them.

The migration to add columns has been tested on a prod replica, and seems to be
fine for running on a live system with single digit millions of rows of
enrollments.
2013-08-14 13:23:06 -04:00
Adam Palay
431eb8f4e7 remove 'preview' from urls in enrollment emails sent while previewing a course 2013-08-12 14:28:15 -04:00
Miles Steele
b1074ff1ac add i18n 2013-08-12 11:25:26 -04:00
Miles Steele
4afde4dd79 add proxied analytics graphs, refactor analytics 2013-08-08 13:16:48 -04:00
Miles Steele
fb8c84a516 add analytics proxy endpoint 2013-08-08 13:16:47 -04:00
David Baumgold
714d3b9662 pylint fixes 2013-08-06 14:36:13 -04:00
David Baumgold
7b01147c1a Translate messages early 2013-08-05 13:51:47 -04:00
David Baumgold
8807d9fe51 Integrate JsonResponse into lms/djangoapps/instructor/views/api.py 2013-08-05 13:00:30 -04:00
Miles Steele
4b671d1195 fix pylint violations 2013-08-02 09:53:21 -04:00
Miles Steele
2760938e15 fix analytics distribution with no data, add unit test, cleanup 2013-08-02 09:53:21 -04:00
Miles Steele
f7989cb2ab move to instructor template directory 2013-08-02 09:53:21 -04:00
Miles Steele
02b7757d1b add catch for tasks AlreadyRunning 2013-08-02 09:53:21 -04:00
Miles Steele
8e923deca0 fix unicode comparisons, fix 404 access exception, fix initial link handling, fix forum access modification permissions 2013-08-02 09:53:20 -04:00
Miles Steele
b44e8fe8b8 add regrade & rescore & task api tests, clean api 2013-08-02 09:53:20 -04:00
Miles Steele
7905e7d289 add csv & enrollment & access api tests, disallow instructors from un-instructoring themselves, rename mode to action for access 2013-08-02 09:53:20 -04:00
Miles Steele
0f09abe233 factor out urls to instructor.views.api_urls 2013-08-02 09:53:20 -04:00
Miles Steele
7392a888ce cleanup, fix permissions, rename functions, add more api tests 2013-08-02 09:53:20 -04:00
Miles Steele
e05d0f97d8 fix permissions, fix ENABLE_INSTRUCTOR_BACKGROUND_TASKS usage, fix csv download 2013-08-02 09:53:19 -04:00
Miles Steele
cc9371d14e fix formatting, address comments from PR #322 2013-08-02 09:52:18 -04:00
Miles Steele
91bd3d7231 change arguments to format_dictlist 2013-08-02 09:52:17 -04:00
Miles Steele
63d07b7e47 rename enrolled_students_profiles -> enrolled_students_features 2013-08-02 09:52:17 -04:00
Miles Steele
94ac02e8b4 refactor enrollment action reporting 2013-08-02 09:52:17 -04:00
Miles Steele
096f7dcd23 add docstrings, cleanup (minor) 2013-08-02 09:52:17 -04:00
Miles Steele
0d6a12fda6 cleanup (fix typos, remove TODO, formatting) 2013-08-02 09:52:17 -04:00
Miles Steele
f25b414d40 fix pep8 violations, fix pylint violations 2013-08-02 09:52:15 -04:00
Miles Steele
a727959d18 add feature switch for beta dashboard 2013-08-02 09:52:15 -04:00
Miles Steele
a4608df866 make year_of_birth graph bigger, add display names to analytics, remove extra context, fix typos & formatting 2013-08-02 09:52:15 -04:00
Miles Steele
f77ebc82ec add tests 2013-08-02 09:52:15 -04:00
Miles Steele
23c961d9e4 visual cleanup, page error presentation cleanup, factor out common exceptions 2013-08-02 09:52:14 -04:00
Miles Steele
dd43d6635f add instructor tasks 2013-08-02 09:52:14 -04:00
Miles Steele
9bdff7485a cleanup
- rename list copy
- add beta list
- fix forum and admin API's to be more similar
- add auto-enroll checkbox
- fix list reload
- remove extra js logging
- add course errors visibility toggle
- add underscore.js check
2013-08-02 09:52:13 -04:00
Miles Steele
83ff497e42 add beta to endpoint, rename endpoint 2013-08-02 09:52:13 -04:00
Miles Steele
0a657befdb add forum list management 2013-08-02 09:52:13 -04:00
Miles Steele
bc9cce5733 add instructor dash version switch 2013-08-02 09:52:13 -04:00
Miles Steele
5cdf3fb86a add staff management subsection, add student_admin subsection, refactor sections 2013-08-02 09:52:12 -04:00
Miles Steele
cc737cb1b2 rename enrollment section to membership 2013-08-02 09:52:12 -04:00
Miles Steele
02432e05cc integrate slickgrid, add instructor.enrollment, add instructor.access, refactor & clean 2013-08-02 09:52:12 -04:00
Miles Steele
6ff568ce9d remove pid and version 2013-08-02 09:52:12 -04:00
Miles Steele
daeabb06bf add instructor dashboard beta (partial) (view, template, coffeescript, api endpoints) 2013-08-02 09:52:12 -04:00
Miles Steele
2e1d729e57 move instructor views.py to views/legacy.py 2013-08-02 09:52:11 -04:00