comparison documentViewer.py @ 478:cd37d6f8d5e8 elementtree

more cleanup
author casties
date Fri, 12 Aug 2011 16:41:39 +0200
parents 17f0290b2327
children fe5b0e4ac5f2
comparison
equal deleted inserted replaced
477:17f0290b2327 478:cd37d6f8d5e8
207 207
208 def getAllGisPlaces(self, **args): 208 def getAllGisPlaces(self, **args):
209 """get all gis places """ 209 """get all gis places """
210 return self.template.fulltextclient.getAllGisPlaces(**args) 210 return self.template.fulltextclient.getAllGisPlaces(**args)
211 211
212 def getTranslate(self, **args): 212 def getWordInfo(self, **args):
213 """get translate""" 213 """get translate"""
214 return self.template.fulltextclient.getTranslate(**args) 214 return self.template.fulltextclient.getWordInfo(**args)
215 215
216 def getLemma(self, **args): 216 def getLemma(self, **args):
217 """get lemma""" 217 """get lemma"""
218 return self.template.fulltextclient.getLemma(**args) 218 return self.template.fulltextclient.getLemma(**args)
219 219
308 viewMode = "text" 308 viewMode = "text"
309 viewType = "dict" 309 viewType = "dict"
310 310
311 # stringify viewType 311 # stringify viewType
312 if isinstance(viewType, list): 312 if isinstance(viewType, list):
313 logging.debug("index_html: viewType is list:%s"%viewType)
313 viewType = ','.join([t for t in viewType if t]) 314 viewType = ','.join([t for t in viewType if t])
314 315
315 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) 316 pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode)
316 317
317 # get template /template/viewer_$viewMode 318 # get template /template/viewer_$viewMode
356 if idx == selected: 357 if idx == selected:
357 return style + 'sel' 358 return style + 'sel'
358 else: 359 else:
359 return style 360 return style
360 361
361 def getParams(self, param=None, val=None, params=None): 362 def getParams(self, param=None, val=None, params=None, duplicates=None):
362 """returns dict with URL parameters. 363 """returns dict with URL parameters.
363 364
364 Takes URL parameters and additionally param=val or dict params. 365 Takes URL parameters and additionally param=val or dict params.
365 Deletes key if value is None.""" 366 Deletes key if value is None."""
366 # copy existing request params 367 # copy existing request params
373 else: 374 else:
374 newParams[param] = str(val) 375 newParams[param] = str(val)
375 376
376 # change more params 377 # change more params
377 if params is not None: 378 if params is not None:
378 for k in params.keys(): 379 for (k, v) in params.items():
379 v = params[k]
380 if v is None: 380 if v is None:
381 # val=None removes param 381 # val=None removes param
382 if newParams.has_key(k): 382 if newParams.has_key(k):
383 del newParams[k] 383 del newParams[k]
384 384
385 else: 385 else:
386 newParams[k] = v 386 newParams[k] = v
387 387
388 if duplicates:
389 # eliminate lists (coming from duplicate keys)
390 for (k,v) in newParams.items():
391 if isinstance(v, list):
392 if duplicates == 'comma':
393 # make comma-separated list of non-empty entries
394 newParams[k] = ','.join([t for t in v if t])
395 elif duplicates == 'first':
396 # take first non-empty entry
397 newParams[k] = [t for t in v if t][0]
398
388 return newParams 399 return newParams
389 400
390 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): 401 def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&', duplicates='comma'):
391 """returns URL to documentviewer with parameter param set to val or from dict params""" 402 """returns URL to documentviewer with parameter param set to val or from dict params"""
392 urlParams = self.getParams(param=param, val=val, params=params) 403 urlParams = self.getParams(param=param, val=val, params=params, duplicates=duplicates)
393 # quote values and assemble into query string (not escaping '/') 404 # quote values and assemble into query string (not escaping '/')
394 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(unicode(v),'/')) for (k, v) in urlParams.items()]) 405 ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(unicode(v),'/')) for (k, v) in urlParams.items()])
395 if baseUrl is None: 406 if baseUrl is None:
396 baseUrl = self.getDocumentViewerURL() 407 baseUrl = self.getDocumentViewerURL()
397 408
398 url = "%s?%s"%(baseUrl, ps) 409 url = "%s?%s"%(baseUrl, ps)
399 return url 410 return url
400 411
401 def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None): 412 def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None, duplicates='comma'):
402 """link to documentviewer with parameter param set to val""" 413 """link to documentviewer with parameter param set to val"""
403 return self.getLink(param, val, params, baseUrl, '&') 414 return self.getLink(param=param, val=val, params=params, baseUrl=baseUrl, paramSep='&', duplicates=duplicates)
404 415
405 416
406 def getInfo_xml(self,url,mode): 417 def getInfo_xml(self,url,mode):
407 """returns info about the document as XML""" 418 """returns info about the document as XML"""
408 if not self.digilibBaseUrl: 419 if not self.digilibBaseUrl:
684 docinfo['title']=getText(dom.find(".//title")) 695 docinfo['title']=getText(dom.find(".//title"))
685 docinfo['date']=getText(dom.find(".//date")) 696 docinfo['date']=getText(dom.find(".//date"))
686 return docinfo 697 return docinfo
687 698
688 699
689 def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None): 700 def getPageinfo(self, current=None, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None):
690 """returns pageinfo with the given parameters""" 701 """returns pageinfo with the given parameters"""
702 logging.debug("getPageInfo(current=%s, start=%s, rows=%s, cols=%s, viewMode=%s, viewType=%s, tocMode=%s)"%(current,start,rows,cols,viewMode,viewType,tocMode))
691 pageinfo = {} 703 pageinfo = {}
692 pageinfo['viewMode'] = viewMode 704 pageinfo['viewMode'] = viewMode
693 pageinfo['viewType'] = viewType 705 pageinfo['viewType'] = viewType
694 pageinfo['tocMode'] = tocMode 706 pageinfo['tocMode'] = tocMode
695 707