Mercurial > hg > documentViewer
diff MpdlXmlTextServer.py @ 482:7ca8ac7db06e elementtree
more new template stuff. more batching methods in documentViewer.
author | casties |
---|---|
date | Tue, 16 Aug 2011 18:27:08 +0200 |
parents | cd37d6f8d5e8 |
children | 29c6d09a506c |
line wrap: on
line diff
--- a/MpdlXmlTextServer.py Tue Aug 16 12:02:00 2011 +0200 +++ b/MpdlXmlTextServer.py Tue Aug 16 18:27:08 2011 +0200 @@ -479,7 +479,7 @@ return docinfo - def getTocPage(self, mode="text", pn=0, pageinfo=None, docinfo=None): + def getTocPage(self, mode="text", pn=None, start=None, size=None, pageinfo=None, docinfo=None): """returns single page from the table of contents""" logging.debug("getTocPage mode=%s, pn=%s"%(mode,pn)) if mode == "text": @@ -494,20 +494,21 @@ tocxml = docinfo.get('tocXML_%s'%mode, None) if not tocxml: logging.error("getTocPage: unable to find tocXML") - return "No ToC" + return "Error: no table of contents!" - pagesize = pageinfo['tocPageSize'] - tocPN = pageinfo['tocPN'] - if not pn: - pn = tocPN + if size is None: + size = pageinfo.get('tocPageSize', 30) + + if start is None: + start = (pn - 1) * size fulltoc = ET.fromstring(tocxml) if fulltoc: # paginate - start = (pn - 1) * pagesize * 2 - len = pagesize * 2 - del fulltoc[:start] + first = (start - 1) * 2 + len = size * 2 + del fulltoc[:first] del fulltoc[len:] tocdivs = fulltoc @@ -525,7 +526,17 @@ else: logging.warning("getTocPage: Problem with link=%s"%href) - return serialize(tocdivs) + # fix two-divs-per-row with containing div + newtoc = ET.Element('div', {'class':'queryResultPage'}) + for (d1,d2) in zip(tocdivs[::2],tocdivs[1::2]): + e = ET.Element('div',{'class':'tocline'}) + e.append(d1) + e.append(d2) + newtoc.append(e) + + return serialize(newtoc) + + return "ERROR: no table of contents!" def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None):