manager: include cell type in placeholder names (#19868)

This commit is contained in:
Frédéric Péters 2017-11-02 17:04:51 +01:00
parent 4b2b0b9d6b
commit 7d916d3d5b
4 changed files with 11 additions and 3 deletions

View File

@ -78,11 +78,17 @@ def element_is_visible(element, user=None):
class Placeholder(object):
def __init__(self, key, name=None, acquired=False, render=True):
def __init__(self, key, name=None, acquired=False, render=True, cell=None):
self.key = key
self.name = name
self.acquired = acquired
self.render = render
self.cell = cell
def get_name(self):
if self.cell:
return '%s / %s' % (self.cell.get_verbose_name(), self.name)
return self.name
class PageManager(models.Manager):

View File

@ -213,7 +213,7 @@ class PageView(DetailView):
for placeholder in self.object.get_placeholders(traverse_cells=True):
placeholder_dict = {
'key': placeholder.key,
'name': placeholder.name,
'name': placeholder.get_name(),
}
placeholder_dict['cells'] = [x for x in cells if x.placeholder == placeholder.key]
placeholders.append(placeholder_dict)

View File

@ -38,7 +38,7 @@ def skeleton_text(context, placeholder_name, content=''):
@register.inclusion_tag('combo/placeholder.html', takes_context=True)
def placeholder(context, placeholder_name, **options):
placeholder = Placeholder(key=placeholder_name, **options)
placeholder = Placeholder(key=placeholder_name, cell=context.get('cell'), **options)
if context.get('placeholder_search_mode'):
if placeholder.name:
# only include placeholders with a name

View File

@ -627,6 +627,8 @@ def test_page_cell_placeholder(app, admin_user):
cell.save()
resp = app.get('/manage/pages/%s/' % page.id)
assert re.findall('data-placeholder-key="(.*)">', resp.body) == ['content', 'foobar', 'footer']
assert re.findall('<h2>(.*)</h2>', resp.body) == [
'Page - One', 'Parameters', 'Content', 'JSON Feed / Foobar', 'Footer']
def test_page_discover_placeholder_with_error_cells(app, admin_user):
page = Page(title='One', slug='one', template_name='standard')