0001-assets-add-ckeditor-s-media-files-serving-46262.patch
combo/apps/assets/urls.py | ||
---|---|---|
34 | 34 |
] |
35 | 35 | |
36 | 36 |
urlpatterns = [ |
37 |
url(r'^assets/media-lookup/(?P<filename>[^/+$()]+)$', views.serve_media_asset), |
|
37 | 38 |
url(r'^assets/(?P<key>[\w_:-]+)$', views.serve_asset), |
38 | 39 |
url(r'^manage/assets/', decorated_includes(manager_required, |
39 | 40 |
include(assets_manager_urls))), |
combo/apps/assets/views.py | ||
---|---|---|
59 | 59 |
def size(self): |
60 | 60 |
return os.stat(default_storage.path(self.filepath)).st_size |
61 | 61 | |
62 |
def url(self): |
|
63 |
return ckeditor.utils.get_media_url(self.filepath) |
|
64 | ||
62 | 65 |
def thumb(self): |
63 | 66 |
if getattr(settings, 'CKEDITOR_IMAGE_BACKEND', None): |
64 | 67 |
thumb = ckeditor.utils.get_media_url( |
... | ... | |
379 | 382 |
return redirect(get_thumbnail(asset.asset, geometry_string, **thumb_options).url) |
380 | 383 | |
381 | 384 | |
385 |
def serve_media_asset(request, filename): |
|
386 |
for asset in CkEditorAsset.get_assets(request): |
|
387 |
if asset.name == filename or os.path.splitext(asset.name)[0] == filename: |
|
388 |
return redirect(asset.url()) |
|
389 |
raise Http404() |
|
390 | ||
391 | ||
382 | 392 |
class AssetsExportSize(TemplateView): |
383 | 393 |
template_name = 'combo/manager_assets_export_size.html' |
384 | 394 |
tests/test_assets.py | ||
---|---|---|
143 | 143 |
def test_assets_export_size_view(app, some_assets): |
144 | 144 |
resp = app.get(reverse('combo-manager-assets-export-size')) |
145 | 145 |
assert resp.text.split() == ['(9', 'bytes)'] |
146 | ||
147 | ||
148 |
def test_serve_media_assets(app, settings): |
|
149 |
resp = app.get('/assets/media-lookup/test', status=404) |
|
150 |
default_storage.save('uploads/test.png', BytesIO(b'test')) |
|
151 |
resp = app.get('/assets/media-lookup/test', status=302) |
|
152 |
assert resp.location == '/media/uploads/test.png' |
|
153 | ||
154 |
resp = app.get('/assets/media-lookup/test.png', status=302) |
|
155 |
assert resp.location == '/media/uploads/test.png' |
|
146 |
- |