Skip to content

WIP Asset Management#599

Draft
ormsbee wants to merge 3 commits into
openedx:mainfrom
ormsbee:asset-management
Draft

WIP Asset Management#599
ormsbee wants to merge 3 commits into
openedx:mainfrom
ormsbee:asset-management

Conversation

@ormsbee
Copy link
Copy Markdown
Contributor

@ormsbee ormsbee commented Jun 1, 2026

  • feat: add assets applet for digital asset management
  • temp: remove annotations safe list

I'm experimenting with a Claude-generated stab at this. As much to test my use of Claude as to build this particular feature.

ormsbee and others added 3 commits May 31, 2026 23:07
Introduce a new "assets" applet in openedx_content with two new
PublishableEntity types:

- Asset: logically one thing that may exist as multiple file variants
  (e.g. an ebook as epub/pdf/mobi). Files attach at the version level via
  AssetVersion <-> Media through AssetVersionMedia (keyed by variant),
  mirroring the ComponentVersionMedia pattern.
- AssetBundle: a group of related Assets (e.g. a video plus its VTT
  subtitles). Membership is a flat, unordered AssetBundleVersion <-> Asset
  join (AssetBundleVersionAsset); it deliberately does NOT reuse Container
  / EntityList machinery and has no child ordering.

Both are classified by normalized AssetType / AssetBundleType lookup
tables (in the spirit of ComponentType / ContainerType), whose code is
woven into the PublishableEntity entity_ref ("{type.code}:{code}").

Includes models.py, api.py, admin.py, the generated migration, and tests.
Both publishable model pairs are registered in apps.py and re-exported
through the umbrella models / models_api / api modules.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant