version 1.7, 2004/05/24 10:29:15
|
version 1.8, 2004/05/28 16:45:06
|
Line 52 class MPIWGRoot(Folder):
|
Line 52 class MPIWGRoot(Folder):
|
folders=['MPIWGProject','Folder'] |
folders=['MPIWGProject','Folder'] |
meta_type='MPIWGRoot' |
meta_type='MPIWGRoot' |
|
|
|
def sortedNames(self,list): |
|
"""sort names""" |
|
|
|
def sortLastName(x,y): |
|
try: |
|
last_x=x.split()[len(x.split())-1] |
|
last_y=y.split()[len(y.split())-1] |
|
|
|
except: |
|
|
|
last_x="" |
|
last_y="" |
|
|
|
|
|
|
|
if last_x<last_y: |
|
return 1 |
|
elif last_x>last_y: |
|
return -1 |
|
else: |
|
return 0 |
|
|
|
list.sort(sortLastName) |
|
list.reverse() |
|
|
|
return list |
|
|
def __init__(self, id, title): |
def __init__(self, id, title): |
"""init""" |
"""init""" |
self.id=id |
self.id=id |
self.title=title |
self.title=title |
|
|
|
def harvestHistoricalPersons(self): |
|
"""erstelle liste aller erwaehnten actors""" |
|
|
|
def normalize(str): |
|
"""loesche fuhrendes space""" |
|
if (len(str)>1) and (str[0]==" "): |
|
ret=str[1:] |
|
else: |
|
ret=str |
|
return ret |
|
|
|
list={} |
|
projects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject']) |
|
|
|
for project in projects: |
|
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] |
|
|
|
|
|
|
|
|
|
try: |
|
if len(project[1].xdata_03[0].split(";"))>1: # guess if separator is ; |
|
for person in project[1].xdata_03[0].split(";"): |
|
personNormal=normalize(person) |
|
if personNormal in list.keys(): |
|
list[personNormal].append(project[1]) |
|
else: |
|
list[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]) |
|
else: |
|
list[personNormal]=[project[1]] |
|
|
|
except: |
|
print "ERROR",project |
|
|
|
return list |
|
|
|
def storeHistoricalPersons(self,RESPONSE=None): |
|
"""store persons""" |
|
self.personDict={} |
|
personDict=self.harvestHistoricalPersons() |
|
for person in personDict.keys(): |
|
for project in personDict[person]: |
|
if person in self.personDict.keys(): |
|
self.personDict[person].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])] |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect("showHistoricalPersons") |
|
|
|
|
|
def showHistoricalPersons(self): |
|
"""show persons""" |
|
pt=PageTemplateFile('Products/MPIWGWeb/zpt/showHistoricalPersons').__of__(self) |
|
return pt() |
|
|
|
|
|
def editHistoricalPersonsForm(self): |
|
"""edit historical persons for consistency""" |
|
pt=PageTemplateFile('Products/MPIWGWeb/zpt/editHistoricalPersonsForm').__of__(self) |
|
return pt() |
|
|
|
def getProjectsByFieldContent(self,fieldName,fieldContentsEntry): |
|
"""gib alle Projekte aus mit Value von field mit fieldName enthält ein Element der Liste fieldContents""" |
|
if type(fieldContentsEntry) is StringType: |
|
fieldContents=[fieldContentsEntry] |
|
else: |
|
fieldContents=fieldContentsEntry |
|
|
|
projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' OR')}) |
|
#print projects |
|
return projects |
|
|
|
def changeMPIWGRootForm(self): |
|
"""edit""" |
|
pt=PageTemplateFile('Products/MPIWGWeb/zpt/changeMPIWGRootForm').__of__(self) |
|
return pt() |
|
|
|
def changeMPIWGRoot(self,title,disciplineList,themesList,RESPONSE=None): |
|
"""change""" |
|
self.title=title |
|
self.disciplineList=disciplineList |
|
self.themesList=themesList |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
def test(self): |
|
"""test""" |
|
return self.getProjectsByFieldContent('xdata_09',['biology'])[0].absolute_url |
|
|
def getProjectFields(self,fieldName,folder=None,sort=None): |
def getProjectFields(self,fieldName,folder=None,sort=None): |
"""getListofFieldNames""" |
"""getListofFieldNames""" |
ret=[] |
ret=[] |
Line 104 class MPIWGRoot(Folder):
|
Line 231 class MPIWGRoot(Folder):
|
|
|
manage_options = Folder.manage_options+( |
manage_options = Folder.manage_options+( |
{'label':'Import Persons','action':'importNamesForm'}, |
{'label':'Import Persons','action':'importNamesForm'}, |
|
{'label':'Main config','action':'changeMPIWGRootForm'}, |
|
{'label':'Store Historical Persons','action':'storeHistoricalPersons'}, |
) |
) |
|
|
def importNamesForm(self): |
def importNamesForm(self): |
Line 166 class MPIWGRoot(Folder):
|
Line 295 class MPIWGRoot(Folder):
|
|
|
# Suche hoechste bisherige nummer |
# Suche hoechste bisherige nummer |
projects=self.getProjectFields('xdata_05') # get Projects sorted by xdata_05 |
projects=self.getProjectFields('xdata_05') # get Projects sorted by xdata_05 |
print "pj",projects |
#print "pj",projects |
for project in projects: #suche alle subtrees der treeId |
for project in projects: #suche alle subtrees der treeId |
#print treeId |
#print treeId |
|
|