+CONTAINER_CONTEXT_KEY = 'philo_container_context'
+
+
+class ContainerContext(object):
+ def __init__(self, page):
+ contentlet_specs, contentreference_specs = page.template.containers
+
+ contentlets = page.contentlets.filter(name__in=contentlet_specs)
+ self.contentlets = dict(((c.name, c) for c in contentlets))
+
+ q = Q()
+ for name, ct in contentreference_specs.items():
+ q |= Q(name=name, content_type=ct)
+ references = page.contentreferences.filter(q)
+ self.references = dict(((c.name, c) for c in references))
+
+