[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