--- MPIWGWeb/MPIWGProjects.py 2004/02/04 10:03:33 1.1.1.1
+++ MPIWGWeb/MPIWGProjects.py 2004/02/12 16:51:02 1.4
@@ -66,7 +66,7 @@ class MPIWGRoot(Folder):
project=getattr(self,folderName)
for line in fileupload.readlines():
- print line
+ #print line
splitted=line.split(",")
if not (splitted[0]==""):
newObj=MPIWGStaff.MPIWGStaff(splitted[0],splitted[1],splitted[2])
@@ -77,46 +77,110 @@ 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=='':
+
+ try:
+ proj=self.MembersCatalog({'title':search})
+ except:
+ proj=None
+
+ 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
def personCheck(self,names):
"""all persons for list"""
- print "names",names
+ #print "names",names
splitted=names.split(";")
ret={}
for name in splitted:
if not (name==""):
- ret[name]=self.givePersonList(name)
-
- print "RET",ret
+ try:
+ ret[name]=self.givePersonList(name)
+ except:
+ """NOTHIHN"""
+ #print "RET",ret
return ret
def giveCheckList(self,person,fieldname):
@@ -155,7 +219,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"""