Add a list of all subscribed blogs as a subpage, per request from
authorMagnus Hagander <magnus@hagander.net>
Mon, 22 Jun 2009 20:05:06 +0000 (22:05 +0200)
committerMagnus Hagander <magnus@hagander.net>
Mon, 22 Jun 2009 20:05:06 +0000 (22:05 +0200)
Dave Page and Robert Treat.

generator.py
template/index.tmpl

index d5b0927b50ff5cf5cb251b6ae798ff21eed1b4df..9dad3cabf6b2faa800e6153c3f81526c0235f0c7 100755 (executable)
@@ -36,6 +36,8 @@ class Generator:
                self.items = []
                self.topposters = []
                self.topteams = []
+               self.allposters = []
+               self.allteams = []
                self.staticfiles = ['policy','add']
 
                settings.configure(
@@ -107,10 +109,23 @@ ORDER BY teamcount DESC, teamname, feedcount DESC, feedname;
                        self.topteams.append(PlanetFeed(feed))
                if len(self.topteams) < 2: self.topteams = []
 
+               c.execute("""
+SELECT name,blogurl,feedurl,NULL,NULL,NULL,NULL FROM planet.feeds
+WHERE approved AND team IS NULL ORDER BY name,blogurl
+""")
+               self.allposters = [PlanetFeed(feed) for feed in c.fetchall()]
+               c.execute("""
+SELECT feeds.name AS feedname,blogurl,feedurl,NULL,teams.name,teamurl,NULL
+FROM planet.feeds INNER JOIN planet.teams ON planet.feeds.team=planet.teams.id
+WHERE approved ORDER BY teams.name,feeds.name,blogurl
+""")
+               self.allteams = [PlanetFeed(feed) for feed in c.fetchall()]
+
                rss.write_xml(open("www/rss20.xml","w"), encoding='utf-8')
                rssshort.write_xml(open("www/rss20_short.xml","w"), encoding='utf-8')
 
                self.WriteFromTemplate('index.tmpl', 'www/index.html')
+               self.WriteFromTemplate('feeds.tmpl', 'www/feeds.html')
                for staticfile in self.staticfiles:
                        self.UpdateStaticFile(staticfile)
 
@@ -120,6 +135,8 @@ ORDER BY teamcount DESC, teamname, feedcount DESC, feedname;
                f.write(tmpl.render(Context({
                        'topposters': self.topposters,
                        'topteams': self.topteams,
+                       'allposters': self.allposters,
+                       'allteams': self.allteams,
                        'posts': self.items,
                })).encode('utf-8'))
                f.close()
index bacfcf0639f64cc52a52e3a3d9db58ddc78ac86f..b88c6682e055d8e56825adb9c549a504828deab5 100644 (file)
@@ -36,6 +36,7 @@
      <ul>
       <li><a href="policy.html">Policy</a> for being listed on Planet PostgreSQL.</li>
       <li><a href="add.html">Add</a> your blog to Planet PostgreSQL.</li>
+      <li><a href="feeds.html">List</a> of all subscribed blogs.</li>
       <li><a href="/register/">Manage</a> your registration.</li>
      </ul>
      <div class="planetRightTitle">Contact</div>