--- 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"""