def _get_items(self, ctype, state=None, sort=False): """get filtered items """ if ctype is None: res = self.context.getRelatedItems() if sort: return sorted(res, key=lambda obj: sortable_title(obj)()) return res if not isinstance(ctype, list) and not isinstance(ctype, tuple): ctype = [ctype] items = [ rel for rel in self.context.getRelatedItems() if rel and rel.portal_type in ctype ] if state: wf_tool = getToolByName(self.context, 'portal_workflow') items = [ rell for rell in items if wf_tool.getInfoFor(rell, 'review_state') in state ] if sort: return sorted(items, key=lambda obj: sortable_title(obj)()) return items
def sortable_title_transform(brain, value): """This transform should only be used for sorting items by title using the sortable_title indexer. Its used as wrapper for for the CatalogTool sortable_title indexer for making it callable like a normal ftw.table transform. """ return sortable_title(brain)()
def get_sortable_title(self, analysis): analysis = api.get_object(analysis) sort_key = analysis.getSortKey() if sort_key is None: sort_key = 999999 title = sortable_title(analysis) if callable(title): title = title() return "{:010.3f}{}".format(sort_key, title)
def org_sortable_title_index(obj): """Indexer of 'sortable_title' for IOrganization. Stores organization chain concatenated by | !""" # sortable_title(org) returns <plone.indexer.delegate.DelegatingIndexer object> that must be called parts = [ sortable_title(org)() for org in obj.get_organizations_chain() if org.title ] parts and parts.append('') return '|'.join(parts)
def all_items(self): res = [] for item in self.assigned(): adapter = sortable_title(item) st = adapter() o = Item( item.Title(), self.get_description(item), self.get_icons(item), st, item.absolute_url(), ) res.append(o) combine = self.data.get("combine_results", False) if not combine: if res: if self.data.get("sortBy", "") == "NAME": return sorted(res, key=lambda o: o.sortable_title) else: return res for item in self.items(): obj = item.getObject() adapter = sortable_title(obj) st = adapter() o = Item( item.Title, item.Description, self.get_icons(item), st, item.getURL(), ) res.append(o) return res
def _get_items(self, ctype, state=None, sort=False): """get filtered items """ if ctype is None: res = self.context.getRelatedItems() if sort: return sorted(res, key=lambda obj: sortable_title(obj)()) return res if not isinstance(ctype, list) and not isinstance(ctype, tuple): ctype = [ctype] items = [rel for rel in self.context.getRelatedItems() if rel and rel.portal_type in ctype] if state: wf_tool = getToolByName(self.context, 'portal_workflow') items = [rell for rell in items if wf_tool.getInfoFor(rell, 'review_state') in state] if sort: return sorted(items, key=lambda obj: sortable_title(obj)()) return items
def org_sortable_title_index(obj): """ Return organization chain concatenated by | """ # sortable_title(org) returns <plone.indexer.delegate.DelegatingIndexer object> that must be called parts = [sortable_title(org)() for org in obj.get_organizations_chain() if org.title] parts and parts.append('') return '|'.join(parts)
def sortable_organization(obj): return sortable_title(obj.organization)
def getSortKey(self, item): from Products.CMFPlone.CatalogTool import sortable_title return sortable_title(item)()