--- documentViewer/documentViewer.py 2011/08/10 19:18:03 1.175.2.23 +++ documentViewer/documentViewer.py 2011/08/12 14:41:39 1.175.2.24 @@ -209,9 +209,9 @@ class documentViewer(Folder): """get all gis places """ return self.template.fulltextclient.getAllGisPlaces(**args) - def getTranslate(self, **args): + def getWordInfo(self, **args): """get translate""" - return self.template.fulltextclient.getTranslate(**args) + return self.template.fulltextclient.getWordInfo(**args) def getLemma(self, **args): """get lemma""" @@ -310,6 +310,7 @@ class documentViewer(Folder): # stringify viewType if isinstance(viewType, list): + logging.debug("index_html: viewType is list:%s"%viewType) viewType = ','.join([t for t in viewType if t]) pageinfo = self.getPageinfo(start=start, current=pn, docinfo=docinfo, viewMode=viewMode, viewType=viewType, tocMode=tocMode) @@ -358,7 +359,7 @@ class documentViewer(Folder): else: return style - def getParams(self, param=None, val=None, params=None): + def getParams(self, param=None, val=None, params=None, duplicates=None): """returns dict with URL parameters. Takes URL parameters and additionally param=val or dict params. @@ -375,8 +376,7 @@ class documentViewer(Folder): # change more params if params is not None: - for k in params.keys(): - v = params[k] + for (k, v) in params.items(): if v is None: # val=None removes param if newParams.has_key(k): @@ -384,12 +384,23 @@ class documentViewer(Folder): else: newParams[k] = v - + + if duplicates: + # eliminate lists (coming from duplicate keys) + for (k,v) in newParams.items(): + if isinstance(v, list): + if duplicates == 'comma': + # make comma-separated list of non-empty entries + newParams[k] = ','.join([t for t in v if t]) + elif duplicates == 'first': + # take first non-empty entry + newParams[k] = [t for t in v if t][0] + return newParams - def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&'): + def getLink(self, param=None, val=None, params=None, baseUrl=None, paramSep='&', duplicates='comma'): """returns URL to documentviewer with parameter param set to val or from dict params""" - urlParams = self.getParams(param=param, val=val, params=params) + urlParams = self.getParams(param=param, val=val, params=params, duplicates=duplicates) # quote values and assemble into query string (not escaping '/') ps = paramSep.join(["%s=%s"%(k,urllib.quote_plus(unicode(v),'/')) for (k, v) in urlParams.items()]) if baseUrl is None: @@ -398,9 +409,9 @@ class documentViewer(Folder): url = "%s?%s"%(baseUrl, ps) return url - def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None): + def getLinkAmp(self, param=None, val=None, params=None, baseUrl=None, duplicates='comma'): """link to documentviewer with parameter param set to val""" - return self.getLink(param, val, params, baseUrl, '&') + return self.getLink(param=param, val=val, params=params, baseUrl=baseUrl, paramSep='&', duplicates=duplicates) def getInfo_xml(self,url,mode): @@ -686,8 +697,9 @@ class documentViewer(Folder): return docinfo - def getPageinfo(self, current, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None): + def getPageinfo(self, current=None, start=None, rows=None, cols=None, docinfo=None, viewMode=None, viewType=None, tocMode=None): """returns pageinfo with the given parameters""" + logging.debug("getPageInfo(current=%s, start=%s, rows=%s, cols=%s, viewMode=%s, viewType=%s, tocMode=%s)"%(current,start,rows,cols,viewMode,viewType,tocMode)) pageinfo = {} pageinfo['viewMode'] = viewMode pageinfo['viewType'] = viewType