Exemplo n.º 1
0
    def getViewletsForType(self, portal_type=None):
        """ Get viewlets for a given type

        Return a dict where:

          - 'default' value is the default viewlet struct
          - 'viewlets' value is a list of structs with
            the other viewlets

        Each struct is composed of:

          - Viewlet id
          - Viewlet title
          - Viewlet object

        May return None.
        """
        try:
            default = self.getDefaultViewletForType(portal_type).getId()
        except CompositePackError:
            default = self.getDefaultViewletForDefaultSetup().getId()

        viewlets = {}
        registered_viewlets = self.getRegisteredViewletsForType(portal_type)
        if not registered_viewlets:
            registered_viewlets = self.getRegisteredViewletsForDefaultSetup()

        for viewlet in registered_viewlets:
            id = viewlet.getId()
            viewlets[id] = {
                'id': id,
                'title': viewlet.title_or_id(),
                'viewlet': viewlet
            }
        viewlets_info = viewlets.values()
        if viewlets.has_key(default):
            default_viewlet = viewlets[default]
            del viewlets[default]
            viewlets_info = viewlets.values()
        else:
            default_viewlet = viewlets_info.pop()

        return {'default': default_viewlet, 'viewlets': viewlets_info}
Exemplo n.º 2
0
 def old_getViewletsForType(self, portal_type=None):
     vbt = self._viewlets_by_type
     if vbt is not None:
         info = vbt.get(portal_type)
         if info is None:
             # Return default viewlets
             default = self._default_default
             viewlets = self._default_viewlets
         else:
             default = info.default
             if default == DEFAULT:
                 default = self._default_default
             viewlets = info.viewlets
             if viewlets == (DEFAULT, ):
                 viewlets = self._default_viewlets
     else:
         # Return default viewlets
         default = self._default_default
         viewlets = self._default_viewlets
     v_names = tuple(viewlets) + (default, )
     v_names = filter(lambda x: x != DEFAULT, v_names)
     viewlets = {}
     for name in v_names:
         viewlet = self.getViewletById(name)
         if viewlet is None:
             continue
         viewlets[name] = {
             'id': name,
             'title': viewlet.title_or_id(),
             'viewlet': viewlet
         }
     if not viewlets:
         return None
     viewlets_info = viewlets.values()
     if viewlets.has_key(default):
         default_viewlet = viewlets[default]
         del viewlets[default]
         viewlets_info = viewlets.values()
     else:
         default_viewlet = viewlets_info.pop()
     return {'default': default_viewlet, 'viewlets': viewlets_info}
Exemplo n.º 3
0
    def getViewletsForType(self, portal_type=None):
        """ Get viewlets for a given type

        Return a dict where:

          - 'default' value is the default viewlet struct
          - 'viewlets' value is a list of structs with
            the other viewlets

        Each struct is composed of:

          - Viewlet id
          - Viewlet title
          - Viewlet object

        May return None.
        """
        try:
            default = self.getDefaultViewletForType(portal_type).getId()
        except CompositePackError:
            default = self.getDefaultViewletForDefaultSetup().getId()

        viewlets = {}
        registered_viewlets = self.getRegisteredViewletsForType(portal_type)
        if not registered_viewlets:
            registered_viewlets = self.getRegisteredViewletsForDefaultSetup()

        for viewlet in registered_viewlets:
            id = viewlet.getId()
            viewlets[id] = {"id": id, "title": viewlet.title_or_id(), "viewlet": viewlet}
        viewlets_info = viewlets.values()
        if viewlets.has_key(default):
            default_viewlet = viewlets[default]
            del viewlets[default]
            viewlets_info = viewlets.values()
        else:
            default_viewlet = viewlets_info.pop()

        return {"default": default_viewlet, "viewlets": viewlets_info}
Exemplo n.º 4
0
 def old_getViewletsForType(self, portal_type=None):
     vbt = self._viewlets_by_type
     if vbt is not None:
         info = vbt.get(portal_type)
         if info is None:
             # Return default viewlets
             default = self._default_default
             viewlets = self._default_viewlets
         else:
             default = info.default
             if default == DEFAULT:
                 default = self._default_default
             viewlets = info.viewlets
             if viewlets == (DEFAULT,):
                 viewlets = self._default_viewlets
     else:
         # Return default viewlets
         default = self._default_default
         viewlets = self._default_viewlets
     v_names = tuple(viewlets) + (default,)
     v_names = filter(lambda x: x != DEFAULT, v_names)
     viewlets = {}
     for name in v_names:
         viewlet = self.getViewletById(name)
         if viewlet is None:
             continue
         viewlets[name] = {"id": name, "title": viewlet.title_or_id(), "viewlet": viewlet}
     if not viewlets:
         return None
     viewlets_info = viewlets.values()
     if viewlets.has_key(default):
         default_viewlet = viewlets[default]
         del viewlets[default]
         viewlets_info = viewlets.values()
     else:
         default_viewlet = viewlets_info.pop()
     return {"default": default_viewlet, "viewlets": viewlets_info}