Example #1
0
def get_parl_container(context, chamber_id):
    parl = None
    chamber_key = container_obj_key(chamber_id)
    container = getattr_ancestry(context, None, 
        acceptable=model_ifaces.IParliamentContainer.providedBy)
    if container:
        parl = container[chamber_key]
    else:
        #check locally for container
        containers = get_managed_containers(context) or context.items()
        for key, container in containers:
            if model_ifaces.IParliamentContainer.providedBy(container):
                return container[chamber_key]
    return parl
Example #2
0
def get_parl_container(context, chamber_id):
    parl = None
    chamber_key = container_obj_key(chamber_id)
    container = getattr_ancestry(
        context, None, acceptable=model_ifaces.IParliamentContainer.providedBy)
    if container:
        parl = container[chamber_key]
    else:
        #check locally for container
        containers = get_managed_containers(context) or context.items()
        for key, container in containers:
            if model_ifaces.IParliamentContainer.providedBy(container):
                return container[chamber_key]
    return parl
Example #3
0
def get_parl_container(context, chamber_id):
    parl = None
    chamber_key = container_obj_key(chamber_id)
    container = getattr_ancestry(context,
        acceptable=model_ifaces.IChamberContainer.providedBy)
    if not container:
        #check locally for container
        containers = get_managed_containers(context) or context.items()
        for key, local_container in containers:
            if model_ifaces.IChamberContainer.providedBy(local_container):
                container = local_container
                break
    try:
        parl = container[chamber_key]
    except KeyError:
        log.error("No such chamber was found with key %s", chamber_key)
    return parl
Example #4
0
    def expand(self, chain, include_siblings=True):
        if len(chain) == 0:
            return ()
        context = chain.pop()
        items = []
        if IApplication.providedBy(context):
            items.extend(self.expand(chain))
        elif IAlchemistContent.providedBy(context):
            _url = url.absoluteURL(context, self.request)
            selected = len(chain) == 0

            if chain:
                nodes = self.expand(chain)
            else:
                containers = utils.get_managed_containers(context)
                nodes = []
                self.expand_containers(nodes, containers, _url, chain, None)

            items.append({
                "id": self.get_nav_entry_id(_url),
                "label": IDCDescriptiveProperties(context).title,
                "url": _url,
                "current": True,
                "selected": selected,
                "kind": "content",
                "nodes": nodes,
            })
        elif IAlchemistContainer.providedBy(context):
            # loop through all managed containers of the parent
            # object, and include the present container as the
            # "current" node.
            parent = context.__parent__
            assert parent is not None
            _url = url.absoluteURL(parent, self.request)

            # append managed containers as child nodes
            if include_siblings is True:
                if IApplication.providedBy(parent):
                    containers = [
                        (name, parent[name]) for name in
                        location.model_to_container_name_mapping.values()
                        if name in parent
                    ]
                elif IReadContainer.providedBy(parent):
                    containers = list(parent.items())
                else:
                    containers = utils.get_managed_containers(parent)
            else:
                containers = [(context.__name__, context)]
            self.expand_containers(items, containers, _url, chain, context)
        elif ILocation.providedBy(context):
            # e.g. bungeni.core.content.Section, DisplayForm
            _url = url.absoluteURL(context, self.request)
            selected = len(chain) == 0
            if selected and IReadContainer.providedBy(context):
                nodes = []
                try:
                    self.expand_containers(nodes, context.items(), _url, chain,
                                           context)
                except:
                    pass
            else:
                nodes = self.expand(chain)
            _title = getattr(context, "title", None) or \
                getattr(context, "page_title", "!+BungeniBrowserView.title")
            items.append({
                "id": self.get_nav_entry_id(_url),
                # !+BungeniBrowserView.title
                "label": _title,  #IDCDescriptiveProperties(context).title,
                "url": _url,
                "current": True,
                "selected": selected,
                "kind": "location",
                "nodes": nodes,
            })
        elif IReadContainer.providedBy(context):
            #!+NavigationTreeViewlet-EXPAND-IReadContainer(mr, oct-2012) does this ever execute?!
            raise Exception(
                "!+NavigationTreeViewlet-EXPAND-IReadContainer [%s]" % context)
            items.extend(self.expand(chain))
        return items
 def expand(self, chain, include_siblings=True):
     if len(chain) == 0:
         return ()
     context = chain.pop()
     items = []
     if IApplication.providedBy(context):
         items.extend(self.expand(chain))
     elif IAlchemistContent.providedBy(context):
         _url = url.absoluteURL(context, self.request)
         selected = len(chain) == 0
         
         if chain:
             nodes = self.expand(chain)
         else:
             containers = utils.get_managed_containers(context)
             nodes = []
             self.expand_containers(nodes, containers, _url, chain, None)
         
         items.append({
                 "id": self.get_nav_entry_id(_url),
                 "label": IDCDescriptiveProperties(context).title,
                 "url": _url,
                 "current": True,
                 "selected": selected,
                 "kind": "content",
                 "nodes": nodes,
             })
     elif IAlchemistContainer.providedBy(context):
         # loop through all managed containers of the parent
         # object, and include the present container as the
         # "current" node.
         parent = context.__parent__
         assert parent is not None
         _url = url.absoluteURL(parent, self.request)
         
         # append managed containers as child nodes            
         if include_siblings is True:
             if IApplication.providedBy(parent):
                 containers = [ (name, parent[name])
                     for name in 
                         location.model_to_container_name_mapping.values()
                     if name in parent ]
             elif IReadContainer.providedBy(parent):
                 containers = list(parent.items())
             else:
                 containers = utils.get_managed_containers(parent)
         else:
             containers = [(context.__name__, context)]
         self.expand_containers(items, containers, _url, chain, context)
     elif ILocation.providedBy(context):
         # e.g. bungeni.core.content.Section, DisplayForm
         _url = url.absoluteURL(context, self.request)
         selected = len(chain) == 0
         if selected and IReadContainer.providedBy(context):
             nodes = []
             try:
                 self.expand_containers(
                     nodes, context.items(), _url, chain, context)
             except:
                 pass
         else:
             nodes = self.expand(chain)
         _title = getattr(context, "title", None) or \
             getattr(context, "page_title", "!+BungeniBrowserView.title")
         items.append({
                 "id": self.get_nav_entry_id(_url),
                 # !+BungeniBrowserView.title
                 "label": _title, #IDCDescriptiveProperties(context).title,
                 "url": _url,
                 "current": True,
                 "selected": selected,
                 "kind": "location",
                 "nodes": nodes,
             })
     elif IReadContainer.providedBy(context):
         #!+NavigationTreeViewlet-EXPAND-IReadContainer(mr, oct-2012) does this ever execute?!
         raise Exception("!+NavigationTreeViewlet-EXPAND-IReadContainer [%s]" % context)
         items.extend(self.expand(chain))
     return items
Example #6
0
def get_chamber_containers(chamber):
    return get_managed_containers(chamber)
Example #7
0
def get_chamber_containers(chamber):
    return get_managed_containers(chamber)