Skip to content
Snippets Groups Projects
  1. Jun 05, 2018
  2. May 03, 2018
  3. Jan 08, 2018
  4. Nov 01, 2017
  5. Jun 12, 2017
  6. Jun 01, 2017
  7. May 01, 2017
  8. Oct 14, 2015
  9. Jul 13, 2015
  10. Apr 08, 2015
  11. Feb 04, 2015
    • Calen Pennington's avatar
      Better support specifying of modulestore configuration in test cases · b353ed2e
      Calen Pennington authored
      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]
      b353ed2e
    • Calen Pennington's avatar
      03a05fd9
  12. Dec 11, 2014
    • njdup's avatar
      Implements keyword sub feature for bulk emails · 32bbb0e7
      njdup authored
      This commit pulls in changes from #4487 that implements keyword
      substitution for bulk emails. With these changes, an instructor can
      include keywords in their bulk emails which will be automatically substituted
      with the corresponding value for the recepient of the email. Keywords are
      of the form %%keyword%%, and the keywords implemented in this commit include:
      
      %%USER_ID%% => anonymous_user_id
      %%USER_FULLNAME%% => user profile name
      %%COURSE_DISPLAY_NAME%% => display name of the course
      %%COURSE_END_DATE%% => end date of the course
      
      Client-side validations have also been implemented to ensure that only emails
      with well-formed keywords can be sent.
      The architecture is designed such that adding in new keywords in the future
      would be relatively straight-forward.
      32bbb0e7
  13. Nov 04, 2014
  14. Sep 22, 2014
  15. May 29, 2014
  16. Apr 03, 2014
Loading