--- MPIWGWeb/MPIWGProjects.py 2004/07/06 16:49:36 1.11
+++ MPIWGWeb/MPIWGProjects.py 2004/07/08 11:42:31 1.14
@@ -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,19 @@ class MPIWGRoot(ZSQLExtendFolder):
def sortedNames(self,list):
"""sort names"""
- def sortLastName(x,y):
+ def sortLastName(x_c,y_c):
+ try:
+ x=urllib.unquote(x_c).encode('utf-8','ignore')
+ except:
+ x=urllib.unquote(x_c)
+
+ try:
+ y=urllib.unquote(y_c).encode('utf-8','ignore')
+ except:
+ x=urllib.unquote(y_c)
+
+
+
try:
last_x=x.split()[len(x.split())-1]
last_y=y.split()[len(y.split())-1]
@@ -126,7 +139,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 +166,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 +176,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,16 +197,26 @@ 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")
+ def getPersonDict(self,name):
+ """name von dict"""
+
+ try:
+ return self.personDict[name][0].encode('utf-8')
+ except:
+ return self.personDict[name][0]
+ return self.personDict[name][0].decode('latin-1').encode('utf-8')
+
+
def showHistoricalPersons(self):
"""show persons"""
pt=PageTemplateFile('Products/MPIWGWeb/zpt/showHistoricalPersons').__of__(self)
@@ -251,7 +282,7 @@ class MPIWGRoot(ZSQLExtendFolder):
if re.match(searchStr,project[1]):
if depth:
- print "ho"
+
if int(depth)>=len(project[1].split("."))-len(childs.split(".")):
ret.append(project)
@@ -381,7 +412,9 @@ class MPIWGRoot(ZSQLExtendFolder):
splittedId=idNr.split(".")
depth=len(splittedId)
nr=idNr
- title=project[0].WEB_title
+ #title=project[0].WEB_title
+ title=[project[0].getContent('WEB_title')]
+ #print title
returnList.append((depth,nr,title,project[0]))
@@ -470,8 +503,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,";")
@@ -703,12 +738,12 @@ class MPIWGProject(Folder):
try:
text =x.encode('utf-8')
except:
- text="ERROR"
+ text=x.decode('latin-1').encode('utf-8')
#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"""