misc: refactor get_all_cell_types to support a filtering function (#21052)

This commit is contained in:
Frédéric Péters 2018-01-18 08:46:40 +01:00
parent ce7386ffd6
commit c8305b3251
1 changed files with 9 additions and 2 deletions

View File

@ -379,13 +379,20 @@ class CellBase(models.Model):
return self.__class__.__name__.lower() + ' ' + self.extra_css_class
@classmethod
def get_all_cell_types(cls):
cell_types = []
def get_cell_classes(cls, class_filter=lambda x: True):
for klass in get_cell_classes():
if not class_filter(klass):
continue
if not klass.is_enabled():
continue
if klass.visible is False:
continue
yield klass
@classmethod
def get_all_cell_types(cls, *args, **kwargs):
cell_types = []
for klass in cls.get_cell_classes(*args, **kwargs):
cell_types.extend(klass.get_cell_types())
return cell_types