0001-manager-load-ajax-assets-size-on-export-site-popup-4.patch
combo/apps/assets/templates/combo/manager_assets_export_size.html | ||
---|---|---|
1 |
({{ size|filesizeformat }}) |
combo/apps/assets/urls.py | ||
---|---|---|
35 | 35 | |
36 | 36 |
urlpatterns = [ |
37 | 37 |
url(r'^assets/(?P<key>[\w_:-]+)$', views.serve_asset), |
38 | 38 |
url(r'^manage/assets/', decorated_includes(manager_required, |
39 | 39 |
include(assets_manager_urls))), |
40 | 40 | |
41 | 41 |
url(r'^api/assets/set/(?P<key>[\w_:-]+)/$', api_views.view_set, |
42 | 42 |
name='api-assets-set'), |
43 |
url(r'^ajax/assets-export-size/$', |
|
44 |
views.assets_export_size, name='combo-manager-assets-export-size'), |
|
43 | 45 |
] |
combo/apps/assets/views.py | ||
---|---|---|
372 | 372 |
geometry_string += 'x%s' % height |
373 | 373 | |
374 | 374 |
# no thumbnail whithout geometry_string or for a svg file |
375 | 375 |
if not geometry_string or asset.asset.name.endswith('svg'): |
376 | 376 |
return redirect(asset.asset.url) |
377 | 377 | |
378 | 378 |
# get or create thumbnail and return url |
379 | 379 |
return redirect(get_thumbnail(asset.asset, geometry_string, **thumb_options).url) |
380 | ||
381 | ||
382 |
class AssetsExportSize(TemplateView): |
|
383 |
template_name = 'combo/manager_assets_export_size.html' |
|
384 | ||
385 |
def get_context_data(self, **kwargs): |
|
386 |
context = super(AssetsExportSize, self).get_context_data(**kwargs) |
|
387 |
media_prefix = default_storage.path('') |
|
388 |
computed_size = 0 |
|
389 |
for basedir, dirnames, filenames in os.walk(media_prefix): |
|
390 |
for filename in filenames: |
|
391 |
computed_size += os.stat(os.path.join(basedir, filename)).st_size |
|
392 |
context['size'] = computed_size |
|
393 |
return context |
|
394 | ||
395 |
assets_export_size = AssetsExportSize.as_view() |
combo/manager/templates/combo/site_export.html | ||
---|---|---|
8 | 8 |
{% block content %} |
9 | 9 |
<form method="post"> |
10 | 10 |
{% csrf_token %} |
11 | 11 |
{{ form.as_p }} |
12 | 12 |
<div class="buttons"> |
13 | 13 |
<button>{% trans 'Export' %}</button> |
14 | 14 |
<a class="cancel" href="{% url 'combo-manager-homepage' %}">{% trans 'Cancel' %}</a> |
15 | 15 |
</div> |
16 |
<script> |
|
17 |
$.get("{% url 'combo-manager-assets-export-size' %}", function( data ) { |
|
18 |
$("p").append("<span>" + data + "</span>") |
|
19 |
}, "text" ); |
|
20 |
</script> |
|
16 | 21 |
</form> |
17 | 22 |
{% endblock %} |
tests/test_assets.py | ||
---|---|---|
133 | 133 |
fd = open(filename, 'rb') |
134 | 134 |
import_assets(fd, overwrite=True) |
135 | 135 |
assert count_asset_files() == 2 |
136 | 136 |
assert open('%s/assets/test.png' % path, 'r').read() == 'test' |
137 | 137 |
assert open('%s/assets/test2.png' % path, 'r').read() == 'test2' |
138 | 138 |
clean_assets_files() |
139 | 139 |
assert count_asset_files() == 0 |
140 | 140 |
clean_assets_files() |
141 | ||
142 | ||
143 |
def test_assets_export_size_view(app, some_assets): |
|
144 |
resp = app.get(reverse('combo-manager-assets-export-size')) |
|
145 |
assert resp.text.split() == ['(9', 'bytes)'] |
|
141 |
- |