Пример #1
0
 def get_mailing_lists(self, path=None):
     query = dict(portal_type='Open Mailing List')
     if path:
         query['path'] = path
     ml_brains = self.catalog(**query)
     mailing_lists = [brain for brain in ml_brains if brain.created <= self.report_date]
     mls = []
     for lst in mailing_lists:
         mail_catalog = get_utility_for_context(ISearchableArchive,
                                                context=lst.getObject())
         latest_date = DateTime.DateTime(0)
         if mail_catalog:
             query = dict(sort_on='date',
                          sort_order='descending')
             brains = mail_catalog(**query)
             latest_date = brains[0].date
         mls.append({'Title':lst.Title,
                     'latest_date':latest_date,
                     'created':lst.created,
                     'num_threads': lst.mailing_list_threads,
                     })
     return mls
Пример #2
0
    def items(self, n_items=5):
        if hasattr(self,'_items'):
            # If the property already contains something, there's no need to
            # regenerate it.
            return self._items

        # set self._items to empty list in case we have
        # no results at all
        self._items = []

        all_msgs = []
        for ml_id in self.mlists:
            mlist = self.context._getOb(ml_id)
            if not mlist.can_view_archives(mlist.REQUEST):
                continue

            cat = get_utility_for_context(ISearchableArchive, mlist)
            # aq wrap since brains work better this way            
            cat = cat.__of__(mlist)
            msgs = cat(sort_limit=n_items,
                       sort_order='descending',
                       sort_on='modification_date')
            all_msgs.extend(msgs)
        all_msgs.sort(key=lambda x:x.modification_date, reverse=True)
        all_msgs = all_msgs[:n_items]

        for msg in all_msgs:
            mstruct = messageStructure(msg, sub_mgr=mlist)
            self.add_item(title=obfct(msg.subject),
                          description=obfct(msg.subject),
                          link='%s/forum_view' % mstruct['url'],
                          author=mstruct['mail_from'],
                          pubDate=msg.modification_date,
#                          context=mlist,
#                              byline='by',
#                              responses=response
                              )

        return self._items