manager: include cell type in placeholder names (#19868)
This commit is contained in:
parent
4b2b0b9d6b
commit
7d916d3d5b
|
@ -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):
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue