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}
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}
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}
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}