security.declareProtected(permissions.View, 'getMacro') def getMacro(self): """return macro path to display portlet""" return self.portlet_macro security.declareProtected(permissions.View, 'hasBody') def hasBody(self): """ return true if there are some characters in body text """ value = self.getBody(mimetype='text/plain').strip() return not not value security.declareProtected(permissions.View, 'getPortletStyles') def getPortletStyles(self): """return available styles (CSS class names) for portlets, taken from a property in SimplePortletTool""" ptool = getToolByName(self, 'portlet_manager') styledefs = ptool.getProperty('conf_portlet_styles', ()) vocab = [] for style in styledefs: s = style.split(':', 1) if len(s) < 2: s = (s[0], s[0]) vocab.append(s) return DisplayList(vocab) registerType(Portlet) registerPortlet(Portlet)
label_msgid='label_show_link_to_more_results', description='Include link to page showing more topic results.', description_msgid='help_show_link_to_more_results', i18n_domain='SimplePortlet' ), default=1 ), BooleanField('show_date', widget=BooleanWidget(label='Show item date', label_msgid='label_show_date', description='Include item date in portlet view.', description_msgid='help_show_date', i18n_domain='SimplePortlet' ), default=1 ), )) class TopicPortlet(Portlet): """Portlet to show the results of a predefined smart folder""" schema = schema portlet_macro = 'here/portlet_topicportlet_macros/macros/portlet' security = ClassSecurityInfo() archetype_name = 'Smart Folder Portlet' portal_type = meta_type = "TopicPortlet" registerType(TopicPortlet) registerPortlet(TopicPortlet)
label='Maximum result', label_msgid='label_max_results', description='Enter the maximum results displayed in portlet.', description_msgid='help_max_results', i18n_domain='SimplePortlet'), ), )) class CMFSinPortlet(Portlet): """ A Portlet displaying rss based on CMFSin """ schema = schema portlet_macro = 'here/portlet_cmfsin_macros/macros/portlet' security = ClassSecurityInfo() archetype_name = 'RSS Portlet' portal_type = meta_type = "RSSPortlet" security.declarePublic('getCMFSinChannels') def getCMFSinChannels(self): sin_tool = getToolByName(self, 'sin_tool') return DisplayList([(x.id, x.id) for x in list(sin_tool.Maps())]) schema['channel'].vocabulary = ComputedAttribute(getCMFSinChannels, 1) registerType(CMFSinPortlet) registerPortlet(CMFSinPortlet)