# HG changeset patch
# User dirk
# Date 1315585077 -7200
# Node ID 57e324fa4350b480f516101d759329e1f7b9a361
# Parent  d0ced79b50309c3eaf33f4bfb3e389d1066c0908
implement getting a list of feeds that have unread entries

diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/map.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/map.js	Fri Sep 09 18:17:57 2011 +0200
@@ -0,0 +1,7 @@
+function(doc)
+{
+    if (doc.doctype == "feedEntry")
+    {
+        emit(doc.feed, null);
+    }
+}
diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/reduce.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/backend/couchdb/CouchApp/feedworm/views/feeds_with_unread_entries/reduce.js	Fri Sep 09 18:17:57 2011 +0200
@@ -0,0 +1,4 @@
+function(keys, values, rereduce)
+{
+  return true;
+}
diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchDb.py
--- a/backend/couchdb/CouchDb.py	Fri Sep 09 17:21:34 2011 +0200
+++ b/backend/couchdb/CouchDb.py	Fri Sep 09 18:17:57 2011 +0200
@@ -33,4 +33,5 @@
 def readFeedEntriesByCreateDate():
     return database + "/read_feedEntries_by_create_date"
 
-
+def feedsWithUnreadEntries():
+    return database + "/feeds_with_unread_entries"
diff -r d0ced79b5030 -r 57e324fa4350 backend/couchdb/CouchDbBackend.py
--- a/backend/couchdb/CouchDbBackend.py	Fri Sep 09 17:21:34 2011 +0200
+++ b/backend/couchdb/CouchDbBackend.py	Fri Sep 09 18:17:57 2011 +0200
@@ -38,7 +38,11 @@
         return self.feeds
 
     def _getUnreadFeeds(self):
-        raise Exception("not yet implemented")
+        viewResults = self.database.view(CouchDb.feedsWithUnreadEntries(), group=True)
+        feeds = []
+        for row in viewResults:
+            feeds.append(Feed.load(self.database, row["key"]))
+        return feeds
 
     def _retrieveEntriesForSelectedFeed(self, hideReadEntries):
         # TODO how to hide read entries if requested?