--- ECHO_content/ECHO_collection.py 2005/12/04 09:10:55 1.259 +++ ECHO_content/ECHO_collection.py 2005/12/13 12:45:21 1.260 @@ -1187,7 +1187,7 @@ class ECHO_resource(CatalogAware,Folder, self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)] self.OSAS_meta[self.getFieldTag(tags,field)]=self.REQUEST.form['OSAS_%s'%self.getFieldTag(tags,field)] except: - """nothing""" + zLOG.LOG("ECHO_collection (changeECHO_resource_metadata)",zLOG.ERROR,"%s (%s)"%sys.exc_info()[0:2]) ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML')).read() @@ -1199,14 +1199,22 @@ class ECHO_resource(CatalogAware,Folder, def getMDValueSimpleSearchField(self): """returns value for simple search""" - return " ".join([self.getMDValue('title',generic="yes"), + + try: + return " ".join([self.getMDValue('title',generic="yes"), self.getMDValue('author',generic="yes"), - self.getMDValue('year',generic="yes"),self.title]) + self.getMDValue('year',generic="yes"),self.getTitle()]) + except: + + #zLOG.LOG(" ECHO_collection(getMDSimpleSearchField)",zLOG.INFO," ".join([self.getMDValue('title',generic="yes"), + # self.getMDValue('author',generic="yes"), + # self.getMDValue('year',generic="yes"),''])) + return "" def getMDValue(self,fieldNameTest,empty=None,generic=None): """get md values""" #TODO: cache mappinghash - + fieldName=None if generic: if self.contentType: @@ -1234,15 +1242,21 @@ class ECHO_resource(CatalogAware,Folder, if not empty: #FIXME: warum gibt es manchmal kein metadatahas try: - return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) + + ret =self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) except: zLOG.LOG("ECHO (line 1069)",zLOG.ERROR,"no md hash for %s"%self.getId()) return "" else: - - return self.metaDataHash.get(fieldNameTest,empty) - + + ret= self.metaDataHash.get(fieldNameTest,empty) + + if type(ret) is StringType: + return ret.decode('utf-8') + else: + return ret + getFieldValue=getMDValue #depricated def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None): @@ -1366,7 +1380,6 @@ class ECHO_resource(CatalogAware,Folder, if not hasattr(self,'metaDataHash'): setattr(self,'metaDataHash',{}) self.metaDataHash[field]=value[0:] - def copySearchFields(self): """copys metadatafields to the object""" @@ -1480,7 +1493,7 @@ class ECHO_resource(CatalogAware,Folder, def ECHO_getResourceMD(self,template="yes",back=None,overwrite="no"): """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource""" (metadict, error)=readMetadata(self.metalink) - + if back: self.REQUEST.SESSION['back']=back @@ -1496,17 +1509,17 @@ class ECHO_resource(CatalogAware,Folder, return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')() - self.REQUEST.SESSION['metadict']=metadict - + #self.REQUEST.SESSION['metadict']=metadict - self.REQUEST.SESSION['diffs']=checkDiffs(self,self.REQUEST.SESSION['metadict']) + self.REQUEST.SESSION['diffs']=checkDiffs(self,metadict) - if template=="yes": + #pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/ECHO_resourceMD.zpt'),metadict=metadict).__of__(self) pt=zptFile(self, 'zpt/ECHO_resourceMD.zpt') - return pt() + + return pt(metadict=metadict) @@ -1616,16 +1629,12 @@ class ECHO_externalLink(Folder,ECHO_basi """template fuer content""" ret= ECHO_basis.content_html(self,'externalLink') + if type(ret) is StringType: + return ret.decode('utf-8') + else: + return ret - try: - return ret.encode('utf-8') - except: - try: - return ret.decode('latin-1') - except: - - return ret def __init__(self,id,link,title,label,description,contentType,responsible,credits,weight,coords): @@ -1787,6 +1796,7 @@ def manage_addECHO_link(self,id,title,la class ECHO_collection(CatalogAware, Folder, Persistent, Implicit, Cacheable,ECHO_basis): """ECHO Collection""" + management_page_charset="utf-8" security=ClassSecurityInfo() meta_type='ECHO_collection' default_catalog='resourceCatalog' @@ -2471,15 +2481,11 @@ class ECHO_collection(CatalogAware, Fold #print "NN",argv ret = ECHO_basis.content_html(self,'collection') - try: - return ret.encode('utf-8') - except: - - try: - return ret.decode('latin-1') - except: - - return ret + if type(ret) is StringType: + return ret.decode('utf-8') + else: + return ret + def getCredits(self): """Ausgabe der credits""" @@ -2842,7 +2848,7 @@ class ECHO_root(Folder,Persistent,Implic security=ClassSecurityInfo() meta_type="ECHO_root" - + management_page_charset="utf-8" def mod_re_sub(self,pattern,replace,string): """re.sub aus mod re zur Verfuegung stellen""" @@ -3164,7 +3170,7 @@ class ECHO_root(Folder,Persistent,Implic return ret def getValueFromClass(self,field,found): - """retattribute falss existing""" + """ret attribute if existing""" try: return getattr(found,field).decode('ascii','ignore')