--- ECHO_content/ECHO_collection.py 2004/04/16 15:42:52 1.45 +++ ECHO_content/ECHO_collection.py 2004/05/06 13:05:49 1.54 @@ -26,9 +26,15 @@ from Products.PageTemplates.PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Globals import Persistent, package_home from Acquisition import Implicit - -#from psycopg import libpq -#from pyPgSQL import libpq +from ECHO_helpers import displayTypes +try: + from psycopg import libpq +except: + try: + from pyPgSQL import libpq + except: + print "ECHO_collection: Warning - No libpq imported!" + import xml.dom.minidom import urllib @@ -266,6 +272,13 @@ class ECHO_resource(Folder): viewClassificationList=viewClassificationListMaster getSubCols = ECHO_helpers.getSubCols + def getTitle(self): + """title""" + return self.title.encode('utf-8') + + def getLabel(self): + """title""" + return self.label.encode('utf-8') def content_html(self): """template fuer content""" @@ -313,6 +326,11 @@ class ECHO_resource(Folder): except: return [] + def getContentType(self): + try: + return self.contentType + except: + return "" def ECHO_resource_config(self): """Main configuration""" @@ -436,6 +454,14 @@ class ECHO_externalLink(Folder): security=ClassSecurityInfo() meta_type='ECHO_externalLink' + def getTitle(self): + """title""" + return self.title.encode('utf-8') + + def getLabel(self): + """title""" + return self.label.encode('utf-8') + def content_html(self): """template fuer content""" return content_html(self,'externalLink') @@ -519,12 +545,46 @@ def manage_addECHO_externalLink(self,id, RESPONSE.redirect('manage_main') +class ECHO_link(ECHO_externalLink): + """external_link""" + + meta_type="ECHO_link" + + + def content_html(self): + """template fuer content""" + return content_html(self,'link') + +def manage_addECHO_linkForm(self): + """Form for external Links""" + pt=PageTemplateFile('Products/ECHO_content/zpt/AddECHO_linkForm.zpt').__of__(self) + return pt() + + +def manage_addECHO_link(self,id,title,label,description,contentType,responsible,link,weight,coords=None,credits=None,RESPONSE=None): + """Add an external Link""" + + newObj=ECHO_link(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 getTitle(self): + """title""" + return self.title.encode('utf-8') + + def getLabel(self): + """title""" + return self.label.encode('utf-8') + def createRessourcesFromXMLForm(self): """form""" pt=PageTemplateFile('Products/ECHO_content/zpt/createRessourcesFromXMLForm.zpt').__of__(self) @@ -541,7 +601,7 @@ class ECHO_collection(Folder, Persistent id=re.sub(" ","_",label).encode('ascii') ret+="

"+label+"

" - manage_addECHO_resource(self,id,label,label,"","","",link,"","") + manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") return ret def getImageTag(self): """GetTag""" @@ -597,7 +657,11 @@ class ECHO_collection(Folder, Persistent dynamical="" for ob in self.getGraphicCoords(): - dynamical+="""Coords.push(new Coord('%s', Img, %s));\n"""%(ob[1],ob[0]) + if ob[4][4] == "": + dynamical+="""Coords.push(new Coord('%s', Img, %s));\n"""%(ob[1],ob[0]) + else: + dynamical+="""Coords.push(new Coord('%s', Img, %s));//%s\n"""%(ob[1],ob[0],ob[4][4]) + dynamical+="ShowArrow(new getObj('i.%s'),Img,%s);\n"%(ob[1],ob[0]) ret+=javaHandler%dynamical return ret @@ -629,21 +693,21 @@ class ECHO_collection(Folder, Persistent return ret security.declarePublic('ECHO_rerenderLinksMD') - def ECHO_rerenderLinksMD(self): + def ECHO_rerenderLinksMD(self,obj=None): """Rerender all Links""" - - for entry in self.__dict__.keys(): - object=getattr(self,entry) - + if not obj: + obj = self - try: + entries=obj.ZopeFind(obj,obj_metatypes=['ECHO_resource','ECHO_collection']) + + for entry in entries: + if entry[1].meta_type == 'ECHO_resource': + entry[1].ECHO_getResourceMD(template="no") + print "rerender",entry[1].getId() + else: + self.ECHO_rerenderLinksMD(entry[1]) + - if object.meta_type == 'ECHO_resource': - - object.ECHO_getResourceMD(template="no") - - except: - """nothing""" return "Rerenderd all links to resources in: "+self.title @@ -792,8 +856,10 @@ class ECHO_collection(Folder, Persistent return self.showOverview() elif hasattr(self,'collection_index_template'): return self.collection_index_template() + elif hasattr(self,'main_index_template'): + return self.collection_index_template() - pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_content_standard.zpt').__of__(self) + pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_main_index_template_standard.zpt').__of__(self) pt.content_type="text/html" return pt() @@ -822,14 +888,14 @@ class ECHO_collection(Folder, Persistent if len(coordtemp)>3: coord=coordtemp[0:4] if hasattr(object,'label') and not object.label=="": - ids.append([string.join(coord,", "),object.getId(),object.label,object]) + ids.append([string.join(coord,", "),object.getId(),object.label,object,coordtemp]) elif hasattr(object,'title'): if not object.title=="": - ids.append([string.join(coord,", "),object.getId(),object.title,object]) + ids.append([string.join(coord,", "),object.getId(),object.title,object,coordtemp]) else: - ids.append([string.join(coord,", "),object.getId(),object.getId(),object]) + ids.append([string.join(coord,", "),object.getId(),object.getId(),object,coordtemp]) else: - ids.append([string.join(coord,", "),object.getId(),object.getId(),object]) + ids.append([string.join(coord,", "),object.getId(),object.getId(),object,coordtemp]) except: """nothing""" @@ -870,6 +936,27 @@ class ECHO_group(ECHO_collection): {'label':'Rerender Links','action':'ECHO_rerenderLinksMD'}, {'label':'Graphics','action':'ECHO_graphicEntry'}, ) + + def index_html(self): + """standard page""" + displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes) + if len(displayedObjects)==1: # nur ein Object dann redirect auf dieses Object + return self.REQUEST.RESPONSE.redirect(displayedObjects[0][1].absolute_url()) + + if 'index.html' in self.__dict__.keys(): + return getattr(self,'index.html')() + + elif 'overview' in self.__dict__.keys(): + return self.showOverview() + elif hasattr(self,'group_index_template'): + return self.group_index_template() + elif hasattr(self,'main_index_template'): + return self.collection_index_template() + + pt=PageTemplateFile('Products/ECHO_content/zpt/ECHO_main_index_template_standard.zpt').__of__(self) + pt.content_type="text/html" + return pt() + def ECHO_group_config(self): """Main configuration""" @@ -947,6 +1034,13 @@ class ECHO_root(Folder,Persistent,Implic """ECHO Root Folder""" meta_type="ECHO_root" + + def getImageTag(self): + """needed by main_template""" + return "" + secondaryLink="" #needed by main_template + secondaryLinkTitle="" #needed by main_template + def getBgcolour(self): """hack""" return "#dddddd" @@ -959,7 +1053,7 @@ class ECHO_root(Folder,Persistent,Implic retStr="