Commit Graph

127 Commits

Author SHA1 Message Date
Eric Fischer
faa7f544d2 Bulk Email Cohorts (#12602)
Adds cohorts as valid bulk email targets.
2016-06-06 16:32:59 -04:00
Eric Fischer
a9a3fabfe8 Bulk Email Multiselect (#12301)
TNL-4356

Allows multiple bulk email targets to be specified at once.

-The previous "All" option has been split into "Staff" and "Learners"
-The backend changes made here lay the groundwork for cohort emailing
-The data migration, 0005, is somewhat large and requires deploy attention
-Tests have been updated
-Numerous safe-commit-linter fixes are included
2016-05-26 14:22:04 -04:00
Adam
cf8e37b381 Merge pull request #12455 from edx/adam/fix-email-from-addr-length
refine from_addr length limits (TNL-4264)
2016-05-17 08:30:15 -04:00
Eric Fischer
0cf3e39c31 Replace bulk email settings with admin config models
Moves ENABLE_INSTRUCTOR_EMAIL and REQUIRE_COURSE_EMAIL_AUTH from settings files
to admin-accessible configuration models. This allows for the bulk email settings
to be modified without a new AMI deploy. See TNL-4504.

Also updates tests:
    -python tests mock out the new configurations in place of the old settings
    -lettuce test has been moved to bokchoy
        (note that there was some loss of coverage here - the lettuce tests had
        been doing some voodoo to allow for cross-process inspection of emails
        messages being "sent" by the server, from the client! In discussion with
        testeng, this seems outside the realm of a visual acceptance test. So,
        the bokchoy test simply confirm the successful queueing of the message,
        and leaves the validation of sending messages to the relevant unit tests.)
    -bok choy fixture has been added, to replace the settings in acceptance.py
    -lettuce and bok choy databases have been updated to reflect the backend changes

The new default is to have bulk_email disabled, we'll need to call this out in the
next OpenEdx release to ensure administrators enable this feature if needed.
2016-05-16 11:09:39 -04:00
Adam Palay
c9b0e12d39 use markupspace for escaping 2016-05-13 11:15:00 -04:00
Adam Palay
91ae60f5e9 refine from_addr length limits (TNL-4264) 2016-05-12 15:12:41 -04:00
Calen Pennington
853bfe7a36 Add a TestCase mixin for enabling caches in tests
By default, disable all caching in tests, to preserve test independence.
In order to enable caching, inherit from CacheSetupMixin, and specify
which cache configuration is needed.

[EV-32]
2016-05-04 14:51:30 -04:00
cahrens
76545ef49c HTML-encode string values in keyword substitution.
TNL-4193
2016-05-03 12:36:44 -04:00
Ben Patterson
1db84e79df Additional shard balancing changes for unit tests. 2016-04-28 10:09:32 -04:00
John Eskew
0899871958 Merge pull request #11042 from edx/jeskew/xml_removal
Remove XML modulestore code from most tests.
2016-04-27 11:20:02 -04:00
Adam
bb5874d5a1 truncate email from addresses if >320 chars when encoded (TNL-4264) (#12171)
* truncate email from addresses if >320 chars when encoded (TNL-4264)

* use exact lengths
2016-04-20 08:43:26 -04:00
John Eskew
91c94977d5 Unify usage of a single test mixed modulestore called:
TEST_DATA_MIXED_MODULESTORE
Remove these test mixed modulestores:
TEST_DATA_MIXED_TOY_MODULESTORE
TEST_DATA_MIXED_CLOSED_MODULESTORE
TEST_DATA_MIXED_GRADED_MODULESTORE
2016-04-12 11:53:51 -04:00
John Eskew
415ef3616f Remove XML-backed course-specific test. 2016-04-12 11:53:50 -04:00
Adam Palay
6e43d97fe7 make sure email from addresses don't exceed 320 characters (TNL-4264)
clean up and fix quality violations

since get_course can never return None, we can remove these lines
2016-03-31 14:23:08 -04:00
Ned Batchelder
43ac38aa87 Add autospec to all mocks 2015-12-09 09:44:22 -05:00
Ned Batchelder
f5d0f3ff55 Remove useless pylint suppressions 2015-11-22 07:41:19 -05:00
Giovanni Di Milia
08dfe5e99f Fixed pylint violation for files in lms/djangoapps/bulk_email 2015-10-14 14:45:32 -04:00
Ned Batchelder
ceb5655b2d Merge pull request #9171 from edx/ned/update-pylint
Update pylint and astroid, reduces pylint count by 400
2015-08-04 09:28:35 -04:00
Ned Batchelder
f54fe787c6 Remove needless 'disable=no-member' pragmas 2015-08-03 17:47:44 -04:00
cahrens
614a92957c Correct email settings URL and rename variable.
TNL-2677
2015-07-31 11:39:19 -04:00
Adam
2735b2b5bb Revert "Decorated instructor dashboard with sudo_required." 2015-07-17 12:11:38 -04:00
Waheed Ahmed
bc052db1ee Added DjangoSudo functionality for instructor dashboard and course team page 2015-07-16 11:14:11 +05:00
muzaffaryousaf
b185a686d8 Removing course_title from email subject.
TNL-1877
2015-06-09 18:48:55 +05:00
Shrhawk
dd20badcf7 Merge pull request #7996 from edx/shr/bug/TNL-2119-Unicode-error-in-templating-bulk-course
bulk_email fix course_image_unicode name
2015-05-15 23:31:01 +05:00
Syed Hassan Raza
f199c305b9 bulk_email fix course_image_unicode name 2015-05-12 01:49:02 +05:00
Christine Lytwynec
08993aead6 Merge pull request #7959 from edx/clytwynec/split_lms_unittests_into_shards
Clytwynec/split lms unittests into shards
2015-05-08 14:19:25 -04:00
Feanil Patel
e4aa91d510 Remove the mock, it doesn't seem like it's needed. 2015-05-08 09:01:49 -04:00
Christine Lytwynec
ddb1ae667e Split lms unittests into multiple shards 2015-05-07 09:17:26 -04:00
Adam Palay
afb2dae631 Revert "Revert "use different queue for smaller emails (TNL-1591)""
This reverts commit 228cca4e38ec79f5cbb54098c788ab9556f602e2.
2015-04-15 12:03:23 -04:00
Adam Palay
9fa8187ffc Revert "use different queue for smaller emails (TNL-1591)"
This reverts commit c2e5bd3d98.
2015-04-08 12:33:09 -04:00
Adam Palay
c2e5bd3d98 use different queue for smaller emails (TNL-1591) 2015-04-06 08:13:55 -04:00
Ned Batchelder
81d17c516e Fix or remove tearDown methods that don't use super.
Update edx-lint to the version that checks if tearDown uses super.

Convert a number of tearDown methods into addCleanup.

Remove some unneeded tearDown methods: no need to call patch.stopall if
none of them were started with patch.start.
2015-03-17 15:14:52 -04:00
Ned Batchelder
7d799e34f3 Remove unused imports 2015-03-17 07:10:31 -04:00
Adam Palay
c12b542136 split up bulk email query for students and unenrolled course staff (TNL-1332) (TNL-1143) 2015-02-23 10:58:37 -05:00
Calen Pennington
b353ed2ea2 Better support specifying of modulestore configuration in test cases
The existing pattern of using `override_settings(MODULESTORE=...)` prevented
us from having more than one layer of subclassing in modulestore tests.

In a structure like:

    @override_settings(MODULESTORE=store_a)
    class BaseTestCase(ModuleStoreTestCase):
        def setUp(self):
            # use store

    @override_settings(MODULESTORE=store_b)
    class ChildTestCase(BaseTestCase):
        def setUp(self):
            # use store

In this case, the store actions performed in `BaseTestCase` on behalf of
`ChildTestCase` would still use `store_a`, even though the `ChildTestCase`
had specified to use `store_b`. This is because the `override_settings`
decorator would be the innermost wrapper around the `BaseTestCase.setUp` method,
no matter what `ChildTestCase` does.

To remedy this, we move the call to `override_settings` into the
`ModuleStoreTestCase.setUp` method, and use a cleanup to remove the override.
Subclasses can just defined the `MODULESTORE` class attribute to specify which
modulestore to use _for the entire `setUp` chain_.

[PLAT-419]
2015-02-04 09:09:14 -05:00
Calen Pennington
03a05fd9d4 Always call super(..).setUp() from setUp 2015-02-04 09:09:14 -05:00
Christine Lytwynec
9dc85bf10d PR updates 2015-01-05 17:38:18 -05:00
Christine Lytwynec
c7ede0df4b fixing pep8 violations 2015-01-05 16:19:36 -05:00
Christine Lytwynec
3127ac2b6c mock html_to_text for tests 2015-01-05 16:19:36 -05:00
Jesse Zoldak
bf3b87bc64 Clean up all modulestore testcases
Move modulestore config for tests to an importable location
Disable pylnt warning for lms imports in common tests
Refactor all testcases that loaded all xml courses
TE-610
TE-489
2014-12-02 07:09:36 -05:00
Sarina Canelake
c0556a7ef8 s/pylint: disable=W0613/pylint: disable=unused-argument/ 2014-12-01 11:22:11 -05:00
Sarina Canelake
19f1dacab2 s/pylint: disable=E1101/pylint: disable=no-member/ 2014-12-01 11:22:09 -05:00
Chris Dodge
adbe133f5c Treat an empty string from the admin form to be None/NULL for the CourseEmailTemplateForm 2014-11-17 10:05:12 -05:00
Chris Dodge
1809a28b89 Add the ability for Microsites to be able to send appropriately branded emails rather than the default system installed version
fix tests. Update Admin views/forms.

enforce uniqueness constraint in the Admin ModelForm submissions

Update bok_choy cached DBs with new schema changes

PR feedback
2014-10-08 13:04:41 -04:00
Mat Peterson
4f6088cbd1 Fixed some isinstance errors with opaque-keys 2014-07-11 15:40:08 -04:00
Nimisha Asthagiri
eecff6e0aa ModulestoreEnum class. 2014-06-27 14:37:35 -04:00
Sarina Canelake
0f2b4cd2b6 Merge pull request #3931 from edx/sarina/fixup-external-opaque-keys-impls
Use external OpaqueKey implementations
2014-05-29 18:23:08 -04:00
Calen Pennington
cfcbdc0145 Move to OpaqueKey implementations from the external library
[LMS-2757]
2014-05-29 17:03:35 -04:00
Adam Palay
5b769df452 No longer chunk queries when sending out bulk email (LMS-2718)
refactor _generate_items_for_subtask not to chunk queries

use django's iterator methor for querysets

remove bulk email query settings

use read_replica if available, since this is read-only

update changelog
2014-05-29 09:10:25 -04:00
Sarina Canelake
110719deae StaffFactories accept course_keys, not courses. Make that clear in the interface. 2014-05-24 18:49:06 -04:00