--- MPIWGWeb/MPIWGProjects.py 2004/07/05 14:22:31 1.10 +++ MPIWGWeb/MPIWGProjects.py 2004/07/06 16:49:36 1.11 @@ -5,6 +5,7 @@ for organizing and maintaining the diffe from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate +from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder import MPIWGStaff import string @@ -15,6 +16,8 @@ import xmlhelper # Methoden zur Verwaltu from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder +from bibliography import * + definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub'] checkFields = ['xdata_01'] @@ -50,7 +53,7 @@ def sortI(x,y): return cmp(x[1],y[1]) -class MPIWGRoot(Folder): +class MPIWGRoot(ZSQLExtendFolder): """Stammordner für den Web-Server""" fieldLabels={'WEB_title':'WEB_Title','xdata_01':'Responsible Scientists','xdata_02':'Department', @@ -64,6 +67,18 @@ class MPIWGRoot(Folder): folders=['MPIWGProject','Folder'] meta_type='MPIWGRoot' + def replaceNotEmpty(self,format,field): + """replace not empty""" + if field and (not field==''): + return format%field + else: + return "" + + + def formatBibliography(self,here,found): + """format""" + return formatBibliography(here,found) + def getValue(self,field): """Inhalt des Feldes""" @@ -466,23 +481,45 @@ class MPIWGRoot(Folder): members=self.getAllMembers() #return str(members) for x in members: - #y=x.encode('utf-8') - y=x - splitted=y.split(",") - splitNeu=[] - for s in splitted: - splitNeu.append("\""+s+"\"") - search=string.join(splitNeu,' AND ') - - proj=self.ProjectCatalog({'xdata_01':search}) - if proj: - ret.append((y,proj)) - - proj=self.ProjectCatalog({'xdata_08':search}) - if proj: - ret.append((y,proj)) + ret+=self.getProjectsOfMember(name=x) return ret + + def getProjectsOfMember(self,name=None,email=None): + """get project of a member""" + def sortP(x,y): + """sort by sorting number""" + + return cmp(x.xdata_05,y.xdata_05) + + + ret=[] + splitNeu=[] + if email: + members=self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff'],obj_ids=[email]) + name = members[0][1].title.decode('utf-8') + + y=name + splitted=y.split(",") + for s in splitted: + splitNeu.append("\""+s+"\"") + search=string.join(splitNeu,' AND ') + + proj=self.ProjectCatalog({'xdata_01':search}) + if proj: + proj2=[x for x in proj] + proj2.sort(sortP) + ret.append((y,proj2)) + + proj=self.ProjectCatalog({'xdata_08':search}) + if proj: + proj2=[x for x in proj] + proj2.sort(sortP) + ret.append((y,proj2)) + + + return ret + def givePersonList(self,name): """check if person is in personfolder and return list of person objects"""