version 1.238.2.13, 2011/08/12 14:41:39
|
version 1.238.2.14, 2011/08/16 16:27:08
|
Line 479 class MpdlXmlTextServer(SimpleItem):
|
Line 479 class MpdlXmlTextServer(SimpleItem):
|
|
|
return docinfo |
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""" |
"""returns single page from the table of contents""" |
logging.debug("getTocPage mode=%s, pn=%s"%(mode,pn)) |
logging.debug("getTocPage mode=%s, pn=%s"%(mode,pn)) |
if mode == "text": |
if mode == "text": |
Line 494 class MpdlXmlTextServer(SimpleItem):
|
Line 494 class MpdlXmlTextServer(SimpleItem):
|
tocxml = docinfo.get('tocXML_%s'%mode, None) |
tocxml = docinfo.get('tocXML_%s'%mode, None) |
if not tocxml: |
if not tocxml: |
logging.error("getTocPage: unable to find tocXML") |
logging.error("getTocPage: unable to find tocXML") |
return "No ToC" |
return "Error: no table of contents!" |
|
|
pagesize = pageinfo['tocPageSize'] |
if size is None: |
tocPN = pageinfo['tocPN'] |
size = pageinfo.get('tocPageSize', 30) |
if not pn: |
|
pn = tocPN |
if start is None: |
|
start = (pn - 1) * size |
|
|
fulltoc = ET.fromstring(tocxml) |
fulltoc = ET.fromstring(tocxml) |
|
|
if fulltoc: |
if fulltoc: |
# paginate |
# paginate |
start = (pn - 1) * pagesize * 2 |
first = (start - 1) * 2 |
len = pagesize * 2 |
len = size * 2 |
del fulltoc[:start] |
del fulltoc[:first] |
del fulltoc[len:] |
del fulltoc[len:] |
tocdivs = fulltoc |
tocdivs = fulltoc |
|
|
Line 525 class MpdlXmlTextServer(SimpleItem):
|
Line 526 class MpdlXmlTextServer(SimpleItem):
|
else: |
else: |
logging.warning("getTocPage: Problem with link=%s"%href) |
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): |
def manage_changeMpdlXmlTextServer(self,title="",serverUrl="http://mpdl-text.mpiwg-berlin.mpg.de/mpdl/interface/",timeout=40,RESPONSE=None): |