$customHeader
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Functionality that is in edx-platform/common/lib/xmodule/xmodule/modulestore:

  • mongo/* ("old mongo")
    • Stores xmodules as a single document along with definitions and children
    • Has draft/published functionality
    • Implements a KVS
    • Implements a caching descriptor system
    • Implements bulk ops to prevent the cache from being cleared repeatedly during a publish
    • Implements a modulestore which:
      • Implements inheritance at the Mongo level
      • Implements draft / publish at the Mongo level
      • Allows CRUD access to courses, asset metadata, module data, etc.
    • Implements some Mongo management
  • split_mongo/* ("split mongo")
    • All of the same things as old mongo, but in the split methodology. Plus:
    • Implements a lazy loader for xblocks
    • Implements a cached id manager for split mongo
    • Implements a "write only dirty" pattern
    • Stores library data as well
  • xml.py / xml_importer.py / xml_exporter.py
    • Handles importing / exporting courses from OLX on disk
  • A handful of other utilities / helpers:
    • Django signals helper
    • Versioning helper for draft modulestores
    • edit_info mixin
    • custom exceptions
    • additional inheritance code
    • MixedModuleStore for aggregating across different modulestore, including across old and split instances
    • Helper functions for dealing with settings
    • Cusom field types for mongoengine
    • Search helpers
    • Helper for migrating xml or old mongo modulestore instances to split
    • A handful of other utils


That functionality is what I would deem "modulestore", personally. A pretty flexible way of storing off module data for course trees.

Other things that liveĀ in edx-platform/common/lib/xmodule/ and edx-platform/common/lib/xmodule/xmodule:

  • assetstore
  • contentstore
  • bunches of test files
  • templates, css, and js for xmodules / xblocks in those dirs
  • user partitioning code
  • some random util methods
  • many things called "modules", only some of which are xmodules:
    • video_module
    • many things dealing with annotation
    • backcompat_module
      • Smooths transition from old xml modulestore formats to newer
    • capa stuff
    • XModuleMixin and CourseOverview shared util code
    • conditional_module
    • course_metadata_utils
    • course_module
    • editing_module
    • edx_notes
    • error_module
    • 38 more files....
  • No labels