comparison documentViewer.py @ 475:5a3ab27385ce elementtree

more new template stuff
author casties
date Fri, 05 Aug 2011 19:04:20 +0200
parents 0bc4a153863a
children 1d93a8cb2d8f
comparison
equal deleted inserted replaced
474:0bc4a153863a 475:5a3ab27385ce
274 @param viewMode: 'images': display images, 'text': display text, default is 'auto' 274 @param viewMode: 'images': display images, 'text': display text, default is 'auto'
275 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text' 275 @param viewType: sub-type of viewMode, e.g. 'dict' for viewMode='text'
276 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none) 276 @param tocMode: type of 'table of contents' for navigation (thumbs, text, figures, none)
277 """ 277 """
278 278
279 logging.debug("documentViewer (index) mode: %s url:%s start:%s pn:%s"%(mode,url,start,pn)) 279 logging.debug("documentViewer(index_html) mode=%s url=%s viewMode=%s viewType=%s start=%s pn=%s"%(mode,url,viewMode,viewType,start,pn))
280 280
281 if not hasattr(self, 'template'): 281 if not hasattr(self, 'template'):
282 # this won't work 282 # this won't work
283 logging.error("template folder missing!") 283 logging.error("template folder missing!")
284 return "ERROR: template folder missing!" 284 return "ERROR: template folder missing!"
303 elif viewMode == "text_dict": 303 elif viewMode == "text_dict":
304 # legacy fix 304 # legacy fix
305 viewMode = "text" 305 viewMode = "text"
306 viewType = "dict" 306 viewType = "dict"
307 307
308 308 # stringify viewType
309 if isinstance(viewType, list):
310 viewType = ','.join([t for t in viewType if t])
311
309 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) 312 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode)
310 313
311 # get template /template/viewer_main 314 # get template /template/viewer_$viewMode
312 pt = getattr(self.template, 'viewer_main') 315 pt = getattr(self.template, 'viewer_%s'%viewMode, None)
316 if pt is None:
317 logging.error("No template for viewMode=%s!"%viewMode)
318 # TODO: error page?
319 return "No template for viewMode=%s!"%viewMode
320
313 # and execute with parameters 321 # and execute with parameters
314 return pt(docinfo=docinfo, pageinfo=pageinfo) 322 return pt(docinfo=docinfo, pageinfo=pageinfo)
315 323
316 def generateMarks(self,mk): 324 def generateMarks(self,mk):
317 ret="" 325 ret=""
378 386
379 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): 387 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'):
380 """returns URL to documentviewer with parameter param set to val or from dict params""" 388 """returns URL to documentviewer with parameter param set to val or from dict params"""
381 urlParams = self.getParams(param=param, val=val, params=params) 389 urlParams = self.getParams(param=param, val=val, params=params)
382 # quote values and assemble into query string (not escaping '/') 390 # quote values and assemble into query string (not escaping '/')
383 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(v,'/')) for (k, v) in urlParams.items()]) 391 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(unicode(v),'/')) for (k, v) in urlParams.items()])
384 if baseUrl is None: 392 if baseUrl is None:
385 baseUrl = self.getDocumentViewerURL() 393 baseUrl = self.getDocumentViewerURL()
386 394
387 url = "%s?%s"%(baseUrl, ps) 395 url = "%s?%s"%(baseUrl, ps)
388 return url 396 return url