[Checkins] SVN: grok/trunk/grokblog/src/grokblog/ Separate out calendar browsing functionality.

Martijn Faassen faassen at infrae.com
Fri Dec 1 14:51:53 EST 2006


Log message for revision 71366:
  Separate out calendar browsing functionality.
  

Changed:
  U   grok/trunk/grokblog/src/grokblog/blog.py
  D   grok/trunk/grokblog/src/grokblog/blog_templates/dateindex.pt
  A   grok/trunk/grokblog/src/grokblog/calendar.py
  A   grok/trunk/grokblog/src/grokblog/calendar_templates/
  A   grok/trunk/grokblog/src/grokblog/calendar_templates/dateindex.pt

-=-
Modified: grok/trunk/grokblog/src/grokblog/blog.py
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog.py	2006-12-01 19:45:18 UTC (rev 71365)
+++ grok/trunk/grokblog/src/grokblog/blog.py	2006-12-01 19:51:52 UTC (rev 71366)
@@ -7,103 +7,9 @@
         super(Blog, self).__init__()
         self['entries'] = Entries()
 
-    def traverse(self, name):
-        try:
-            year = int(name)
-        except ValueError:
-            return None
-        return Year(year)
-
 class Entries(grok.Container):
     pass
 
-class Year(grok.Model):
-    def __init__(self, year):
-        self.year = year
-
-    def traverse(self, name):
-        try:
-            month = int(name)
-        except ValueError:
-            return None
-        if month < 1 or month > 12:
-            return None
-        return Month(self.year, month)
-
-class YearIndex(grok.View):
-    grok.name('index')
-    grok.context(Year)
-    grok.template('dateindex')
-
-    def entries(self):
-        from_ = datetime(self.context.year, 1, 1)
-        until = datetime(self.context.year + 1, 1, 1)
-        return entriesInDateRange(from_, until)
-
-class Month(grok.Model):
-    def __init__(self, year, month):
-        self.year = year
-        self.month = month
-
-    def traverse(self, name):
-        try:
-            day = int(name)
-        except ValueError:
-            return None
-        # XXX should check whether day is acceptable
-        return Day(self.year, self.month, day)
-
-class MonthIndex(grok.View):
-    grok.name('index')
-    grok.context(Month)
-    grok.template('dateindex')
-
-    def entries(self):
-        from_ = datetime(self.context.year,
-                         self.context.month,
-                         1)
-        month = self.context.month + 1
-        year = self.context.year
-        if month > 12:
-            month = 1
-            year += 1
-        until = datetime(year, month, 1)
-        return entriesInDateRange(from_, until)
-
-class Day(grok.Model):
-    def __init__(self, year, month, day):
-        self.year = year
-        self.month = month
-        self.day = day
-
-class DayIndex(grok.View):
-    grok.name('index')
-    grok.context(Day)
-    grok.template('dateindex')
-
-    def entries(self):
-        from_ = datetime(self.context.year,
-                         self.context.month,
-                         self.context.day)
-        until = from_ + timedelta(days=1)
-        return entriesInDateRange(from_, until)
-
-def entriesInDateRange(from_, until):
-    entries = grok.getSite()['entries']
-    result = []
-    for entry in entries.values():
-        if from_ <= entry.published <= until:
-            result.append(entry)
-    return sorted(
-        result, key=lambda entry: entry.published, reverse=True
-        )
-
-def lastEntries(amount):
-    entries = grok.getSite()['entries'].values()
-    return sorted(
-        entries, key=lambda entry: entry.published, reverse=True
-        )[:amount]
-
 class BlogIndex(grok.View):
     grok.context(Blog)
     grok.name('index')
@@ -120,3 +26,10 @@
 
     def render(self):
         return "Entries: %s" % ' '.join(self.context.keys())
+
+def lastEntries(amount):
+    entries = grok.getSite()['entries'].values()
+    return sorted(
+        entries, key=lambda entry: entry.published, reverse=True
+        )[:amount]
+

Deleted: grok/trunk/grokblog/src/grokblog/blog_templates/dateindex.pt
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog_templates/dateindex.pt	2006-12-01 19:45:18 UTC (rev 71365)
+++ grok/trunk/grokblog/src/grokblog/blog_templates/dateindex.pt	2006-12-01 19:51:52 UTC (rev 71366)
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-  <head>
-    <title>blog title</title>
-  </head>
-  <body>
-    <h1>blog index</h1>
-
-    <tal:block repeat="entry view/entries">
-      <tal:block content="structure entry/@@item"/>
-    </tal:block>
-
-  </body>
-</html>

Copied: grok/trunk/grokblog/src/grokblog/calendar.py (from rev 71365, grok/trunk/grokblog/src/grokblog/blog.py)
===================================================================
--- grok/trunk/grokblog/src/grokblog/blog.py	2006-12-01 19:45:18 UTC (rev 71365)
+++ grok/trunk/grokblog/src/grokblog/calendar.py	2006-12-01 19:51:52 UTC (rev 71366)
@@ -0,0 +1,95 @@
+import random
+from datetime import datetime, timedelta
+import grok
+from blog import Blog
+
+class BlogYearTraverser(grok.Traverser):
+    grok.context(Blog)
+
+    def traverse(self, name):
+        try:
+            year = int(name)
+        except ValueError:
+            return None
+        return Year(year)
+
+class Year(grok.Model):
+    def __init__(self, year):
+        self.year = year
+
+    def traverse(self, name):
+        try:
+            month = int(name)
+        except ValueError:
+            return None
+        if month < 1 or month > 12:
+            return None
+        return Month(self.year, month)
+
+class YearIndex(grok.View):
+    grok.name('index')
+    grok.context(Year)
+    grok.template('dateindex')
+
+    def entries(self):
+        from_ = datetime(self.context.year, 1, 1)
+        until = datetime(self.context.year + 1, 1, 1)
+        return entriesInDateRange(from_, until)
+
+class Month(grok.Model):
+    def __init__(self, year, month):
+        self.year = year
+        self.month = month
+
+    def traverse(self, name):
+        try:
+            day = int(name)
+        except ValueError:
+            return None
+        # XXX should check whether day is acceptable
+        return Day(self.year, self.month, day)
+
+class MonthIndex(grok.View):
+    grok.name('index')
+    grok.context(Month)
+    grok.template('dateindex')
+
+    def entries(self):
+        from_ = datetime(self.context.year,
+                         self.context.month,
+                         1)
+        month = self.context.month + 1
+        year = self.context.year
+        if month > 12:
+            month = 1
+            year += 1
+        until = datetime(year, month, 1)
+        return entriesInDateRange(from_, until)
+
+class Day(grok.Model):
+    def __init__(self, year, month, day):
+        self.year = year
+        self.month = month
+        self.day = day
+
+class DayIndex(grok.View):
+    grok.name('index')
+    grok.context(Day)
+    grok.template('dateindex')
+
+    def entries(self):
+        from_ = datetime(self.context.year,
+                         self.context.month,
+                         self.context.day)
+        until = from_ + timedelta(days=1)
+        return entriesInDateRange(from_, until)
+
+def entriesInDateRange(from_, until):
+    entries = grok.getSite()['entries']
+    result = []
+    for entry in entries.values():
+        if from_ <= entry.published <= until:
+            result.append(entry)
+    return sorted(
+        result, key=lambda entry: entry.published, reverse=True
+        )

Copied: grok/trunk/grokblog/src/grokblog/calendar_templates/dateindex.pt (from rev 71364, grok/trunk/grokblog/src/grokblog/blog_templates/dateindex.pt)



More information about the Checkins mailing list