--- ECHO_content/ECHO_collection.py 2004/04/05 12:07:57 1.29 +++ ECHO_content/ECHO_collection.py 2004/04/16 09:45:32 1.41 @@ -34,6 +34,7 @@ import xml.dom.minidom import urllib import xml.dom.minidom from ECHO_graphicalOverview import javaHandler,javaScriptMain +import ECHO_helpers #List of different types for the graphical linking viewer viewClassificationListMaster=['view point','area'] @@ -195,11 +196,6 @@ class ECHO_layoutTemplate(ZopePageTempla meta_type="ECHO_layoutTemplate" - manage_options=ZopePageTemplate.manage_options+( - {'label':'Set back to Standard','action':'changeECHO_layoutTemplateToStandardForm'}, - ) - - def __init__(self, id, text=None, content_type=None,EchoType=None): self.id = str(id) @@ -212,12 +208,7 @@ class ECHO_layoutTemplate(ZopePageTempla text = open(self._default_content_fn).read() self.pt_edit(text, content_type) - def changeECHO_layoutTemplateToStandardForm(self): - """change form""" - pt=PageTemplateFile('Products/ECHO_content/zpt/changeECHO_pageTemplateWeightForm.zpt').__of__(self) - return pt() - - def changeECHO_pageTemplateWeight(self,templateKind): + """change form""" @@ -237,6 +228,7 @@ def manage_addECHO_layoutTemplate(self, EchoTypes=EchoType for singleType in EchoTypes: + id = str(singleType)+"_template" if REQUEST is None: self._setObject(id, ECHO_layoutTemplate(id, text,EchoType=singleType)) @@ -273,6 +265,8 @@ class ECHO_resource(Folder): viewClassificationList=viewClassificationListMaster + getSubCols = ECHO_helpers.getSubCols + def content_html(self): """template fuer content""" return content_html(self,'resource') @@ -336,9 +330,10 @@ class ECHO_resource(Folder): 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] - + try: + coordsnew=[ string.split(x,",") for x in coords] + except: + coordsnew=[] setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew) @@ -478,7 +473,10 @@ class ECHO_externalLink(Folder): 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] + try: + coordsnew=[ string.split(x,",") for x in coords] + except: + coordsnew=[] setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coords) @@ -541,7 +539,21 @@ class ECHO_collection(Folder, Persistent return "done" except: return None - + + def getSecondaryLink(self): + """secondary link""" + try: + return self.secondaryLink + except: + return "" + + def getSecondaryLinkTitle(self): + """secondary link""" + try: + return self.secondaryLinkTitle + except: + return "" + def getCollectionTreeXML(self): """Tree as XML""" @@ -551,7 +563,7 @@ class ECHO_collection(Folder, Persistent for entry in object.__dict__.keys(): element=getattr(object,entry) try: - if element.meta_type=="ECHO_collection": + if element.meta_type in ["ECHO_collection","ECHO_group"]: collections+="" collections+=getCollection(element,depth)+"\n" except: @@ -630,7 +642,7 @@ class ECHO_collection(Folder, Persistent return [] - def __init__(self,id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,imageTag=""): + def __init__(self,id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle,secondaryLink,imageTag="",bgcolour=""): #print "CO",coords self.id = id @@ -646,7 +658,10 @@ class ECHO_collection(Folder, Persistent self.sortfield=sortfield coordsnew=[ string.split(x,",") for x in coords] self.coords=coordsnew - + self.secondaryLinkTitle=secondaryLinkTitle + self.secondaryLink=secondaryLink + self.bgcolour=bgcolour + manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_collection_config'}, @@ -704,15 +719,32 @@ class ECHO_collection(Folder, Persistent security.declarePublic('changeECHO_collection') - def changeECHO_collection(self,title,label,description,contentType,responsible,weight,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag=""): + def getBgcolour(self): + """colour""" + if hasattr(self,'bgcolour') and not (self.bgcolour==""): + return self.bgcolour + else: + return "#dddddd" + + def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour=""): """Änderung der Properties""" + self.secondaryLink=secondaryLink + self.secondaryLinkTitle=secondaryLinkTitle self.imageTag=imageTag - coordsnew=[ string.split(x,",") for x in coords] - + self.bgcolour=bgcolour + + if coords: + coordsnew=[ string.split(x,",") for x in coords] + self.coords=coordsnew[0:] + else: + coordsnew=None + self.coords=None + setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew) + + - self.coords=coordsnew[0:] self.sortfield=sortfield if RESPONSE is not None: @@ -734,9 +766,11 @@ class ECHO_collection(Folder, Persistent if 'index.html' in self.__dict__.keys(): return getattr(self,'index.html')() + elif 'overview' in self.__dict__.keys(): return self.showOverview() - + elif hasattr(self,'collection_index_template'): + return self.collection_index_template() pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_content_standard.zpt').__of__(self) pt.content_type="text/html" @@ -781,9 +815,12 @@ class ECHO_collection(Folder, Persistent return ids +<<<<<<< ECHO_collection.py + getSubCols = ECHO_helpers.getSubCols +======= def getSubCols(self,sortfield="weight"): - subColTypes=['ECHO_collection','ECHO_externalLink','ECHO_resource'] + subColTypes=['ECHO_group','ECHO_collection','ECHO_externalLink','ECHO_resource'] ids=[] for entry in self.__dict__.keys(): object=getattr(self,entry) @@ -812,8 +849,6 @@ class ECHO_collection(Folder, Persistent tmplist.sort() return [x for (key,x) in tmplist] - - @@ -823,21 +858,101 @@ def manage_addECHO_collectionForm(self): return pt() -def manage_addECHO_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",credits=None,RESPONSE=None,imageTag=""): +def manage_addECHO_collection(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""): """add a echo collection""" - newObj=ECHO_collection(id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,imageTag) + newObj=ECHO_collection(id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle=secondaryLinkTitle,secondaryLink=secondaryLink,imageTag=imageTag,bgcolour="") self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') +class ECHO_group(ECHO_collection): + """ECHO Gruppe""" + meta_type="ECHO_group" + + manage_options = Folder.manage_options+( + {'label':'Main Config','action':'ECHO_group_config'}, + {'label':'Rerender Links','action':'ECHO_rerenderLinksMD'}, + {'label':'Graphics','action':'ECHO_graphicEntry'}, + ) + def ECHO_group_config(self): + """Main configuration""" + + if not hasattr(self,'weight'): + self.weight="" + + if not hasattr(self,'sortfield'): + self.sortfield="weight" + + if not hasattr(self,'coords'): + self.coords=[] + + pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_group.zpt').__of__(self) + return pt() + + def changeECHO_group(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour=""): + """Änderung der Properties""" + + self.secondaryLink=secondaryLink + self.secondaryLinkTitle=secondaryLinkTitle + self.imageTag=imageTag + self.bgcolour=bgcolour + + if coords: + coordsnew=[ string.split(x,",") for x in coords] + self.coords=coordsnew[0:] + else: + coordsnew=None + self.coords=None + + setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight,coordsnew) + + + + self.sortfield=sortfield + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + def getLogo(self): + """logo ausgeben""" + return "ECHO_groups" + + def content_html(self): + """template fuer content""" + return content_html(self,'group') + + + +def manage_addECHO_groupForm(self): + """Add group form""" + pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_groupForm.zpt').__of__(self) + return pt() + + +def manage_addECHO_group(self,id,title,label,description,contentType,responsible,weight,sortfield,coords="",secondaryLinkTitle="",secondaryLink="",credits=None,RESPONSE=None,imageTag="",bgcolour=""): + """add a echo group""" + + + newObj=ECHO_group(id,title,label,description,contentType,responsible,credits,weight,sortfield,coords,secondaryLinkTitle=secondaryLinkTitle,secondaryLink=secondaryLink,imageTag=imageTag,bgcolour="") + + self._setObject(id,newObj) + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + + class ECHO_root(Folder,Persistent,Implicit): """ECHO Root Folder""" meta_type="ECHO_root" + def getBgcolour(self): + """hack""" + return "#dddddd" def contentTypeSelector_HTML(self,selected=None): """give type selector""" @@ -863,11 +978,11 @@ class ECHO_root(Folder,Persistent,Implic if not obj: obj = self - entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_resource','ECHO_collection,ECHO_externalLink,ECHO_pageTemplate']) + entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_resource','ECHO_collection','ECHO_externalLink','ECHO_pageTemplate']) for entry in entries: - - entry[1].contentType == entry[1].content_type + setattr(entry[1],'contentType',entry[1].content_type) + #entry[1].contentType == entry[1].content_type if entry[1].meta_type == 'ECHO_collection': entry[1].patchContentType(entry[1])