moksha/api/widgets/feed/feed.py | 16 ++++++----------
moksha/api/widgets/feed/live.py | 10 +++++++---
2 files changed, 13 insertions(+), 13 deletions(-)
New commits:
commit 7541ecb311b51a0eeacaa9d6492a6c995fa013da
Author: Luke Macken <lmacken(a)redhat.com>
Date: Wed Feb 18 00:59:36 2009 -0500
Fix entry limiting in our feed widget stack
diff --git a/moksha/api/widgets/feed/feed.py b/moksha/api/widgets/feed/feed.py
index 104f564..11b7617 100644
--- a/moksha/api/widgets/feed/feed.py
+++ b/moksha/api/widgets/feed/feed.py
@@ -62,7 +62,7 @@ class Feed(Widget):
return super(Feed, cls).__new__(AlternateFeedView, *args, **kw)
return super(Feed, cls).__new__(cls, *args, **kw)
- def iterentries(self, d=None):
+ def iterentries(self, d=None, limit=None):
url = self.url or d.get('url')
if moksha.feed_cache:
feed = moksha.feed_cache.fetch(url)
@@ -90,6 +90,8 @@ class Feed(Widget):
for i, entry in enumerate(feed.get('entries', [])):
entry['uid'] = '%s_%d' % (self.id, i)
entry['link'] = entry.get('link')
+ if i == limit:
+ break
yield entry
def entries(self):
@@ -101,15 +103,9 @@ class Feed(Widget):
def update_params(self, d):
super(Feed, self).update_params(d)
d['entries'] = []
- limit = d.get('show')
- if limit:
- for i, entry in enumerate(self.iterentries(d)):
- if i >= limit:
- break
- d['entries'].append(entry)
- else:
- for entry in self.iterentries(d):
- d['entries'].append(entry)
+ limit = d.get('limit')
+ for entry in self.iterentries(d, limit=limit):
+ d['entries'].append(entry)
def close(self):
global feed_storage
diff --git a/moksha/api/widgets/feed/live.py b/moksha/api/widgets/feed/live.py
index 3b869fb..263443b 100644
--- a/moksha/api/widgets/feed/live.py
+++ b/moksha/api/widgets/feed/live.py
@@ -25,8 +25,10 @@ class LiveFeedWidget(LiveWidget):
'url': 'The feed URL',
'topic': 'A topic or list of topics to subscribe to',
'feed': 'A moksha Feed object',
+ 'd': 'The widget data',
+ 'limit': 'The number of entries to display',
}
- template = '${feed(id=id, url=url)}'
+ template = '${feed(id=id, url=url, limit=limit)}'
onmessage = """
$.each(json, function() {
$("#${id} ul li:last").remove();
@@ -39,8 +41,10 @@ class LiveFeedWidget(LiveWidget):
"""
feed = Feed()
topic = None
+ limit = 10
def update_params(self, d):
+ if not d.get('topic'):
+ d['topic'] = 'feed.%s' % d.get('url', self.url)
super(LiveFeedWidget, self).update_params(d)
- if not d.topic:
- d.topic = 'feed.%s' % d.url
+ d.d = d
Show replies by date