1. 11 Apr, 2015 1 commit
    • MIT: CCX. Fix issues identified in code review · b3da2a54
      Original Commit Messages:
      
      use edx's own get_parent method, rather than our own.
      
      add field to unique constraint to avoid MultipleObjectsReturned in case of multiple browser clicks on submit
      
      fix 0011 migration, inherit from TimeStampedField and add composite index (migration only)
      
      fix bug where adding an already registered user to a ccx would cause a crash due to an undefined variable
      
      add assertNumQueries tests to test modules where override field providers are used
      
      remove unnecessary teardown
      
      implement recommended style for checking empty list
      
      import utility methods rather than use duplicate code
      
      added comment explaining date conversion to string for json
      
      add logging for invalid users or emails when enrolling students
      
      add comment about xmodule user state
      
      avoid using get_or_create, which seems to be causing a race condition on schedule change save
      
      relocate badly placed edvent handlers to fix multiple submit problem
      Carlos de la Guardia committed
  2. 06 Apr, 2015 1 commit
    • Architecture for arbitrary field overrides, field overrides for · 3256eb1f
      individual students, and a reimplementation of the individual due date
      feature.
      
      This work introduces an architecture, used with the 'authored_data'
      portion of LmsFieldData, which allows arbitrary field overrides to be
      made for fields that are part of the course content or settings (Mongo
      data).  The basic architecture is extensible by means of writing and
      configuring arbitrary field override providers.
      
      One concrete implementation of a field override provider is provided
      which allows for overrides to be for individual students.  This provider
      is then used as a basis for reimplementing the individual due date
      extensions feature as a proof of concept for the design.
      
      One can imagine writing override providers that provide overrides based
      on a student's membership in a cohort or other similar idea.  This work
      is being done, in fact, to pave the way for the Personal Online Courses
      feature being developed by MIT, which will use an override provider very
      much long those lines.
      Chris Rossi committed
  3. 14 Mar, 2015 2 commits
  4. 12 Jan, 2015 1 commit
  5. 13 Dec, 2014 2 commits
  6. 25 Nov, 2014 1 commit
  7. 23 Sep, 2014 2 commits
  8. 24 May, 2014 1 commit
  9. 23 May, 2014 1 commit
  10. 09 May, 2014 1 commit
  11. 06 May, 2014 1 commit
    • Make course ids and usage ids opaque to LMS and Studio [partial commit] · 9811926d
      This commit updates lms/djangoapps/courseware.
      
      These keys are now objects with a limited interface, and the particular
      internal representation is managed by the data storage layer (the
      modulestore).
      
      For the LMS, there should be no outward-facing changes to the system.
      The keys are, for now, a change to internal representation only. For
      Studio, the new serialized form of the keys is used in urls, to allow
      for further migration in the future.
      
      Co-Author: Andy Armstrong <andya@edx.org>
      Co-Author: Christina Roberts <christina@edx.org>
      Co-Author: David Baumgold <db@edx.org>
      Co-Author: Diana Huang <dkh@edx.org>
      Co-Author: Don Mitchell <dmitchell@edx.org>
      Co-Author: Julia Hansbrough <julia@edx.org>
      Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
      Co-Author: Sarina Canelake <sarina@edx.org>
      
      [LMS-2370]
      Calen Pennington committed
  12. 28 Mar, 2014 1 commit
  13. 20 Dec, 2013 1 commit
    • Fix (re-implement) answer distribution report generation. · 0565fbbf
      This restores functionality that has been broken since the introduction of
      XModuleDescriptor/XModule proxying (part of the XBlock transition). It generates
      a CSV of all answers for all content of type "problem" in a given course, with a
      row per (problem part, answer). The format is:
      
      url_name, display name, answer id, answer, count
      
      Example values:
        url_name = "7f1b1523a55848cd9f5c93eb8cbabcf7"
        display name = "Problem 1: Something Hard"
        answer id = i4x-JediAcdmy-LTSB304-problem-7f1b1523a55848cd9f5c93eb8cbabcf7_2_1
        answer = "Use the Force"
        count = 1138
      
      Since it only grabs things of type "problem", it will not return results for
      things like self/peer-assessments. Any Loncapa problem types will show up (so
      multiple choice, text input, numeric, etc.)
      
      Instead of crawling the course tree and instantiating the appropriate CapaModule
      objects to grab state, this version draws directly from StudentModule. This lets
      us skip a lot of processing and most importantly lets us generate the answer
      distribution without causing side-effects (since XBlocks auto-save state). It
      also lets us take advantage of a read-replica database if one is available, to
      minimize locking concerns.
      
      There are minor changes to the legacy dashboard around CSV charset encoding and
      a change to OptionResponseXMLFactory to make it more unicode friendly. Answer
      distribution output is now also sorted, to group together answers for the same
      content piece.
      
      Note that this does not introduce celery into the process. Answer distributions
      are still only available for small courses.
      
      This was originally created to fix [LMS-922], but it also addresses [LMS-811] and
      possibly other areas in the legacy dashboard where CSV downloads break due to
      character encoding issues.
      David Ormsbee committed
  14. 26 Nov, 2013 1 commit
  15. 06 Sep, 2013 1 commit
  16. 18 Jun, 2013 5 commits
  17. 04 Apr, 2013 1 commit
  18. 04 Mar, 2013 1 commit
  19. 15 Feb, 2013 1 commit
  20. 08 Feb, 2013 1 commit
  21. 07 Feb, 2013 2 commits
  22. 06 Feb, 2013 2 commits
  23. 05 Feb, 2013 1 commit
  24. 04 Feb, 2013 1 commit
  25. 03 Feb, 2013 1 commit
  26. 23 Jan, 2013 1 commit
  27. 11 Jan, 2013 1 commit
  28. 02 Jan, 2013 1 commit
  29. 28 Dec, 2012 3 commits