assets: make it possible to qualify assets as not being images (#27718)

This commit is contained in:
Frédéric Péters 2018-11-04 12:14:02 +01:00
parent b0973b7c97
commit 9a0b497f7a
3 changed files with 27 additions and 5 deletions

View File

@ -65,13 +65,14 @@ class CkEditorAsset(object):
class SlotAsset(object):
def __init__(self, key=None, name=None, asset=None):
def __init__(self, key=None, name=None, asset_type='image', asset=None):
self.key = key
self.name = name
self.asset_type = asset_type
self.asset = asset
def is_image(self):
return bool(self.asset)
return self.asset_type == 'image' and bool(self.asset)
def size(self):
if self.asset:
@ -95,7 +96,10 @@ class SlotAsset(object):
for cell in CellBase.get_cells(cell_filter=lambda x: bool(x.get_asset_slots)):
uniq_slots.update(cell.get_asset_slots())
for key, value in uniq_slots.items():
yield cls(key, name=value.get('label'), asset=assets.get(key))
yield cls(key,
name=value.get('label'),
asset_type=value.get('asset-type', 'image'),
asset=assets.get(key))
class Assets(ListView):

View File

@ -107,11 +107,13 @@ class WcsFormCell(CellBase):
suffix = ''
if slot_template_data.get('suffix'):
suffix = ' (%s)' % slot_template_data['suffix']
slots['wcs:form:%s:%s' % (slot_template_key, self.formdef_reference)] = {
slot_key = 'wcs:form:%s:%s' % (slot_template_key, self.formdef_reference)
slots[slot_key] = {
'label': u'%(prefix)s%(label)s%(suffix)s' % {
'prefix': slot_template_data['prefix'],
'label': self.cached_title,
'suffix': suffix}}
slots[slot_key].update(slot_template_data)
return slots
@ -150,11 +152,13 @@ class WcsCommonCategoryCell(CellBase):
suffix = ''
if slot_template_data.get('suffix'):
suffix = ' (%s)' % slot_template_data['suffix']
slots['wcs:category:%s:%s' % (slot_template_key, self.category_reference)] = {
slot_key = 'wcs:category:%s:%s' % (slot_template_key, self.category_reference)
slots[slot_key] = {
'label': u'%(prefix)s%(label)s%(suffix)s' % {
'prefix': slot_template_data['prefix'],
'label': self.cached_title,
'suffix': suffix}}
slots[slot_key].update(slot_template_data)
return slots

View File

@ -762,6 +762,7 @@ def test_asset_slots_management(app, admin_user):
'image/png')
resp = resp.form.submit().follow()
assert 'test2.png' in resp.text
assert '<img data-href' in resp.text # thumbnail
assert '>Delete<' in resp.text
assert Asset.objects.filter(key='collectivity:banner').count() == 1
@ -773,6 +774,19 @@ def test_asset_slots_management(app, admin_user):
resp = app.get('/assets/collectivity:banner', status=404)
with override_settings(COMBO_ASSET_SLOTS={'collectivity:cgu': {'label': 'CGU', 'asset-type': 'document'}}):
resp = app.get('/manage/assets/')
assert '>CGU<' in resp.text
assert '>Delete<' not in resp.text
resp = resp.click('Overwrite')
resp.form['upload'] = Upload('test.pdf', 'PDF-1.4 ...', 'application.pdf')
resp = resp.form.submit().follow()
assert 'test.pdf' in resp.text
assert '<img data-href' not in resp.text # no thumbnail
assert '>Delete<' in resp.text
assert Asset.objects.filter(key='collectivity:cgu').count() == 1
def test_menu_json(app, admin_user):
app.get('/manage/menu.json', status=302)