Changeset 476:1d93a8cb2d8f in documentViewer for documentViewer.py


Ignore:
Timestamp:
Aug 9, 2011, 6:27:41 PM (13 years ago)
Author:
casties
Branch:
elementtree
Message:

more new template stuff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • documentViewer.py

    r475 r476  
    583583           
    584584        # odd pages are left
    585         docinfo['oddPage'] = texttool.get('odd-scan-orientation', 'left')
     585        docinfo['oddPage'] = texttool.get('odd-scan-position', 'left')
    586586           
    587587        # number of title page (0: not defined)
     
    696696        grpsize = cols * rows
    697697        pageinfo['groupsize'] = grpsize
    698         # what does this do?
     698        # is start is empty use one around current
    699699        start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1)))
    700700        # int(current / grpsize) * grpsize +1))
    701701        pageinfo['start'] = start
    702         pageinfo['end'] = start + grpsize
    703702        pn = self.REQUEST.get('pn','1')
    704703        pageinfo['pn'] = pn
     
    711710                np = int(docinfo.get('numPages', 0))
    712711               
    713         pageinfo['end'] = min(pageinfo['end'], np)
    714712        pageinfo['numgroups'] = int(np / grpsize)
    715713        if np % grpsize > 0:
    716714            pageinfo['numgroups'] += 1
     715
     716        pageFlowLtr = docinfo.get('pageFlow', 'ltr') != 'rtl'
     717        oddScanLeft = docinfo.get('oddPage', 'left') != 'right'
     718        # add zeroth page for two columns
     719        pageZero = (cols == 2 and (pageFlowLtr != oddScanLeft))
     720        pageinfo['pageZero'] = pageZero
     721        pageinfo['pageList'] = self.getPageList(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np)
    717722               
    718723        pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg')
     
    721726        pageinfo['querySearch'] =self.REQUEST.get('querySearch', 'fulltext')
    722727        pageinfo['highlightQuery'] = self.REQUEST.get('highlightQuery','')
    723         pageinfo['tocPageSize'] = self.REQUEST.get('tocPageSize', '30')
    724         pageinfo['queryPageSize'] =self.REQUEST.get('queryPageSize', '10')
    725         pageinfo['tocPN'] = self.REQUEST.get('tocPN', '1')
    726         # WTF?:
    727         toc = int(pageinfo['tocPN'])
    728         pageinfo['textPages'] = int(toc)
    729        
    730         # What does this do?
     728        pageinfo['tocPageSize'] = getInt(self.REQUEST.get('tocPageSize', 30))
     729        pageinfo['queryPageSize'] = getInt(self.REQUEST.get('queryPageSize', 10))
     730        pageinfo['tocPN'] = getInt(self.REQUEST.get('tocPN', '1'))
     731        pageinfo['searchPN'] = getInt(self.REQUEST.get('searchPN','1'))
     732       
     733        # limit tocPN
    731734        if 'tocSize_%s'%tocMode in docinfo:
    732             tocSize = int(docinfo['tocSize_%s'%tocMode])
    733             tocPageSize = int(pageinfo['tocPageSize'])
     735            tocSize = docinfo['tocSize_%s'%tocMode]
     736            tocPageSize = pageinfo['tocPageSize']
    734737            # cached toc           
    735738            if tocSize%tocPageSize>0:
     
    738741                tocPages=tocSize/tocPageSize
    739742               
    740             pageinfo['tocPN'] = min(tocPages,toc)
    741            
    742         pageinfo['searchPN'] =self.REQUEST.get('searchPN','1')
     743            pageinfo['tocPN'] = min(tocPages,pageinfo['tocPN'])
     744           
    743745        return pageinfo
    744746
     747
     748    def getPageList(self, start=None, rows=None, cols=None, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0):
     749        """returns array of page informations for one screenfull of thumbnails"""
     750        if maxIdx == 0:
     751            maxIdx = start + rows * cols
     752
     753        pages = []
     754        if pageZero and start == 1:
     755            # correct beginning
     756            idx = 0
     757        else:
     758            idx = start
     759           
     760        for r in range(rows):
     761            row = []
     762            for c in range(cols):
     763                if idx < minIdx or idx > maxIdx:
     764                    page = {'idx':None}
     765                else:
     766                    page = {'idx':idx}
     767                   
     768                idx += 1
     769                if pageFlowLtr:
     770                    row.append(page)
     771                else:
     772                    row.insert(0, page)
     773               
     774            pages.append(row)
     775           
     776        logging.debug("getPageList returns=%s"%(pages))
     777        return pages
     778       
    745779
    746780    security.declareProtected('View management screens','changeDocumentViewerForm')   
Note: See TracChangeset for help on using the changeset viewer.