--- MPIWGWeb/MPIWGProjects.py 2004/10/14 09:01:32 1.37 +++ MPIWGWeb/MPIWGProjects.py 2004/10/21 14:28:55 1.40 @@ -13,7 +13,7 @@ import string import re import os from types import * - +import zLOG import xmlhelper # Methoden zur Verwaltung der projekt xmls from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder @@ -138,16 +138,16 @@ class MPIWGRoot(ZSQLExtendFolder): 'xdata_13':'Funding institutions','WEB_project_header':'WEB_project_header', 'WEB_project_description':'WEB_project_description','WEB_related_pub':'WEB_related_pub'} - folders=['MPIWGProject','Folder'] + folders=['MPIWGProject','Folder','ECHO_Navigation'] meta_type='MPIWGRoot' def upDateSQL(self,fileName): """updates SQL databases using fm.jar""" fmJarPath=os.path.join(package_home(globals()), 'updateSQL/fm.jar') xmlPath=os.path.join(package_home(globals()), "updateSQL/%s"%fileName) - - os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read() - + zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath)) + ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read() + zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret) return 1 def patchProjects(self,RESPONSE): @@ -391,31 +391,24 @@ class MPIWGRoot(ZSQLExtendFolder): def getProjectFields(self,fieldName,folder=None,sort=None): """getListofFieldNames""" ret=[] - #print "FN",fieldName - if not folder: - folder=self - for object in folder.__dict__: - - obj=getattr(folder,object) - if hasattr(obj,'meta_type'): - #print obj.meta_type - if obj.meta_type=='MPIWGProject': - if fieldName=="WEB_title_or_short": - #print "HI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" - #print len(obj.getContent('xdata_07')) - if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer - fieldNameTmp="WEB_title" - else: - fieldNameTmp="xdata_07" - else: - fieldNameTmp=fieldName - - ret.append((obj,obj.getContent(fieldNameTmp))) + + objects=self.ZopeFind(self,obj_metatypes=['MPIWGProject'],search_sub=1) - if obj.meta_type in self.folders: + + for object in objects: + obj=object[1] + if fieldName=="WEB_title_or_short": + + if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer + fieldNameTmp="WEB_title" + else: + fieldNameTmp="xdata_07" + else: + fieldNameTmp=fieldName - ret += self.getProjectFields(fieldName,obj) + ret.append((obj,obj.getContent(fieldNameTmp))) + if sort=="int": ret.sort(sortI) else: @@ -470,8 +463,9 @@ class MPIWGRoot(ZSQLExtendFolder): def updateHomepages(self,RESPONSE): """lege members an""" + self.upDateSQL('personalwww.xml') - founds=self.ZSQLInlineSearch(_table='personal_www') + founds=self.ZSQLInlineSearch(_table='personal_www',publish_the_data='yes') project=getattr(self,'members') for found in founds: @@ -485,6 +479,19 @@ class MPIWGRoot(ZSQLExtendFolder): RESPONSE.write("

old:%s (%s,%s)

\n"%(found.username,found.name,found.vorname)) + #delete non existing + + + foundUserNames=[x.username for x in founds] + for member in self.ZopeFind(self,obj_metatypes=["MPIWGStaff"],search_sub=1): + + if member[1].getId() not in foundUserNames: + member[1].aq_parent.manage_delObjects(ids=[member[1].getId()]) + RESPONSE.write("

deleted:%s

\n"%member[1].getId()) + + self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1']) + + if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -700,7 +707,8 @@ class MPIWGRoot(ZSQLExtendFolder): ret=[] splitNeu=[] if email: - members=self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff'],obj_ids=[email]) + #print "IIII:",self.getId() + members=self.ZopeFind(self,obj_metatypes=['MPIWGStaff'],obj_ids=[email],search_sub=1) name = members[0][1].title.decode('utf-8') y=name @@ -838,6 +846,7 @@ class MPIWGProject(Folder): meta_type='MPIWGProject' + def crossLinker(self): """experimental crosslinker""" splitted=self.WEB_project_description[0].split() @@ -907,6 +916,7 @@ class MPIWGProject(Folder): pt=PageTemplateFile('Products/MPIWGWeb/zpt/project_main').__of__(self) return pt() + def getDataFields(self): """giveListofDatafields""" ret=[]