Mercurial > hg > documentViewer
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 |