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