Changeset 595

Show
Ignore:
Timestamp:
10/23/06 12:52:17
Author:
chervol
Message:

crosspost redundant bits fixed

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • SimpleBlog/branches/plone-2.5/content/blog.py

    r594 r595  
    266266        return [f for f in self.getBRefs('AppearsIn') if self.portal_membership.checkPermission('View', f)] 
    267267 
    268     def getEntries(self, category=None, maxResults=None, fromHere=0, filterState=1, sort=1, join=0, addCrossPostInfo=0, **kwargs): 
     268    def getEntries(self, category=None, maxResults=None, fromHere=0, filterState=1, sort=1, join=0, addCrossPostInfo=0, skipOnTop=0, **kwargs): 
    269269        """ Return all the contained published entries, real objects, not the brains """ 
    270270        # see simpleblog_tool.searchForEntries for API description 
     
    273273        if category!=None: 
    274274            query['EntryCategory']=category 
    275         query['getAlwaysOnTop']=1 
    276275        if filterState: 
    277276            query['review_state']=publishedState 
    278277        if maxResults: 
    279278            query['sort_limit'] = maxResults 
    280         # first the items that need to be listed on top 
    281         localOnTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective') 
    282         localOnTop = [r.getObject() for r in localOnTop ] 
    283         # then the other items 
    284         query['getAlwaysOnTop']=0 
    285         localNoTop = self.portal_catalog.searchResults(query, meta_type='BlogEntry', path={'query':self.simpleblog_tool.getObjectPath(self),'level':0}, sort_order='reverse', sort_on='effective') 
     279        query['path'] = {'query':self.simpleblog_tool.getObjectPath(self),'level':0} 
     280        query['sort_order'] = 'reverse' 
     281        query['sort_on'] = 'effective' 
     282        query['meta_type'] = 'BlogEntry' 
     283        if not skipOnTop: 
     284            query['getAlwaysOnTop']=1 
     285            # first the items that need to be listed on top 
     286            localOnTop = self.portal_catalog.searchResults(query) 
     287            localOnTop = [r.getObject() for r in localOnTop ] 
     288            # then the other items 
     289            query['getAlwaysOnTop']=0 
     290        else: 
     291            localOnTop = [] 
     292        localNoTop = self.portal_catalog.searchResults(query) 
    286293        localNoTop= [r.getObject() for r in localNoTop] 
    287294 
    288         # foreign items 
    289         #if self.getAllowCrossPosting(): 
    290         #    foreignEntries = self.getForeignEntries() 
    291         #else: 
    292         #    foreignEntries=[] 
    293  
    294         # filter out the always on top entries 
    295         #foreignOnTop = [e for e in foreignEntries if e.getAlwaysOnTop()] 
    296         #foreignNoTop = [e for e in foreignEntries if not e.getAlwaysOnTop()] 
    297         # so, now we have: 
    298         # total = localOnTop + foreignOnTop + localNoTop + foreignNoTop 
    299         # and that needs to be sorted 
    300         #if addCrossPostInfo: 
    301         #    # make each object a tuple (obj, <iscrosspost>) 
    302         #    foreignOnTop = [(e,1) for e in foreignOnTop] 
    303         #    foreignNoTop = [(e,1) for e in foreignNoTop] 
    304         #    localOnTop = [(e,0) for e in localOnTop] 
    305         #    localNoTop = [(e,0) for e in localNoTop] 
    306         onTop = localOnTop #foreignOnTop + 
    307         onBottom = localNoTop #foreignNoTop + 
    308         #if sort and foreignEntries: 
    309         #    if addCrossPostInfo: 
    310         #        onTop.sort((lambda x,y:cmp(y[0].effective(), x[0].effective()))) 
    311         #        onBottom.sort((lambda x,y:cmp(y[0].effective(), x[0].effective()))) 
    312         #    else: 
    313         #        onTop.sort((lambda x,y:cmp(y.effective(), x.effective()))) 
    314         #        onBottom.sort((lambda x,y:cmp(y.effective(), x.effective()))) 
     295        onTop = localOnTop 
     296        onBottom = localNoTop 
    315297        if join: 
    316298            results = onTop+onBottom 
  • SimpleBlog/branches/plone-2.5/skins/SimpleBlog/simpleblog_view.pt

    r594 r595  
    3737        <div tal:condition="results" tal:define="batch python:Batch(results, b_size, int(b_start), orphan=1);"> 
    3838            <tal:block tal:repeat="entry batch"><tal:entry  
    39                        tal:define="obj python:entry[0]; 
    40                                        isCrossPost python:entry[1];"><div metal:use-macro="here/SimpleBlog_macros/macros/?displayMode"/> 
     39                       tal:define="obj python:entry;"><div metal:use-macro="here/SimpleBlog_macros/macros/?displayMode"/> 
    4140                <br/> 
    4241                </tal:entry></tal:block>