Changeset 838

Show
Ignore:
Timestamp:
04/06/07 08:42:57
Author:
mylan
Message:

Move Blog and BlogFolder? to ATCTBtreeFolder. Correct minor issues.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • SimpleBlog/branches/optimizations/SimpleBlogTool.py

    r823 r838  
    268268        results = startpoint.portal_catalog.searchResults(query, meta_type='BlogEntry',  
    269269                  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
    271271         
    272272        if  maxResults==0: 
  • SimpleBlog/branches/optimizations/content/blog.py

    r823 r838  
    1717 
    1818from Products.ATContentTypes.content.base import  ATCTBTreeFolder, ATCTFolder 
    19  
    20 schema = ATCTFolder.schema.copy() +  Schema(( 
     19from Products.ATContentTypes.lib.constraintypes import  ConstrainTypesMixinSchema 
     20 
     21schema = ConstrainTypesMixinSchema.copy() + ATCTFolder.schema.copy() +  Schema(( 
    2122    StringField('description', 
    2223                isMetadata=1, 
     
    201202schema['relatedItems'].widget.visible={'view' : 'invisible', 'edit':'invisible'} 
    202203 
    203 class Blog(ATCTFolder): 
     204class Blog(ATCTBTreeFolder,ATCTFolder): 
    204205    """Blog""" 
    205206 
     
    249250        syn_tool = getToolByName(self, 'portal_syndication') 
    250251        limit = int(syn_tool.getMaxItems(self)) 
    251         entries = self.getrEntries(self, maxResults=limit) 
     252        entries = self.getEntries(self, maxResults=limit) 
    252253          
    253254        # convert to objects 
     
    281282        if maxResults: 
    282283            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} 
    284286        query['sort_order'] = 'reverse' 
    285287        query['sort_on'] = 'effective' 
    286288        query['meta_type'] = 'BlogEntry' 
    287289        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 
    289291            query['getAlwaysOnTop']=1 
    290292            onTop = list(self.portal_catalog.searchResults(query)) 
  • SimpleBlog/branches/optimizations/content/blogfolder.py

    r823 r838  
    66 
    77from Products.ATContentTypes.content.base import  ATCTBTreeFolder, ATCTFolder 
     8from Products.ATContentTypes.lib.constraintypes import  ConstrainTypesMixinSchema 
    89 
    910import Products.SimpleBlog.Permissions 
    1011 
    1112 
    12 schema = ATCTFolder.schema.copy() +  Schema(( 
     13schema = ConstrainTypesMixinSchema.copy() + ATCTFolder.schema.copy() +  Schema(( 
    1314    StringField('description', 
    1415                isMetadata=1, 
     
    3435 
    3536 
    36 class BlogFolder(ATCTFolder): 
     37class BlogFolder(ATCTBTreeFolder, ATCTFolder): 
    3738    """ 
    3839    A folder object to store BlogEntries in 
     
    8485        """ Return all the contained published entries, real objects, not the brains """ 
    8586        # 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) 
    86111 
    87         query=kwargs 
    88  
    89         publishedState = self.simpleblog_tool.getPublishedState() 
    90          
    91         query['getAlwaysOnTop']=1 
    92          
    93         # first the items that need to be listed on top 
    94         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 items 
    98         query['getAlwaysOnTop']=0 
    99         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+localNoTop 
    103          
    104         if maxResults==0: 
    105             return results 
    106         elif maxResults==None: 
    107             return results[:self.simpleblog_tool.getMaxItemsInPortlet()] 
    108         else: 
    109             return results[:maxResults]                
    110112     
    111113    def synContentValues(self):