--- ECHO_content/ECHO_collection.py 2008/12/04 21:27:00 1.299
+++ ECHO_content/ECHO_collection.py 2009/04/21 08:12:58 1.306
@@ -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"""
@@ -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"""
@@ -2052,8 +2066,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 +2075,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 +2169,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 +2208,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 +2564,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 +2590,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'):