manager: load (ajax) assets size on export site popup (#45466)
This commit is contained in:
parent
f8ee44c3f5
commit
d62592c745
|
@ -0,0 +1 @@
|
|||
({{ size|filesizeformat }})
|
|
@ -40,4 +40,6 @@ urlpatterns = [
|
|||
|
||||
url(r'^api/assets/set/(?P<key>[\w_:-]+)/$', api_views.view_set,
|
||||
name='api-assets-set'),
|
||||
url(r'^ajax/assets-export-size/$',
|
||||
views.assets_export_size, name='combo-manager-assets-export-size'),
|
||||
]
|
||||
|
|
|
@ -377,3 +377,19 @@ def serve_asset(request, key):
|
|||
|
||||
# get or create thumbnail and return url
|
||||
return redirect(get_thumbnail(asset.asset, geometry_string, **thumb_options).url)
|
||||
|
||||
|
||||
class AssetsExportSize(TemplateView):
|
||||
template_name = 'combo/manager_assets_export_size.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(AssetsExportSize, self).get_context_data(**kwargs)
|
||||
media_prefix = default_storage.path('')
|
||||
computed_size = 0
|
||||
for basedir, dirnames, filenames in os.walk(media_prefix):
|
||||
for filename in filenames:
|
||||
computed_size += os.stat(os.path.join(basedir, filename)).st_size
|
||||
context['size'] = computed_size
|
||||
return context
|
||||
|
||||
assets_export_size = AssetsExportSize.as_view()
|
||||
|
|
|
@ -396,6 +396,11 @@ div#asset-preview img {
|
|||
max-width: 100%;
|
||||
}
|
||||
|
||||
.asset-export-size {
|
||||
padding-left: 1em;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
ul.multisort {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
|
|
@ -13,5 +13,10 @@
|
|||
<button>{% trans 'Export' %}</button>
|
||||
<a class="cancel" href="{% url 'combo-manager-homepage' %}">{% trans 'Cancel' %}</a>
|
||||
</div>
|
||||
<script>
|
||||
$.get("{% url 'combo-manager-assets-export-size' %}", function( data ) {
|
||||
$('<span></span>', {'text': data, 'class': 'asset-export-size'}).appendTo($('label[for=id_include_asset]'));
|
||||
}, 'text' );
|
||||
</script>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
|
@ -138,3 +138,8 @@ def test_import_export_assets(some_assets, tmpdir):
|
|||
clean_assets_files()
|
||||
assert count_asset_files() == 0
|
||||
clean_assets_files()
|
||||
|
||||
|
||||
def test_assets_export_size_view(app, some_assets):
|
||||
resp = app.get(reverse('combo-manager-assets-export-size'))
|
||||
assert resp.text.split() == ['(9', 'bytes)']
|
||||
|
|
Loading…
Reference in New Issue