Changeset 838
- Timestamp:
- 04/06/07 08:42:57
- Files:
-
- SimpleBlog/branches/optimizations/SimpleBlogTool.py (modified) (1 diff)
- SimpleBlog/branches/optimizations/content/blog.py (modified) (4 diffs)
- SimpleBlog/branches/optimizations/content/blogfolder.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
SimpleBlog/branches/optimizations/SimpleBlogTool.py
r823 r838 268 268 results = startpoint.portal_catalog.searchResults(query, meta_type='BlogEntry', 269 269 path={'query':self.getObjectPath(startpoint),'level':0}, sort_order='reverse', 270 sort_on='effective', sort_limit=maxResults )270 sort_on='effective', sort_limit=maxResults and maxResults or None) 271 271 272 272 if maxResults==0: SimpleBlog/branches/optimizations/content/blog.py
r823 r838 17 17 18 18 from Products.ATContentTypes.content.base import ATCTBTreeFolder, ATCTFolder 19 20 schema = ATCTFolder.schema.copy() + Schema(( 19 from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema 20 21 schema = ConstrainTypesMixinSchema.copy() + ATCTFolder.schema.copy() + Schema(( 21 22 StringField('description', 22 23 isMetadata=1, … … 201 202 schema['relatedItems'].widget.visible={'view' : 'invisible', 'edit':'invisible'} 202 203 203 class Blog(ATCT Folder):204 class Blog(ATCTBTreeFolder,ATCTFolder): 204 205 """Blog""" 205 206 … … 249 250 syn_tool = getToolByName(self, 'portal_syndication') 250 251 limit = int(syn_tool.getMaxItems(self)) 251 entries = self.get rEntries(self, maxResults=limit)252 entries = self.getEntries(self, maxResults=limit) 252 253 253 254 # convert to objects … … 281 282 if maxResults: 282 283 query['sort_limit'] = maxResults + 1 # need to if the last page riched 283 query['path'] = {'query':self.simpleblog_tool.getObjectPath(self),'level':0} 284 if not query.has_key('path'): 285 query['path'] = {'query':self.simpleblog_tool.getObjectPath(self),'level':0} 284 286 query['sort_order'] = 'reverse' 285 287 query['sort_on'] = 'effective' 286 288 query['meta_type'] = 'BlogEntry' 287 289 onTop = [] 288 if not skipOnTop and b_start==0: 290 if not skipOnTop and b_start==0: #??? if number of marked with 'alwaysOnTop' BE > 'displayItems' -> they will present on second page 289 291 query['getAlwaysOnTop']=1 290 292 onTop = list(self.portal_catalog.searchResults(query)) SimpleBlog/branches/optimizations/content/blogfolder.py
r823 r838 6 6 7 7 from Products.ATContentTypes.content.base import ATCTBTreeFolder, ATCTFolder 8 from Products.ATContentTypes.lib.constraintypes import ConstrainTypesMixinSchema 8 9 9 10 import Products.SimpleBlog.Permissions 10 11 11 12 12 schema = ATCTFolder.schema.copy() + Schema((13 schema = ConstrainTypesMixinSchema.copy() + ATCTFolder.schema.copy() + Schema(( 13 14 StringField('description', 14 15 isMetadata=1, … … 34 35 35 36 36 class BlogFolder(ATCT Folder):37 class BlogFolder(ATCTBTreeFolder, ATCTFolder): 37 38 """ 38 39 A folder object to store BlogEntries in … … 84 85 """ Return all the contained published entries, real objects, not the brains """ 85 86 # see simpleblog_tool.searchForEntries for API description 87 #publishedState = self.simpleblog_tool.getPublishedState() 88 89 #query['getAlwaysOnTop']=1 90 91 ## first the items that need to be listed on top 92 #localOnTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective') 93 #localOnTop = [r.getObject() for r in localOnTop ] 94 95 ## then the other items 96 #query['getAlwaysOnTop']=0 97 #localNoTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective') 98 #localNoTop= [r.getObject() for r in localNoTop] 99 100 #results = localOnTop+localNoTop 101 102 #if maxResults==0: 103 #return results 104 #elif maxResults==None: 105 #return results[:self.simpleblog_tool.getMaxItemsInPortlet()] 106 #else: 107 #return results[:maxResults] 108 blog = self.simpleblog_tool.getFrontPage(self) 109 kwargs.update({'path':{'query':'/'+'/'.join(self.getPhysicalPath()),'level':0}}) 110 return blog.getEntries(maxResults=maxResults, **kwargs) 86 111 87 query=kwargs88 89 publishedState = self.simpleblog_tool.getPublishedState()90 91 query['getAlwaysOnTop']=192 93 # first the items that need to be listed on top94 localOnTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective')95 localOnTop = [r.getObject() for r in localOnTop ]96 97 # then the other items98 query['getAlwaysOnTop']=099 localNoTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective')100 localNoTop= [r.getObject() for r in localNoTop]101 102 results = localOnTop+localNoTop103 104 if maxResults==0:105 return results106 elif maxResults==None:107 return results[:self.simpleblog_tool.getMaxItemsInPortlet()]108 else:109 return results[:maxResults]110 112 111 113 def synContentValues(self):
