--- MPIWGWeb/MPIWGProjects.py 2004/02/04 18:01:45 1.2
+++ MPIWGWeb/MPIWGProjects.py 2004/02/09 08:57:27 1.3
@@ -77,32 +77,91 @@ class MPIWGRoot(Folder):
if RESPONSE is not None:
RESPONSE.redirect('manage_main')
+ def getAllMembers(self):
+ """give list of all members"""
+ ret=[]
+
+ for x in self.members.objectValues('MPIWGStaff'):
+ print x.title
+ ret.append(x.title)
+
+ ret.sort()
+ return ret
+
+ def getUrlFromPerson(self,list):
+ """get urls to person list"""
+ ret=[]
+ persons=list.split(";")
+ for person in persons:
+
+ splitted=person.split(",")
+ if len(splitted)==1:
+ splitted=person.split(" ")
+ splittedNew=[re.sub(r'\s(.*)','$1',split) for split in splitted]
+ if splittedNew[0]=='':
+ del splittedNew[0]
+ search=string.join(splittedNew,' AND ')
+ if not search=='':
+ proj=self.MembersCatalog({'title':search})
+ print search,"PER",person,splittedNew,proj
+
+ if proj:
+ ret.append("%s"%(proj[0].absolute_url,person))
+ else:
+ ret.append("%s"%person)
+ return string.join(ret,";")
+
+ def getProjectsOfMembers(self):
+ """give tuple member /projects"""
+ ret=[]
+ members=self.getAllMembers()
+ for x in members:
+ splitted=x.split(",")
+
+ proj=self.ProjectCatalog({'xdata_01':string.join(splitted,' AND')})
+ if proj:
+ ret.append((x,proj))
+ return ret
def givePersonList(self,name):
"""check if person is in personfolder and return list of person objects"""
-
-
+
+ splitted=name.split(",")
+ if len(splitted)==1:
+ splitted=name.split(" ")
+ splittedNew=[re.sub(r'\s(.*)','$1',split) for split in splitted]
+ if splittedNew[0]=='':
+ del splittedNew[0]
+ search=string.join(splittedNew,' AND ')
+ if not search=='':
+ proj=self.MembersCatalog({'title':search})
+
+ if proj:
+ return [[x.lastName,x.firstName] for x in proj]
+ else:
+ return []
- splitted=name.split(",") # version nachname, vorname...
- if len(splitted)>1:
- lastName=splitted[0]
- firstName=splitted[1]
- else:
- splitted=name.split(" ") #version vorname irgenwas nachnamae
-
- lastName=splitted[len(splitted)-1]
- firstName=string.join(splitted[0:len(splitted)-1])
-
- objs=[]
-
- print self.members
- for x in self.members.__dict__:
- obj=getattr(self.members,x)
- if hasattr(obj,'lastName') and hasattr(obj,'firstName'):
+## splitted=name.split(",") # version nachname, vorname...
+## if len(splitted)>1:
+## lastName=splitted[0]
+## firstName=splitted[1]
+## else:
+## splitted=name.split(" ") #version vorname irgenwas nachnamae
+
+## lastName=splitted[len(splitted)-1]
+## firstName=string.join(splitted[0:len(splitted)-1])
+
+## objs=[]
+
+ #print self.members
+ ## for x in self.members.__dict__:
+## obj=getattr(self.members,x)
+## if hasattr(obj,'lastName') and hasattr(obj,'firstName'):
- if (re.match(".*"+obj.lastName+".*",lastName) or re.match(".*"+lastName+".*",obj.lastName)) and (re.match(".*"+obj.firstName+".*",firstName) or re.match(".*"+firstName+".*",obj.firstName)):
+## if (re.match(".*"+obj.lastName+".*",lastName) or re.match(".*"+lastName+".*",obj.lastName)) and (re.match(".*"+obj.firstName+".*",firstName) or re.match(".*"+firstName+".*",obj.firstName)):
- objs.append((obj,lastName+", "+firstName))
+## objs.append((obj,lastName+", "+firstName))
+
return objs
@@ -114,8 +173,10 @@ class MPIWGRoot(Folder):
for name in splitted:
if not (name==""):
- ret[name]=self.givePersonList(name)
-
+ try:
+ ret[name]=self.givePersonList(name)
+ except:
+ """NOTHIHN"""
print "RET",ret
return ret
@@ -124,7 +185,7 @@ class MPIWGRoot(Folder):
#print "GCL",fieldname
if fieldname=='xdata_01':
x=self.personCheck(person.getContent(fieldname))
- #print "GCLBACKX",x
+ print "GCLBACKX",x
return x
@@ -155,7 +216,25 @@ class MPIWGProject(Folder):
meta_type='MPIWGProject'
-
+ def crossLinker(self):
+ """experimental crosslinker"""
+ splitted=self.WEB_project_description[0].split()
+ new=[]
+ for split in splitted:
+ try:
+ found=self.DescriptionCatalog({'fulltext':split})
+
+ if len(found)>1:
+
+ new.append("%s"%(split,split))
+ else:
+ new.append(split)
+ except:
+ new.append(split)
+ return string.join(new)
+
+
+
def generateTemplate(self,RESPONSE=None):
"""Erzeuge Template für defined fields not_used"""