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@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
moksha-commits@lists.fedorahosted.org