def _data(self): if self.anonymous: return [] context = aq_inner(self.context) workflow = getToolByName(context, 'portal_workflow') plone_view = getMultiAdapter((context, self.request), name=u'plone') getMember = getToolByName(context, 'portal_membership').getMemberById getIcon = plone_view.getIcon toLocalizedTime = plone_view.toLocalizedTime excludeSubsite = self.data.excludeSubsite catalog = getToolByName(context, 'portal_catalog') idnormalizer = queryUtility(IIDNormalizer) norm = idnormalizer.normalize objects = workflow.getWorklistsResults() items = [] # use advanced query to filter out content in subsites if excludeSubsite: query = catalog.makeAdvancedQuery({'review_state': 'pending', 'path': self.nav_root}) query &= ~In('path', get_subsites(self.nav_root, catalog), filter=True) results = catalog.evalAdvancedQuery(query) for obj in results: items.append(dict( path=obj.getURL(), title=obj.pretty_title_or_id(), description=obj.Description, icon=getIcon(obj).html_tag(), creator=obj.Creator, review_state=obj.review_state, review_state_class='state-%s ' % norm(obj.review_state), mod_date=toLocalizedTime(obj.ModificationDate), )) return items for obj in objects: review_state = workflow.getInfoFor(obj, 'review_state') creator_id = obj.Creator() creator = getMember(creator_id) if creator: creator_name = creator.getProperty('fullname', '') or \ creator_id else: creator_name = creator_id items.append(dict( path=obj.absolute_url(), title=obj.pretty_title_or_id(), description=obj.Description(), icon=getIcon(obj).html_tag(), creator=obj.Creator(), review_state=review_state, review_state_class='state-%s ' % norm(review_state), mod_date=toLocalizedTime(obj.ModificationDate()), )) return items
def search_results(self): context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog') path = self.navigation_root_path excludeSubsite = self.data.excludeSubsite query = catalog.makeAdvancedQuery({'path': path}) if excludeSubsite: query &= ~ In('path', get_subsites(path, catalog), filter=True) return catalog.evalAdvancedQuery(query)
def _data(self): context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog') portal_state = getMultiAdapter((context, self.request), name=u'plone_portal_state') path = portal_state.navigation_root_path() limit = self.data.count state = self.data.state excludeSubsite = self.data.excludeSubsite query = catalog.makeAdvancedQuery({'portal_type': 'News Item', 'review_state': state, 'path': path, 'sort_on': 'Date', 'sort_order': 'reverse', 'sort_limit': limit}) if excludeSubsite: query &= ~ In('path', get_subsites(path, catalog), filter=True) results = catalog.evalAdvancedQuery(query, (('Date', 'desc'),)) return results[:limit]
def _data(self): context = aq_inner(self.context) catalog = getToolByName(context, "portal_catalog") limit = self.data.count state = self.data.state path = self.navigation_root_path excludeSubsite = self.data.excludeSubsite query = catalog.makeAdvancedQuery( { "portal_type": "Event", "review_state": state, "end": {"query": DateTime(), "range": "min"}, "path": path, "sort_on": "start", "sort_limit": limit, } ) if excludeSubsite: query &= ~In("path", get_subsites(path, catalog), filter=True) results = catalog.evalAdvancedQuery(query, ("start",)) return results[:limit]
def get_subsite_paths(self): context = aq_inner(self.context) catalog = getToolByName(context, 'portal_catalog') path = self.navigation_root_path return get_subsites(path, catalog)