1. 16 Jun, 2017 1 commit
  2. 05 Jun, 2017 1 commit
  3. 30 May, 2017 1 commit
  4. 01 May, 2017 1 commit
  5. 07 Apr, 2017 1 commit
  6. 06 Oct, 2016 1 commit
  7. 10 Aug, 2016 1 commit
  8. 06 Aug, 2016 1 commit
  9. 27 Jul, 2016 1 commit
  10. 08 Apr, 2016 1 commit
  11. 02 Dec, 2015 1 commit
    • CohortMembership Transaction Fixes · 731d85f7
      An issue arose recently due to ATOMIC_REQUESTS being turned on by default. It
      turns out that CohortMemberships had been somewhat relying on the old default
      transaction handling in order to keep CohortMemberships and the underlying
      CourseUserGroup.users values in-sync.
      
      To fix this, I've made all updates to Cohortmemberships go through an
      outer_atomic(read_committed=True) block. This, is conjunction with the already
      present select_for_update(), will no longer allow 2 simultaneous requests to
      modify objects in memory without sharing them. Only one process will be
      touching a given CohortMembership at any given time, and all changes will be
      immediately comitted to the database, where the other process will see them.
      
      I've also included some changes to get_cohort(), add_user_to_cohort(), and
      remove_user_from_cohort() in order to properly make use of the new
      CohortMembership system.
      Eric Fischer committed
  12. 30 Nov, 2015 2 commits
    • Revert "Fixing CohortMembership and ATOMIC_REQUESTS issue" · 9e902264
      This reverts commit 12130c80.
      Manual testing found this to not fix the bug it claimed to fix.
      Eric Fischer committed
    • Fixing CohortMembership and ATOMIC_REQUESTS issue · 12130c80
      What had been happening was related to the fact that ATOMIC_REQUESTS is now on,
      preventing writing to the database until a request is completed.
      
      The problem with that was that CohortMemberships, with their explicit
      transaction handling, were breaking that rule and touching the database.
      The CohortMembership needs to also touch the database to update the
      underlying course_user_groups information, to prevent the database from
      getting into a strange state.
      
      After this commit, every time a CohortMembership is updated or created, the
      corresponding course_user_groups are also updated and explicitly written to
      the database. This occurs atomically with the CohortMembership, and does not
      wait for the end of the request.
      Eric Fischer committed
  13. 22 Nov, 2015 1 commit
  14. 10 Nov, 2015 1 commit
  15. 30 Oct, 2015 2 commits
    • CohortMemberships Code Changes · 83163e58
      The code changes needed to get CohortMembership functioning properly.
      
      The key of this change is twofold: first, CohortMemberships are unique
      per-user, per-course. This is enforced at the database level. Secondly,
      the updates are done using a select_for_update, which ensures atomicity.
      Eric Fischer committed
    • CohortMemberships Migrations · 56d49e73
      These are the migrations needed for CohortMembership to function.
      0005 establishes the table, 0006 will be used to move existing data
      into the table as needed.
      
      Per product guidance, we can just arbitrarily reassign problem users.
      Implementing that decision, as well as the remainder of the data migration.
      
      Also including a short script to re-run the 0006 migration after code changes
      are live, to prevent a potential issue where the database become out-of-sync.
      Eric Fischer committed
  16. 21 Oct, 2015 1 commit
  17. 13 Jul, 2015 1 commit
  18. 23 Mar, 2015 3 commits
  19. 05 Dec, 2014 1 commit
    • Add support for user partitioning based on cohort. · f24f01d2
      JIRA: TNL-710
      
      IMPORTANT: this commit converts the course_groups
      package to using migrations.  When deploying to an
      existing openedx instance, migration 0001 may fail
      with an error indicating that the CourseUserGroup
      table already exists.  If this happens, running
      the 0001 migration first, with the --fake option,
      is recommended.  After performing this step,
      remaining migrations should work as expected.
      jsa committed
  20. 25 Nov, 2014 1 commit
  21. 24 May, 2014 2 commits
  22. 07 May, 2014 1 commit
    • Make course ids and usage ids opaque to LMS and Studio [partial commit] · e2bfcf2a
      This commit updates common/djangoapps.
      
      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
  23. 06 Feb, 2013 1 commit
  24. 24 Jan, 2013 6 commits