Brian Wilson
a699674015
Check that a subtask has not already completed before running.
2013-10-17 13:32:44 -04:00
Sarina Canelake
86c4a03eba
admin-console support for enabling email per course
2013-10-16 13:02:41 -04:00
Brian Wilson
b8239068cb
Check that email subtasks are known to the InstructorTask before executing.
2013-10-16 13:02:41 -04:00
Brian Wilson
87a72b7e99
Rename some constants, and refactor bulk email task flow.
2013-10-16 13:02:40 -04:00
Brian Wilson
bc599a0662
Update tests with more complete coverage.
2013-10-16 13:02:40 -04:00
Brian Wilson
e75dd4654b
Move subtask update logic that was only needed for tests into the tests that needed it.
2013-10-16 13:02:40 -04:00
Brian Wilson
4505fb4e2c
Update InstructorTask before performing a retry.
2013-10-16 13:02:40 -04:00
Brian Wilson
41fcd9627b
Don't send emails to students who haven't activated.
2013-10-16 13:02:00 -04:00
Brian Wilson
df0fba9db8
Add more task-level tests for retries and other errors. Respond to initial comments.
2013-10-16 13:01:59 -04:00
Brian Wilson
04f90fee41
Fix subtask code to handle (tests) running in eager mode.
2013-10-16 13:01:59 -04:00
Brian Wilson
a4c35ac4ff
Use separate retry count for calculating retry delay.
2013-10-16 13:01:59 -04:00
Brian Wilson
7b7afd472d
Incorporate changes in max_retry logic, adding subtask_status as bulk_email arg.
2013-10-16 13:01:59 -04:00
Brian Wilson
0fd75181e3
Update handling of bulk-email retries to update InstructorTask before each retry.
2013-10-16 13:01:58 -04:00
Brian Wilson
5c29530db9
Factor out subtask-specific code into subtasks.py.
2013-10-16 13:01:58 -04:00
Brian Wilson
01611c33a6
Refactor instructor_task tests, and add handling for general errors in bulk_email subtasks.
2013-10-16 13:01:58 -04:00
Brian Wilson
2f4774f47c
Pass status into course_email for tracking retry status.
2013-10-16 13:01:58 -04:00
Brian Wilson
ffbb228acb
Add support for counting and reporting skips in background tasks.
2013-10-16 13:01:58 -04:00
Brian Wilson
8fddcdffcd
Initial refactoring for bulk_email monitoring.
2013-10-16 13:01:57 -04:00
Brian Wilson
288ccb1e36
Check that email subtasks are known to the InstructorTask before executing.
2013-10-15 18:34:31 -04:00
Sarina Canelake
c24087a912
django-admin command for enabling email per course
2013-10-11 16:39:12 -04:00
Brian Wilson
58bacb4e67
Rename some constants, and refactor bulk email task flow.
2013-10-10 15:34:16 -04:00
Brian Wilson
03b4330c04
Update tests with more complete coverage.
2013-10-10 15:34:16 -04:00
Brian Wilson
39e8b718ca
Move subtask update logic that was only needed for tests into the tests that needed it.
2013-10-10 15:34:16 -04:00
Brian Wilson
b909662d6e
Update InstructorTask before performing a retry.
2013-10-10 15:34:15 -04:00
Brian Wilson
8910ea08b1
Don't send emails to students who haven't activated.
2013-10-10 15:33:00 -04:00
Brian Wilson
c787a8f500
Add more task-level tests for retries and other errors. Respond to initial comments.
2013-10-10 15:32:59 -04:00
Brian Wilson
e052dde4f5
Fix subtask code to handle (tests) running in eager mode.
2013-10-10 15:32:59 -04:00
Brian Wilson
506f91a95e
Use separate retry count for calculating retry delay.
2013-10-10 15:32:59 -04:00
Brian Wilson
32c846249f
Incorporate changes in max_retry logic, adding subtask_status as bulk_email arg.
2013-10-10 15:32:59 -04:00
Brian Wilson
42033ca80c
Update handling of bulk-email retries to update InstructorTask before each retry.
2013-10-10 15:32:59 -04:00
Brian Wilson
c01fa459a3
Factor out subtask-specific code into subtasks.py.
2013-10-10 15:32:58 -04:00
Brian Wilson
d171dc3efc
Refactor instructor_task tests, and add handling for general errors in bulk_email subtasks.
2013-10-10 15:32:58 -04:00
Brian Wilson
2337b6d863
Pass status into course_email for tracking retry status.
2013-10-10 15:32:58 -04:00
Brian Wilson
8f31acbeb4
Add support for counting and reporting skips in background tasks.
2013-10-10 15:32:58 -04:00
Brian Wilson
d48e90ee22
Initial refactoring for bulk_email monitoring.
2013-10-10 15:32:58 -04:00
Ned Batchelder
a4bf549af4
Use assertIsInstance instead of assertTrue(type(x) == y)
2013-10-07 18:20:31 -04:00
Sarina Canelake
bfebe684b3
Cleanup bulk email app
2013-09-03 16:11:34 -04:00
Jason Bau
4f9e5109f0
remove vestigal references to fake_smtp_server
2013-08-30 13:46:04 -07:00
Jason Bau
ca33a1dcf5
using mocks to make test_err_handling.py faster
2013-08-30 13:43:42 -07:00
Jason Bau
c160a189ad
Bulk email - final tweaks and cleanup
2013-08-29 12:40:34 -04:00
Brian Wilson
8f93051d30
Add editable templates for bulk email
...
Adds the edX Marketing-approved template as html default.
2013-08-29 12:40:34 -04:00
Jason Bau
d341d6d26d
Change optout to use user.id instead of email.
...
Includes Data + Schema migrations for optout email -> user.id change.
Note that migrations should be reversible.
2013-08-29 12:40:33 -04:00
Sarina Canelake
52d9320e62
Hide "Email Settings" from student dash if bulk email not enabled
...
Some minor pep8 cleanup
2013-08-29 12:40:33 -04:00
Sarina Canelake
e6bde93837
Change bulk email model field names and add migrations
2013-08-29 12:40:33 -04:00
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
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