-
Modify CourseOverviews to create course image thumbnails. · 88c7d583
Course teams occasionally upload very large files as their course image. Before this commit, those images would be used directly in the student's dashboard, sometimes leading to MBs worth of image data on that page. With this commit, we now auto-generate small and large thumbnails of configurable size. The Student Dashboard and Course About pages will make use of this new functionality (CourseOverview.image_urls), but the behavior of CourseOverview.course_image_url will not change. Note that the thumbnails are still created in the contentstore, and sit alongside their originals. What's included: 1. Multiple sizes, currently starting with "raw", "small", and "large". This falls back to the current behavior automatically in the case where thumbnails don't exist or this feature has been disabled in configuration. 2. Django admin based configuration for image sizes and whether to enable the functionality at all. Note that to regenerate images, you'd need to wipe the CourseOverviewImageSet model rows -- it doesn't do that automatically. This is partly because it's a very rare operation, and partly because I'm not entirely sure what the longer term invalidation strategy should be in a world where we might potentially have multiple themes. The flexible configuration was intended to allow better customization and theming. 3. The Course About pages also use the new thumbnail functionality, as an example of "large". This is in addition to the "small" used on the student dashboard. Things I'm punting on for now (followup PRs welcome!): 1. Bringing the thumbnails to course discovery. A quick attempt to do so showed that it wasn't getting properly invalidated and updated when publishes happen (so the old image still showed up). It probably has something to do with when we do the re-indexing because it stores this data in elasticsearch, but I'm not going to chase it down right now. 2. Center-cropping. While this is a nice-to-have feature, the behavior in this PR is no worse than what already exists in master in terms of image distortion (letting the browser handle it). 3. Automated invalidation of the images when a new config is created.
David Ormsbee committed
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
djangoapps | Loading commit data... | |
envs | Loading commit data... | |
lib | Loading commit data... | |
static | Loading commit data... | |
templates | Loading commit data... | |
README.rst | Loading commit data... | |
__init__.py | Loading commit data... | |
celery.py | Loading commit data... | |
startup.py | Loading commit data... | |
tests.py | Loading commit data... | |
urls.py | Loading commit data... | |
wsgi.py | Loading commit data... | |
wsgi_apache_lms.py | Loading commit data... |