Skip to content
Snippets Groups Projects
  1. Aug 29, 2013
    • Kevin Luo's avatar
      Add bulk email feature for instructors, with optout option · 907bf6e1
      Kevin Luo authored
      
      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: default avatarAkshay Jagadeesh <akjags@gmail.com>
      907bf6e1
  2. Aug 27, 2013
  3. Aug 23, 2013
  4. Aug 21, 2013
  5. Aug 19, 2013
    • Peter Baratta's avatar
      Use calc's evaluator for staff answers in `Numercial` type · e0f0ab09
      Peter Baratta authored
      Rather than just calling `complex(...)` on the staff answers, also call
      `calc.evaluator`. This way, simple things like `1/3` can be entered, as well
      as more complicated explicit equations (e.g. `sqrt((12^2 + 26^2)/2)` etc, etc)
      
      Simplify and update the tests to work with this.
      e0f0ab09
  6. Aug 16, 2013
  7. Aug 14, 2013
    • David Ormsbee's avatar
      Shift enroll/unenroll logic to CourseEnrollment model, add is_active and mode. · 3ce87583
      David Ormsbee authored
      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.
      3ce87583
  8. Aug 13, 2013
  9. Aug 12, 2013
  10. Aug 06, 2013
  11. Aug 05, 2013
  12. Aug 02, 2013
  13. Aug 01, 2013
  14. Jul 31, 2013
  15. Jul 30, 2013
  16. Jul 29, 2013
  17. Jul 24, 2013
  18. Jul 22, 2013
    • Greg Price's avatar
      Add endpoints to set user notification preference · 47b51e93
      Greg Price authored
      Two endpoints are intended to be used by AJAX calls from the web UI with an
      authenticated user. When enabled, the value of the preference is an encryption
      of the username, to be used as a token for one-click unsubscribe links. The
      third endpoint is the target of unsubscribe links, which displays a page with
      an appropriate message to the user.
      47b51e93
    • Greg Price's avatar
      Add an API to interact with users and preferences · 6a97ddf5
      Greg Price authored
      The new API uses Django REST Framework. For now, it is designed specifically
      to support the use cases required by the forum digest notifier (not yet built),
      with a goal of making it more generally useful over time.
      6a97ddf5
  19. Jul 18, 2013
  20. Jul 16, 2013
    • Don Mitchell's avatar
      No longer persist XModule templates · 3722685e
      Don Mitchell authored
      Instead, we use XModule field default values when creating an empty
      XModule. Driven by this use case, we also allow for XModules to be
      created in memory without being persisted to the database at all. This
      necessitates a change to the Modulestore api, replacing clone_item with
      create_draft and save_xmodule.
      3722685e
  21. Jul 11, 2013
    • Peter Fogg's avatar
      Change course settings to require explicit save. · 9094f189
      Peter Fogg authored
      Rather than asynchronously saving when a setting is updated, we now
      prompt the user to confirm their changes and only persist the data if
      they hit the save button. Lettuce tests are updated to expect this
      behavior and some new ones are added.
      9094f189
  22. Jul 10, 2013
  23. Jul 09, 2013
  24. Jul 02, 2013
  25. Jul 01, 2013
  26. Jun 26, 2013
Loading