def _searchArchive(self, text=None): messages = [] batch = self.request.get('batch', True) batch_size = int(self.request.get('b_size', 25)) batch_start = int(self.request.get('b_start', 0)) text = text or decode(self.request.get('search_text'), '') context = self.context subscription = IMembershipList(self.getMailingList()) if text: text = text.strip() try: messages = self.search.search(text) except ParseTree.ParseError, inst: if "Token 'ATOM' required, 'EOF' found" in str(inst) or "Token 'EOF' required" in str(inst): self.request.set('portal_status_message', _(u'Invalid Search: Search phrase cannot end with \'and\', \'or\', or \'not\'')) elif "Token 'ATOM' required" in str(inst): self.request.set('portal_status_message', _(u'Invalid Search: Search phrase cannot begin with \'and\', \'or\', or \'not\'')) elif "a term must have at least one positive word" in str(inst): self.request.set('portal_status_message', _(u'Invalid Search: Search phrase cannot begin with \'not\'')) elif "Query contains only common words" in str(inst): self.request.set('portal_status_message', _(u'Invalid Search: Search phrase must contain words other than \'and\', \'or\', and \'not\'')) else: messages = catalogMessageIterator(messages, sub_mgr=subscription) if len(messages) == 0: self.request.set('portal_status_message', _(u'There were no messages found'))
def _searchArchive(self, text=None): messages = [] batch = self.request.get('batch', True) batch_size = int(self.request.get('b_size', 25)) batch_start = int(self.request.get('b_start', 0)) text = text or decode(self.request.get('search_text'), '') context = self.context subscription = IMembershipList(self.getMailingList()) if text: text = text.strip() try: messages = self.search.search(text) except ParseTree.ParseError, inst: if "Token 'ATOM' required, 'EOF' found" in str( inst) or "Token 'EOF' required" in str(inst): self.request.set( 'portal_status_message', _(u'Invalid Search: Search phrase cannot end with \'and\', \'or\', or \'not\'' )) elif "Token 'ATOM' required" in str(inst): self.request.set( 'portal_status_message', _(u'Invalid Search: Search phrase cannot begin with \'and\', \'or\', or \'not\'' )) elif "a term must have at least one positive word" in str( inst): self.request.set( 'portal_status_message', _(u'Invalid Search: Search phrase cannot begin with \'not\'' )) elif "Query contains only common words" in str(inst): self.request.set( 'portal_status_message', _(u'Invalid Search: Search phrase must contain words other than \'and\', \'or\', and \'not\'' )) else: messages = catalogMessageIterator(messages, sub_mgr=subscription) if len(messages) == 0: self.request.set('portal_status_message', _(u'There were no messages found'))
def getReferrers(self): """See ISearchableArchive documentation""" return catalogMessageIterator(self.search.getMessageReferrers( self.message_id), sub_mgr=self.getSubManager())
def getMessageList(self): path = '/'.join(self.context.getPhysicalPath()) messages = self.search.getAllMessagesInPath(path) # subscription = IMemberSubscriptionList(self.getMailingList()) return catalogMessageIterator(messages, sub_mgr=self.context)
def getReferrers(self): """See ISearchableArchive documentation""" return catalogMessageIterator( self.search.getMessageReferrers(self.message_id), sub_mgr=self.getSubManager())