--- ECHO_content/ECHO_helpers.py 2006/02/03 17:59:41 1.70 +++ ECHO_content/ECHO_helpers.py 2006/07/27 15:27:34 1.77 @@ -17,6 +17,7 @@ import ECHO_collection import base64 import bz2 import xmlrpclib +import zLOG displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie'] @@ -139,7 +140,11 @@ class ECHO_basis: def getTitle(self): """title""" - lang=self.getLanguage() + if hasattr(self,'getLanguage'): + lang=self.getLanguage() + else: + lang=None + locale=None if lang and not (lang =="de"): locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) @@ -147,13 +152,20 @@ class ECHO_basis: if locale: return self.decode(locale[0][1].title) else: + try: return self.decode(self.title) - + except: + return self.title def getLabel(self): """title""" - lang=self.getLanguage() + if hasattr(self,'getLanguage'): + lang=self.getLanguage() + else: + lang=None + locale=None + if lang and not (lang=="de"): locale=self.ZopeFind(self,obj_ids=["locale_"+lang]) @@ -512,7 +524,7 @@ def readFieldFromXML(meta_url,parent,fie def urlopen(url): """urlopen mit timeout""" - socket.setdefaulttimeout(2) + socket.setdefaulttimeout(10) ret=urllib.urlopen(url) socket.setdefaulttimeout(5) return ret @@ -537,7 +549,7 @@ def checkOnlyOneInGroup(object): else: return object -def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes",search_sub=0): +def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchMD_modus='search',searchSimple=None,generic="yes",search_sub=0): def sort(x,y): return cmp(x[0],y[0]) @@ -568,8 +580,12 @@ def getSubCols(self, sortfield=None, sub flag=0 for field in searchMD.keys(): #if object.getMDValue(field,generic=generic)==searchMD[field]: - - if re.match(searchMD[field].decode('utf-8'),object.getMDValue(field,generic=generic)): + #if re.match(searchMD[field],object.getMDValue(field,generic=generic)): + if searchMD_modus=='match': + searchResult=re.match(searchMD[field],object.getMDValue(field,generic=generic)) + else: + searchResult=re.search(searchMD[field],object.getMDValue(field,generic=generic)) + if searchResult: flag=1 else: flag=0 @@ -839,7 +855,7 @@ class BrowserCheck: def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None,digiliburlprefix=None): """Einlesen der Metadaten und und erstellen des geaenderten XML file""" - + def updateTextToolNode(tag,value): metanode=dom.getElementsByTagName('texttool')[0] @@ -856,6 +872,7 @@ def writeMetadata(url,metadict,project=N node.appendChild(nodetext) metanode.appendChild(node) + if xmlfrag: geturl=""" @@ -873,12 +890,14 @@ def writeMetadata(url,metadict,project=N except: - return (None,"XCannot open: "+url) + zLOG.LOG("ECHO writeMetadata",zLOG.ERROR,"XCannot open: "+url) + return (None,"XCannot open: "+url) try: dom=xml.dom.minidom.parseString(geturl) except: - return (None,"Cannot parse: "+url+"
"+geturl) + zLOG.LOG("ECHO writeMetadata",zLOG.ERROR,"Cannot parse: "+url+"
"+geturl) + return (None,"Cannot parse: "+url+"
"+geturl) @@ -890,15 +909,15 @@ def writeMetadata(url,metadict,project=N metanode=metanodes[0] for metaData in metadict.keys(): - - try: + if metaData: + try: nodeOld=metanode.getElementsByTagName(metaData) - except: + except: nodeOld=None - if nodeOld: + if nodeOld: metanode.removeChild(nodeOld[0]).unlink() - else: + else: # try also old writing rule - instead of _: try: nodeOld=metanode.getElementsByTagName(re.sub('_','-',metaData)) @@ -908,16 +927,21 @@ def writeMetadata(url,metadict,project=N if nodeOld: metanode.removeChild(nodeOld[0]).unlink() - metanodeneu=dom.createElement(metaData) - metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8')) - #try: - #metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8")) - #except: - #metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8')) - metanodeneu.appendChild(metanodetext) - metanode.appendChild(metanodeneu) + metanodeneu=dom.createElement(metaData) + try: + metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8')) + except: + metanodetext=dom.createTextNode(metadict[metaData]) + #try: + #metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8")) + #except: + #metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8')) + metanodeneu.appendChild(metanodetext) + metanode.appendChild(metanodeneu) + + @@ -939,10 +963,13 @@ def writeMetadata(url,metadict,project=N if digiliburlprefix: updateTextToolNode('digiliburlprefix',digiliburlprefix) - - try: + + try: + return dom.toxml(encoding='utf-8').encode('utf-8') except: + + return dom.toxml(encoding='utf-8') def readMetadata(url):