From b3913e0ea9d2a5f829c2c33aa82e36f6ee6aa451 Mon Sep 17 00:00:00 2001 From: DrFrasierCrane Date: Tue, 4 Dec 2007 19:53:14 +0100 Subject: [PATCH] Fixed feed aggregation on nested subcategories. --- straw/FeedManager.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/straw/FeedManager.py b/straw/FeedManager.py index b7d3c61..a5fd4dc 100644 --- a/straw/FeedManager.py +++ b/straw/FeedManager.py @@ -224,11 +224,25 @@ class FeedManager(GObject): if category == None: return None - in_str = ", ".join([str(feed.id) for feed in self.feeds[id]]) + def _get_children_feeds(category_id): + feed_ids = [] + + if self.feeds.has_key(category_id): + feed_ids = [str(feed.id) for feed in self.feeds[category_id]] + + children_categories = [ctg_id for ctg_id in self.categories.keys() if self.categories[ctg_id].parent_id == category_id] + + for ctg_id in children_categories: + feed_ids.extend(_get_children_feeds(ctg_id)) + + return feed_ids + + in_str = ", ".join(_get_children_feeds(id)) + items = self.dao.get(Item, " WHERE feed_id IN(%s) ORDER BY id" % in_str) for item in items: - feed = self.lookup_feed(item.feed_id, id) + feed = self.lookup_feed_by_id(item.feed_id) item.feed = feed item.connect("is-read-changed", feed.on_is_read_changed) item.connect("is-read-changed", self.on_item_is_read_changed) -- 2.11.4.GIT