changeset 146:8ec20377bcb0

move getting the entries for a feed to the backend so that the couchdb backend can use a custom view for feed entries
author Dirk Olmes <dirk@xanthippe.ping.de>
date Thu, 25 Aug 2011 07:01:45 +0200
parents 71c5dc02ff87
children b290e29a94b5
files MainWindow.py backend/couchdb/CouchDbBackend.py backend/couchdb/Preferences.py backend/sqlalchemy/SqlAlchemyBackend.py
diffstat 4 files changed, 27 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/MainWindow.py	Thu Aug 25 05:39:03 2011 +0200
+++ b/MainWindow.py	Thu Aug 25 07:01:45 2011 +0200
@@ -50,7 +50,7 @@
 
     def setupFeedEntries(self):
         hideReadEntries = self.preferences.hideReadFeedEntries()
-        self.feedEntries = self.selectedFeed.entriesSortedByUpdateDate(hideReadEntries)
+        self.feedEntries = self.backend.entriesForFeed(self.selectedFeed, hideReadEntries)
         self.initFeedDisplayModel()
 
     def initFeedDisplayModel(self):
--- a/backend/couchdb/CouchDbBackend.py	Thu Aug 25 05:39:03 2011 +0200
+++ b/backend/couchdb/CouchDbBackend.py	Thu Aug 25 07:01:45 2011 +0200
@@ -2,6 +2,7 @@
 from FeedUpdater import FeedUpdater
 from Preferences import Preferences
 from backend.couchdb.Feed import Feed
+from backend.couchdb.FeedEntry import FeedEntry
 import couchdb
 
 
@@ -20,6 +21,12 @@
         return Preferences(self.database)
 
     def getFeeds(self):
+        if self.preferences().showOnlyUnreadFeeds():
+            return self._getUnreadFeeds()
+        else:
+            return Feed.all(self.database)
+
+    def _getUnreadFeeds(self):
         raise Exception("not yet implemented")
 
     def toggleRead(self, feedEntry):
@@ -37,6 +44,13 @@
     def deleteFeed(self, feed):
         raise Exception("not yet implemented")
 
+    def entriesForFeed(self, feed, hideReadEntries):
+        viewName = "feedtest/feedEntries_by_feed"
+        if hideReadEntries:
+            viewName = "feedtest/unread_feedEntries_by_feed"
+        viewResults = self.database.view(viewName)
+        return [FeedEntry(row) for row in viewResults]
+
     def markFeedEntriesAsRead(self, entries):
         raise Exception("not yet implemented")
 
--- a/backend/couchdb/Preferences.py	Thu Aug 25 05:39:03 2011 +0200
+++ b/backend/couchdb/Preferences.py	Thu Aug 25 07:01:45 2011 +0200
@@ -20,3 +20,12 @@
 
     def proxyPort(self):
         return self._valueForKey("proxyPort")
+
+    def showOnlyUnreadFeeds(self):
+        return self._valueForKey("showOnlyUnreadFeeds")
+
+    def startMaximized(self):
+        return self._valueForKey("startMaximized")
+
+    def hideReadFeedEntries(self):
+        return self._valueForKey("hideReadFeedEntries")
\ No newline at end of file
--- a/backend/sqlalchemy/SqlAlchemyBackend.py	Thu Aug 25 05:39:03 2011 +0200
+++ b/backend/sqlalchemy/SqlAlchemyBackend.py	Thu Aug 25 07:01:45 2011 +0200
@@ -75,6 +75,9 @@
         self.session.delete(feed)
         self.session.commit()
 
+    def entriesForFeed(self, feed, hideReadEntries):
+        return feed.entriesSortedByUpdateDate(hideReadEntries)
+
     def markFeedEntriesAsRead(self, entries):
         for entry in entries:
             entry.markRead()