misc: don't get concrete class when looking at placeholder emptiness (#17645)
This commit is contained in:
parent
e887f6185a
commit
d736942516
|
@ -258,8 +258,8 @@ class Page(models.Model):
|
|||
def is_visible(self, user=None):
|
||||
return element_is_visible(self, user=user)
|
||||
|
||||
def get_cells(self):
|
||||
return CellBase.get_cells(page_id=self.id)
|
||||
def get_cells(self, **kwargs):
|
||||
return CellBase.get_cells(page_id=self.id, **kwargs)
|
||||
|
||||
def get_serialized_page(self):
|
||||
cells = [x for x in self.get_cells() if x.placeholder and not x.placeholder.startswith('_')]
|
||||
|
@ -392,9 +392,12 @@ class CellBase(models.Model):
|
|||
return cell_types
|
||||
|
||||
@classmethod
|
||||
def get_cells(cls, **kwargs):
|
||||
def get_cells(cls, concrete=True, **kwargs):
|
||||
"""Returns a queryset of cells of various classes matching **kwargs"""
|
||||
return cls.objects.filter(**kwargs).order_by('order').select_subclasses()
|
||||
queryset = cls.objects.filter(**kwargs).order_by('order')
|
||||
if not concrete:
|
||||
return queryset
|
||||
return queryset.select_subclasses()
|
||||
|
||||
def get_reference(self):
|
||||
"Returns a string that can serve as a unique reference to a cell"""
|
||||
|
|
|
@ -219,4 +219,4 @@ def get_group(group_list, group_name):
|
|||
|
||||
@register.filter(name='is_empty_placeholder')
|
||||
def is_empty_placeholder(page, placeholder_name):
|
||||
return len([x for x in page.get_cells() if x.placeholder == placeholder_name]) == 0
|
||||
return not page.get_cells(concrete=False).filter(placeholder=placeholder_name).exists()
|
||||
|
|
Loading…
Reference in New Issue