--- ECHO_content/ECHO_collection.py 2008/12/04 21:27:00 1.299 +++ ECHO_content/ECHO_collection.py 2010/02/15 19:03:28 1.308 @@ -1,4 +1,4 @@ -"""New version of the product started February, 8th. Without scientific classification, use content-type for further classification.""" +"""New version of the produc started February, 8th. Without scientific classification, use content-type for further classification.""" """Echo collection provides the classes for the ECHO content web-site. class ECHO_collection is the basis class for an ECHO collection. @@ -40,7 +40,10 @@ from Globals import Persistent, package_ from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware from Products.ZCTextIndex.ZCTextIndex import manage_addLexicon -from Products.MetaDataProvider.MetaDataClient import MetaDataClient +try: + from Products.MetaDataProvider.MetaDataClient import MetaDataClient +except: + print "no metadataclient" import urllib import urllib2 import cgi @@ -103,6 +106,7 @@ def setECHO_collectionInformation(self,t self.weight=weight import ECHO_resource +from ECHO_resource import manage_addECHO_resource class ECHO_resource(ECHO_resource.ECHO_resource): """depricated use class in ECHO_resource.py""" @@ -376,7 +380,7 @@ class ECHO_fullText(ZopePageTemplate,ECH try: dom=xml.dom.minidom.parseString(self()) except: - dom=xml.dom.minidom.parseString(self().encode('latin-1')) + dom=xml.dom.minidom.parseString(self.utf8ify(self())) pages=dom.getElementsByTagName('page') return pages[int(nr)-1].toxml() @@ -718,7 +722,7 @@ class ECHO_collection(CatalogAware, Fold ret=None for name in zf.namelist(): - fn=tempfile.mkstemp()[1] + ds,fn=tempfile.mkstemp() tf=file(fn,"w") x=zf.read(name) tf.write(x) @@ -729,8 +733,11 @@ class ECHO_collection(CatalogAware, Fold if not ret: ret="" ret+="Cannot import: %s (Already existing?)
"%name + os.close(ds) os.remove(fn) - + + zf.close() + if ret: return """%s"""%ret if RESPONSE: @@ -849,17 +856,24 @@ class ECHO_collection(CatalogAware, Fold if not urn: urn=self.absolute_url() - li="""\n""" + li="""\n""" for content in contents: + try: ret+=content[1].getRDF()+"\n" - - ret+="""\n"""%urn + except: + logging.error("getrdf: "+repr(content[1].getRDF())) + try: + ret+=self.unicodify(content[1].getRDF())+"\n" + except: + logging.error("--still cannot do it") + ret+=repr(content[1].getRDF())+"\n" + ret+="""\n"""%urn for content in contents: nurn=content[1].absolute_url() ret+=li%nurn - return ret+"" + return ret+"" @@ -1607,17 +1621,17 @@ class ECHO_group(ECHO_collection): if not urn: urn=self.absolute_url() - li="""\n""" + li="""\n""" for content in contents: - ret+=content[1].getRDF()+"\n" + ret+=self.unicodify(content[1].getRDF())+"\n" - ret+="""\n"""%urn + ret+="""\n"""%urn for content in contents: nurn=content[1].absolute_url() ret+=li%nurn - return ret+"" + return ret+"" def index_html(self): """standard page""" @@ -1801,7 +1815,8 @@ class ECHO_userFolder(UserFolder): return 1 return 0 -Globals.default__class_init__(ECHO_userFolder) +# ROC: problem with 2.12 +#Globals.default__class_init__(ECHO_userFolder) @@ -2052,8 +2067,8 @@ class ECHO_root(Folder,Persistent,Implic global key global value seq="" - if name=="RDF:Seq": - key=attrs.get('RDF:about') + if name=="rdf:Seq": + key=attrs.get('rdf:about') try: # teste ob liste x=seqs[key][0] except: @@ -2061,20 +2076,20 @@ class ECHO_root(Folder,Persistent,Implic seqs[key]=[] - elif name=="RDF:Description": - key=attrs.get('RDF:about') + elif name=="rdf:Description": + key=attrs.get('rdf:about') - elif name=="RDF:li": - name=attrs.get('RDF:resource') + elif name=="rdf:li": + name=attrs.get('rdf:resource') seqs[key].append(name) - elif name=="ECHONAVIGATION:type": + elif name=="echonavigation:type": value="type" - elif name=="ECHONAVIGATION:name": + elif name=="echonavigation:name": value="name" - elif name=="ECHONAVIGATION:linkClickable": + elif name=="echonavigation:linkClickable": value="linkClickable" def end_element(name): @@ -2155,17 +2170,17 @@ class ECHO_root(Folder,Persistent,Implic ret=getRDFDescription(self,self.absolute_url(),urn=urn) - li="""\n""" + li="""\n""" for content in contents: ret+=content[1].getRDF()+"\n" - ret+="""\n"""%urn + ret+="""\n"""%urn for content in contents: nurn=content[1].absolute_url() ret+=li%nurn - return ret+"" + return ret+"" def showContent(self,path): @@ -2194,7 +2209,11 @@ class ECHO_root(Folder,Persistent,Implic """ret attribute if existing""" try: - return getattr(found,field)#.decode('utf-8','ignore') + + return getattr(found,field)#.decode('ascii','ignore') + + + except: logging.error("can't: decode: %s"%repr(field)) logging.error(" %s %s"%(sys.exc_info()[0],sys.exc_info()[1])) @@ -2546,7 +2565,7 @@ class ECHO_root(Folder,Persistent,Implic ret="""

Resources in ECHO

""" - resources = self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) + resources = self.ZopeFind(self,obj_metatypes=['ECHO_resource','VLP_resource'],search_sub=1) ret+="""

Found %i resources

"""%len(resources) resources.sort(sortHTML) for resource in resources: @@ -2572,7 +2591,7 @@ class ECHO_root(Folder,Persistent,Implic """gebe all ressourcen aus""" ret=""" """ - for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): + for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource','VLP_resource'],search_sub=1): echo_url=resource[1].absolute_url() if hasattr(resource[1],'link'):