--- MPIWGWeb/MPIWGProjects.py 2004/07/06 16:49:36 1.11 +++ MPIWGWeb/MPIWGProjects.py 2004/07/08 07:04:31 1.12 @@ -7,6 +7,7 @@ from Products.PageTemplates.PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder +import urllib import MPIWGStaff import string import re @@ -98,7 +99,10 @@ class MPIWGRoot(ZSQLExtendFolder): def sortedNames(self,list): """sort names""" - def sortLastName(x,y): + def sortLastName(x_c,y_c): + x=urllib.unquote(x_c) + y=urllib.unquote(y_c) + try: last_x=x.split()[len(x.split())-1] last_y=y.split()[len(y.split())-1] @@ -126,7 +130,15 @@ class MPIWGRoot(ZSQLExtendFolder): """init""" self.id=id self.title=title - + + def urlQuote(self,str): + """quote""" + return urllib.quote(str) + + def urlUnQuote(self,str): + """quote""" + return urllib.unquote(str) + def harvestHistoricalPersons(self): """erstelle liste aller erwaehnten actors""" @@ -145,7 +157,7 @@ class MPIWGRoot(ZSQLExtendFolder): lg=len(project[1].xdata_03[0])-1 if (lg>1) and (project[1].xdata_03[0][lg]==";"): - project[1].xdata_03[0]=project[1].xdata_03[0][0:lg-1] + project[1].xdata_03[0]=project[1].xdata_03[0][0:lg] @@ -155,16 +167,16 @@ class MPIWGRoot(ZSQLExtendFolder): for person in project[1].xdata_03[0].split(";"): personNormal=normalize(person) if personNormal in list.keys(): - list[personNormal].append(project[1]) + list[urllib.quote(personNormal)][1].append(project[1]) else: - list[personNormal]=[project[1]] + list[urllib.quote(personNormal)]=(personNormal,[project[1]]) else: #guess , is sepeator for person in project[1].xdata_03[0].split(","): personNormal=normalize(person) - if personNormal in list.keys(): - list[personNormal].append(project[1]) + if urllib.quote(personNormal) in list.keys(): + list[urllib.quote(personNormal)][1].append(project[1]) else: - list[personNormal]=[project[1]] + list[urllib.quote(personNormal)]=(personNormal,[project[1]]) except: print "ERROR",project @@ -176,11 +188,11 @@ class MPIWGRoot(ZSQLExtendFolder): self.personDict={} personDict=self.harvestHistoricalPersons() for person in personDict.keys(): - for project in personDict[person]: + for project in personDict[person][1]: if person in self.personDict.keys(): - self.personDict[person].append((project.absolute_url(),project.WEB_title[0],project.xdata_01[0])) + self.personDict[person][1].append((project.absolute_url(),project.WEB_title[0],project.xdata_01[0])) else: - self.personDict[person]=[(project.absolute_url(),project.WEB_title[0],project.xdata_01[0])] + self.personDict[person]=(personDict[person][0],[(project.absolute_url(),project.WEB_title[0],project.xdata_01[0])]) if RESPONSE is not None: RESPONSE.redirect("showHistoricalPersons") @@ -470,8 +482,10 @@ class MPIWGRoot(ZSQLExtendFolder): proj=None if proj: + #ret.append("%s"%(proj[0].absolute_url,person.encode('utf-8'))) ret.append("%s"%(proj[0].absolute_url,person)) else: + #ret.append("%s"%person.encode('utf-8')) ret.append("%s"%person) return string.join(ret,";") @@ -708,7 +722,7 @@ class MPIWGProject(Folder): #delete separator (;) if is there is one try: if text[len(text)-1]==";": - text=text[0:len(text)-1] + text=text[0:len(text)-1].encode('utf-8') except: """nothing"""