--- ECHO_content/ECHO_collection.py 2004/03/30 19:12:22 1.23
+++ ECHO_content/ECHO_collection.py 2004/04/04 14:56:05 1.27
@@ -96,7 +96,7 @@ def readMetadata(url):
return metadict,""
-def setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordstrs,viewClassification=""):
+def setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordstrs,viewClassification=""):
"""Allegemeine Informationen zu einer ECHO Collection"""
@@ -105,7 +105,7 @@ def setECHO_collectionInformation(self,t
self.label = label
self.title=title
self.description=description
- self.content_type=content_type
+ self.contentType=contentType
self.responsible=responsible
self.credits=toList(credits)
self.weight=weight
@@ -193,7 +193,7 @@ class ECHO_resource(Folder):
else:
return []
- def __init__(self,id,link,metalink,title,label,description,content_type,responsible,credits,weight,coords):
+ def __init__(self,id,link,metalink,title,label,description,contentType,responsible,credits,weight,coords):
self.id = id
"""Festlegen der ID"""
@@ -205,7 +205,7 @@ class ECHO_resource(Folder):
self.weight=weight
self.credits=toList(credits)
self.description=description
- self.content_type=content_type
+ self.contentType=contentType
self.responsible=responsible
if coords:
@@ -236,14 +236,14 @@ class ECHO_resource(Folder):
return pt()
- def changeECHO_resource(self,metalink,link,title,label,description,content_type,responsible,weight,viewClassification="",coords=None,credits=None,RESPONSE=None):
+ def changeECHO_resource(self,metalink,link,title,label,description,contentType,responsible,weight,viewClassification="",coords=None,credits=None,RESPONSE=None):
"""Änderung der Properties"""
coordsnew=[ string.split(x,",") for x in coords]
- setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordsnew)
+ setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew)
self.coords=coordsnew[0:]
self.link=link
@@ -328,10 +328,10 @@ def manage_addECHO_resourceForm(self):
-def manage_addECHO_resource(self,id,title,label,description,content_type,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):
+def manage_addECHO_resource(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):
"""addaresource"""
- newObj=ECHO_resource(id,link,metalink,title,label,description,content_type,responsible,credits,weight,coords)
+ newObj=ECHO_resource(id,link,metalink,title,label,description,contentType,responsible,credits,weight,coords)
self._setObject(id,newObj)
@@ -345,7 +345,7 @@ class ECHO_externalLink(Folder):
meta_type='ECHO_externalLink'
- def __init__(self,id,link,title,label,description,content_type,responsible,credits,weight,coords):
+ def __init__(self,id,link,title,label,description,contentType,responsible,credits,weight,coords):
self.id = id
"""Festlegen der ID"""
@@ -356,7 +356,7 @@ class ECHO_externalLink(Folder):
self.title=title
self.weight=weight
self.description=description
- self.content_type=content_type
+ self.contentType=contentType
self.responsible=responsible
coordsnew=[ string.split(x,",") for x in coords]
self.coords=coordsnew
@@ -375,12 +375,12 @@ class ECHO_externalLink(Folder):
return pt()
- def changeECHO_externalLink(self,link,title,label,description,content_type,responsible,weight,coords=None,credits=None,RESPONSE=None):
+ def changeECHO_externalLink(self,link,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None):
"""Änderung der Properties"""
coordsnew=[ string.split(x,",") for x in coords]
- setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coords)
+ setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coords)
self.coords=coordsnew[0:]
self.link=link
@@ -410,22 +410,57 @@ def manage_addECHO_externalLinkForm(self
return pt()
-def manage_addECHO_externalLink(self,id,title,label,description,content_type,responsible,link,weight,coords=None,credits=None,RESPONSE=None):
+def manage_addECHO_externalLink(self,id,title,label,description,contentType,responsible,link,weight,coords=None,credits=None,RESPONSE=None):
"""Add an external Link"""
- newObj=ECHO_externalLink(id,link,title,label,description,content_type,responsible,credits,weight,coords)
+ newObj=ECHO_externalLink(id,link,title,label,description,contentType,responsible,credits,weight,coords)
self._setObject(id,newObj)
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
-
+
+
class ECHO_collection(Folder, Persistent, Implicit):
"""ECHO Collection"""
security=ClassSecurityInfo()
meta_type='ECHO_collection'
+ def getImageTag(self):
+ """GetTag"""
+ try:
+ return self.imageTag
+ except:
+ return ""
+
+ def addResource(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None):
+ """SSS"""
+ try:
+ manage_addECHO_resource(self,id,title,label,description,contentType,responsible,link,metalink,weight,credits=None,coords=None,RESPONSE=None)
+ return "done"
+ except:
+ return None
+
+ def getCollectionTreeXML(self):
+ """Tree as XML"""
+
+ def getCollection(object,depth=0):
+ depth+=1
+ collections=""
+ for entry in object.__dict__.keys():
+ element=getattr(object,entry)
+ try:
+ if element.meta_type=="ECHO_collection":
+ collections+=""
+ collections+=getCollection(element,depth)+"\n"
+ except:
+ """nothing"""
+ return collections
+
+
+ return ""+getCollection(self)+""
+
def createJavaScript(self):
"""CreateJava"""
ret=javaScriptMain
@@ -495,7 +530,7 @@ class ECHO_collection(Folder, Persistent
return []
- def __init__(self,id,title,label,description,content_type,responsible,credits,weight,sortfield,coords):
+ def __init__(self,id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,imageTag=""):
#print "CO",coords
self.id = id
@@ -504,9 +539,9 @@ class ECHO_collection(Folder, Persistent
self.label = label
self.title=title
self.description=description
- self.content_type=content_type
+ self.contentType=contentType
self.responsible=responsible
-
+ self.imageTag=imageTag
self.weight=weight
self.sortfield=sortfield
coordsnew=[ string.split(x,",") for x in coords]
@@ -569,13 +604,13 @@ class ECHO_collection(Folder, Persistent
security.declarePublic('changeECHO_collection')
- def changeECHO_collection(self,title,label,description,content_type,responsible,weight,credits=None,sortfield="weight",coords=None,RESPONSE=None):
+ def changeECHO_collection(self,title,label,description,contentType,responsible,weight,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag=""):
"""Änderung der Properties"""
-
+ self.imageTag=imageTag
coordsnew=[ string.split(x,",") for x in coords]
- setECHO_collectionInformation(self,title,label,description,content_type,responsible,credits,weight,coordsnew)
+ setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew)
self.coords=coordsnew[0:]
self.sortfield=sortfield
@@ -604,7 +639,7 @@ class ECHO_collection(Folder, Persistent
pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_content_standard.zpt').__of__(self)
- pt.content_type="text/html"
+ pt.contentType="text/html"
return pt()
def getCredits(self):
@@ -684,11 +719,11 @@ def manage_addECHO_collectionForm(self):
return pt()
-def manage_addECHO_collection(self,id,title,label,description,content_type,responsible,weight,sortfield,coords="",credits=None,RESPONSE=None):
+def manage_addECHO_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",credits=None,RESPONSE=None,imageTag=""):
"""add a echo collection"""
- newObj=ECHO_collection(id,title,label,description,content_type,responsible,credits,weight,sortfield,coords)
+ newObj=ECHO_collection(id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,imageTag)
self._setObject(id,newObj)
@@ -700,7 +735,25 @@ class ECHO_root(Folder,Persistent,Implic
meta_type="ECHO_root"
+ def patchContentType(self,obj=None):
+ """austauschen content_type with contentType (patch bei umstieg von alter Version)"""
+
+
+ if not obj:
+ obj = self
+
+ entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_resource','ECHO_collection,ECHO_externalLink'])
+
+ for entry in entries:
+
+ entry[1].contentType == entry[1].content_type
+
+ if entry[1].meta_type == 'ECHO_collection':
+ entry[1].patchContentType(entry[1])
+
+ return "Rerenderd all links to resources in: "+self.title
+
def ECHO_newViewerLink(self,obj=None):
"""change links (:86 faellt weg)"""
@@ -792,23 +845,22 @@ class ECHO_root(Folder,Persistent,Implic
def getPartners(self):
"""Get list of Partners. Presently only from a subfolder partners"""
- partnerTypes=['ECHO_partner']
- ids=[]
- try:
- for entry in self.partners.__dict__.keys():
- object=getattr(self.partners,entry)
+
+ return [ item[1] for item in self.partners.ZopeFind(self.partners,obj_metatypes=['ECHO_partner'])]
- try:
- if object.meta_type in partnerTypes:
- ids.append(object)
-
- except:
- """nothing"""
- except:
- ids=[] # no partners
- return ids
+
+
+ def getPartnersXML(self):
+ """partner liste als xml"""
+ partners=self.getPartners()
+ ret=""
+ for partner in partners:
+ ret+="""\n"""%(partner.getId(),partner.title)
+
+ return ret+"\n"
+
def getCollectionTree(self):
"""get the collection tree (list of triples (parent,child, depth)"""
@@ -854,15 +906,15 @@ class ECHO_partner(Image,Persistent):
meta_type="ECHO_partner"
- def __init__(self, id, title,url, file, content_type='', precondition=''):
+ def __init__(self, id, title,url, file, contentType='', precondition=''):
self.__name__=id
self.title=title
self.url=url
self.precondition=precondition
data, size = self._read_data(file)
- content_type=self._get_content_type(file, data, id, content_type)
- self.update_data(data, content_type, size)
+ contentType=self._get_contentType(file, data, id, contentType)
+ self.update_data(data, contentType, size)
manage_options = Image.manage_options+(
{'label':'Partner Information','action':'ECHO_partner_config'},
@@ -889,7 +941,7 @@ manage_addECHO_partnerForm=DTMLFile('dtm
-def manage_addECHO_partner(self, id, file,url, title='', precondition='', content_type='',
+def manage_addECHO_partner(self, id, file,url, title='', precondition='', contentType='',
REQUEST=None):
"""
Add a new ECHO_partner object.
@@ -900,7 +952,7 @@ def manage_addECHO_partner(self, id, fil
id=str(id)
title=str(title)
- content_type=str(content_type)
+ contentType=str(contentType)
precondition=str(precondition)
id, title = OFS.Image.cookId(id, title, file)
@@ -908,14 +960,14 @@ def manage_addECHO_partner(self, id, fil
self=self.this()
# First, we create the image without data:
- self._setObject(id, ECHO_partner(id,title,url,'',content_type, precondition))
+ self._setObject(id, ECHO_partner(id,title,url,'',contentType, precondition))
# Now we "upload" the data. By doing this in two steps, we
# can use a database trick to make the upload more efficient.
if file:
self._getOb(id).manage_upload(file)
- if content_type:
- self._getOb(id).content_type=content_type
+ if contentType:
+ self._getOb(id).contentType=contentType
if REQUEST is not None:
try: url=self.DestinationURL()