[Checkins] SVN: Grokstar/trunk/src/grokstar/ Start using the
catalog for calendar entries.
Martijn Faassen
faassen at infrae.com
Thu Jan 25 16:51:57 EST 2007
Log message for revision 72231:
Start using the catalog for calendar entries.
Changed:
U Grokstar/trunk/src/grokstar/blog.py
U Grokstar/trunk/src/grokstar/calendar.py
-=-
Modified: Grokstar/trunk/src/grokstar/blog.py
===================================================================
--- Grokstar/trunk/src/grokstar/blog.py 2007-01-25 21:32:43 UTC (rev 72230)
+++ Grokstar/trunk/src/grokstar/blog.py 2007-01-25 21:51:56 UTC (rev 72231)
@@ -2,11 +2,24 @@
from datetime import datetime, timedelta
from zope import schema
+from zope.app.intid import IntIds
+from zope.app.intid.interfaces import IIntIds
+from zope.app.catalog.catalog import Catalog
+from zope.app.catalog.interfaces import ICatalog
+from zope.app.catalog.field import FieldIndex
import grok
+from grokstar.interfaces import IEntry
+def setup_catalog(catalog):
+ catalog['published'] = FieldIndex('published', IEntry)
+
class Blog(grok.Container, grok.Site):
+ grok.local_utility(IntIds, provides=IIntIds)
+ grok.local_utility(Catalog, provides=ICatalog, name='entry_catalog',
+ setup=setup_catalog)
+
class fields:
title = schema.TextLine(title=u'Title', default=u'')
tagline = schema.TextLine(title=u'Tagline', default=u'')
Modified: Grokstar/trunk/src/grokstar/calendar.py
===================================================================
--- Grokstar/trunk/src/grokstar/calendar.py 2007-01-25 21:32:43 UTC (rev 72230)
+++ Grokstar/trunk/src/grokstar/calendar.py 2007-01-25 21:51:56 UTC (rev 72231)
@@ -1,6 +1,9 @@
import random
from datetime import datetime, timedelta
+from zope import component
import grok
+from hurry.query.query import Query
+from hurry import query
from blog import Blog
class BlogYearTraverser(grok.Traverser):
@@ -85,11 +88,8 @@
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)
+ entries = Query().searchResults(
+ query.Between(('entry_catalog', 'published'), from_, until))
return sorted(
- result, key=lambda entry: entry.published, reverse=True
+ entries, key=lambda entry: entry.published, reverse=True
)
More information about the Checkins
mailing list