diff --git a/composer/layout/base.py b/composer/layout/base.py index 9431ef0..75deaba 100644 --- a/composer/layout/base.py +++ b/composer/layout/base.py @@ -49,17 +49,7 @@ class LayoutManager(object): def getLayouts(self, key, instance): region = self.regions.get(key) - if region is None: - return [] - result = [] - for layout in region.layouts: - if self.check(layout, instance): - result.append(layout) - return result - - def check(self, layout, instance): - if instance is None or instance.checkLayout(layout): - return True + return instance.getLayouts(region) class Layout(Template): @@ -90,6 +80,8 @@ class LayoutInstance(object): def renderer(self): return self.template.renderer - def checkLayout(self, layout): - return True + def getLayouts(self, region): + if region is None: + return [] + return region.layouts diff --git a/composer/layout/interfaces.py b/composer/layout/interfaces.py index d3ae2b5..7e50f63 100644 --- a/composer/layout/interfaces.py +++ b/composer/layout/interfaces.py @@ -108,9 +108,8 @@ class ILayoutInstance(IInstance): renderer = Attribute(u'An object responsible for rendering the layout.') - def checkLayout(layout): - """ Return True if the layout given is a valid sub-layout - for this instance. + def getLayouts(region): + """ Return a sequence of sub-layouts for the region given. """