--- MPIWGWeb/MPIWGProjects.py 2008/09/01 15:42:58 1.47.2.96 +++ MPIWGWeb/MPIWGProjects.py 2008/09/02 12:00:06 1.47.2.97 @@ -591,9 +591,9 @@ class MPIWGProject(CatalogAware,Folder): def setCompletedAt(self,date): """set the date of completion, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY""" - logging.info("DATE:"+repr(date)) + #logging.info("DATE:"+repr(date)) transformedDate=self.transformDate(date); - logging.info("transformed"+repr(transformedDate)) + #logging.info("transformed"+repr(transformedDate)) if transformedDate is not None: setattr(self,"completedAt",transformedDate) return True; @@ -602,9 +602,9 @@ class MPIWGProject(CatalogAware,Folder): def setStartedAt(self,date): """set the date of start, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY""" - logging.info("DATE:"+repr(date)) + #logging.info("DATE:"+repr(date)) transformedDate=self.transformDate(date); - logging.info("transformed"+repr(transformedDate)) + #logging.info("transformed"+repr(transformedDate)) if transformedDate is not None: setattr(self,"startedAt",transformedDate) return True; @@ -1107,28 +1107,42 @@ class MPIWGProject(CatalogAware,Folder): #logging.info("XXXXXXXXXXXXX"+repr(self.responsibleScientistsList)) - keys = [x[1] for x in getattr(self,"responsibleScientistsList",[])] - - if key in keys: + keys = [unicodify(x[1]) for x in getattr(self,"responsibleScientistsList",[])] + #logging.error("RESP. SCIEN:%s"%getattr(self,"responsibleScientistsList",[])) + #logging.error("RESP. SCIEN:%s"%unicodify(key)) + + if unicodify(key) in keys: return True else: return False def getPersonKeyList(self): - """gibt die key Lister der beteiligten Personen zurŸck""" - return [x[1] for x in getattr(self,'responsibleScientistsList',[])] - + """gibt die key Liste der beteiligten Personen zurŸck (utf8 codiert)""" + #logging.error("getPersonKeyList:%s"%getattr(self,'responsibleScientistsList',[])) + try: + return [utf8ify(x[1]) for x in getattr(self,'responsibleScientistsList',[])] + except: + return[] - + def myCapitalize(self,txt): + """kapitalisiere auch Namen mit -""" + splitted=[x.capitalize() for x in txt.split("-")] + return "-".join(splitted) + def identifyNames(self,nameList): """Bekommt eine Komma oder Semikolon getrennte Liste mit Name der Form Vorname MittelName(n) Nachname und ordnet diese dann Mitarbeiter IDs zu falls es schone eine Liste gibt wird im Projekte gibt wird diese Upgedated. @param nameList """ - nameList=nameList.replace(";",",") # falls ; als Trenner ersetze - names=nameList.split(",") + if nameList.find(";")>-1: # rate Trenner ist ; + names=nameList.split(";") + + else: + names=nameList.split(",") + + ##nameList=nameList.replace(";",",") # falls ; als Trenner ersetze returnNamesDict={} @@ -1144,13 +1158,16 @@ class MPIWGProject(CatalogAware,Folder): lastname=nameSplitted[0] #finde Mitarbeiter mit den entsprechenden Name - logging.info("Search: %s %s %s"%(name,firstname,lastname)) - firstname=firstname.capitalize() - lastname=lastname.capitalize() + + firstname=self.myCapitalize(firstname).encode('utf-8') + lastname=self.myCapitalize(lastname).encode('utf-8') + logging.info("Search: %s %s %s"%(name,repr(firstname),repr(lastname))) try: - cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) + cataloggedNames=self.MembersCatalog({'firstName':firstname,'lastName':lastname}) except: cataloggedNames=[] + logging.error("ERROR: identifyNames %s %s"%sys.exc_info()[0:2]) + #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind #if not hasattr(self,'responsibleScientistsList'): # self.responsibleScientistsList={} @@ -1209,13 +1226,13 @@ class MPIWGProject(CatalogAware,Folder): keys[nr]=self.REQUEST[key] - for nr in names.keys(): - tmpList.append((names[nr],keys.get(nr,""))) + for nr in names.keys():#schreibe keys und namen in die Liste, stelle ausserdem sicher, dass name unicode + tmpList.append((unicodify(names[nr]),unicodify(keys.get(nr,"")))) self.responsibleScientistsList=tmpList if fromEdit and (RESPONSE is not None): #RESPONSE.redirect('./editMPIWGBasisEditor') - return self.editMPIWGBasisEditor(identifiedNames=self.identifyNames(self.REQUEST.get('xdata_01',''))) + return self.editMPIWGBasisEditor(identifiedNames=self.identifyNames(self.decode(self.REQUEST.get('xdata_01','')))) else: if RESPONSE is not None: @@ -1285,7 +1302,8 @@ class MPIWGProject(CatalogAware,Folder): if not identifiedNames: identifiedNames=self.identifyNames(self.getContent('xdata_01')) # identifiedNames=self.getFullNameEntries() - + + logging.error("IdentifiedNames: %s"% repr(identifiedNames)) pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasisNeu.zpt')).__of__(self) return pt(identifiedNames=identifiedNames)