Exemple #1
0
 def _items(self, **query):
     adapter = IAdapter(self.context)
     sort_limit = adapter.get_feed_number(self.interface)
     if sort_limit:
         query['sort_limit'] = sort_limit
         if isinstance(self, BaseNewsEventFeedViewlet):
             query['sort_limit'] += adapter.get_feed_number(ITopPageMainFeed)
     base = IBaseAdapter(self.context)
     res = []
     for item in base.get_content_listing(**query):
         obj = item.getObject()
         if not isinstance(self, BaseNewsEventFeedViewlet) or (
             ISiteRoot.providedBy(self.context) and not ITopPageFeed.providedBy(obj)) or (
                 not ISiteRoot.providedBy(self.context) and INavigationRoot.providedBy(self.context) and not IMicroSiteFeed.providedBy(obj)):
             parent = aq_parent(aq_inner(obj))
             res.append({
                 'title': item.Title(),
                 'url': item.getURL(),
                 'parent_title': parent.Title(),
                 'parent_url': parent.absolute_url(),
                 'date': self._date(item),
                 'image': self._image(item),
                 'description': self._description(item),
             })
     if sort_limit:
         return res[:sort_limit]
     return res
Exemple #2
0
 def _items(self, **query):
     adapter = IAdapter(self.context)
     sort_limit = adapter.get_feed_number(self.interface)
     if sort_limit:
         query['sort_limit'] = sort_limit
         if isinstance(self, BaseNewsEventFeedViewlet):
             query['sort_limit'] += adapter.get_feed_number(
                 ITopPageMainFeed)
     base = IBaseAdapter(self.context)
     res = []
     for item in base.get_content_listing(**query):
         obj = item.getObject()
         if not isinstance(self, BaseNewsEventFeedViewlet) or (
                 ISiteRoot.providedBy(self.context)
                 and not ITopPageFeed.providedBy(obj)) or (
                     not ISiteRoot.providedBy(self.context)
                     and INavigationRoot.providedBy(self.context)
                     and not IMicroSiteFeed.providedBy(obj)):
             parent = aq_parent(aq_inner(obj))
             res.append({
                 'title': item.Title(),
                 'url': item.getURL(),
                 'parent_title': parent.Title(),
                 'parent_url': parent.absolute_url(),
                 'date': self._date(item),
                 'image': self._image(item),
                 'description': self._description(item),
             })
     if sort_limit:
         return res[:sort_limit]
     return res
 def test_ITopPageMainFeed(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import ITopPageMainFeed
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(ITopPageMainFeed), 3)
 def test_IFolderFeed__hasattr(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import IFolderFeed
     setattr(self.portal, 'folder_feed_number', 10)
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(IFolderFeed), 10)
 def test_not_correct_interface(self):
     from sll.templates.interfaces import IAdapter
     from zope.interface import Interface
     root = IAdapter(self.portal)
     with self.assertRaises(ValueError):
         root.get_feed_number(Interface)
 def test_IFolderFeed(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import IFolderFeed
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(IFolderFeed), 4)
Exemple #7
0
 def test_ITopPageMainFeed(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import ITopPageMainFeed
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(ITopPageMainFeed), 3)
Exemple #8
0
 def test_not_correct_interface(self):
     from sll.templates.interfaces import IAdapter
     from zope.interface import Interface
     root = IAdapter(self.portal)
     with self.assertRaises(ValueError):
         root.get_feed_number(Interface)
Exemple #9
0
 def test_IFolderFeed__hasattr(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import IFolderFeed
     setattr(self.portal, 'folder_feed_number', 10)
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(IFolderFeed), 10)
Exemple #10
0
 def test_IFolderFeed(self):
     from sll.templates.interfaces import IAdapter
     from sll.templates.interfaces import IFolderFeed
     root = IAdapter(self.portal)
     self.assertEqual(root.get_feed_number(IFolderFeed), 4)