--- 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()