--- MPIWGWeb/MPIWGProjects.py 2005/08/15 15:22:42 1.47.2.19 +++ MPIWGWeb/MPIWGProjects.py 2005/10/11 13:14:01 1.47.2.27 @@ -7,6 +7,7 @@ from Products.PageTemplates.PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder from Products.ZCatalog.CatalogPathAwareness import CatalogAware +from OFS.Image import Image from Globals import package_home import urllib import MPIWGStaff @@ -15,11 +16,11 @@ import re import os from types import * import zLOG -import xmlhelper # Methoden zur Verwaltung der projekt xmls +import xmlhelper # Methoden zur Verwaltung der projekt xml from OFS.SimpleItem import SimpleItem from OFS.Folder import Folder from Products.ZSQLMethods.SQL import SQLConnectionIDs - +from AccessControl import ClassSecurityInfo from bibliography import * import time @@ -94,7 +95,7 @@ class MPIWGLink(SimpleItem): splitted=self.link.lstrip().split("/") obj=self for x in splitted: - if not x=="": + if not x=="": obj=getattr(obj,x) return obj @@ -187,7 +188,7 @@ class MPIWGTemplate(ZopePageTemplate): return "aktiv" else: return "" - + def manage_addMPIWGTemplateForm(self): """Form for adding""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self) @@ -252,25 +253,41 @@ class MPIWGRoot(ZSQLExtendFolder): folders=['MPIWGProject','Folder','ECHO_Navigation'] meta_type='MPIWGRoot' + def versionHeaderEN(self): + """version header text""" + + date= self.REQUEST.get('date',None) + if date: + txt="""

This pages shows the project which existed at %s

"""%str(date) + return txt + return "" + + def versionHeaderDE(self): + """version header text""" + date= self.REQUEST.get('date',None) + if date: + txt="""

Auf dieser Seite finden Sie die Projekte mit Stand vom %s

"""%str(date) + return "" + def queryLink(self,link): """append querystring to the link""" return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING','')) def getKategory(self,url): - """kategorie""" - splitted=url.split("/") - return splitted[4] + """kategorie""" + splitted=url.split("/") + return splitted[4] def generateUrlProject(self,url,project=None): """erzeuge aus absoluter url, relative des Projektes""" - if project: + if project: splitted=url.split("/") length=len(splitted) short=splitted[length-2:length] base=self.REQUEST['URL3']+"/"+"/".join(short) - else: + else: findPart=url.find("/projects/") base=self.REQUEST['URL1']+"/"+url[findPart:] @@ -335,16 +352,16 @@ class MPIWGRoot(ZSQLExtendFolder): xmlPath=os.path.join(package_home(globals()), "updateSQL/%s"%fileName) zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath)) ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read() - zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret) + zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret) return 1 def patchProjects(self,RESPONSE): """patch""" projects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject']) for project in projects: - tmp=project[1].WEB_project_description[0].replace("/CD/projects/","")[0:] - setattr(project[1],'WEB_project_description',[tmp[0:]]) - RESPONSE.write("

%s

\n"%project[0]) + tmp=project[1].WEB_project_description[0].replace("/CD/projects/","")[0:] + setattr(project[1],'WEB_project_description',[tmp[0:]]) + RESPONSE.write("

%s

\n"%project[0]) def replaceNotEmpty(self,format,field): """replace not empty""" @@ -528,9 +545,9 @@ class MPIWGRoot(ZSQLExtendFolder): def getProjectsByFieldContent(self,fieldName,fieldContentsEntry, date=None): """gib alle Projekte aus mit Value von field mit fieldName enthält ein Element der Liste fieldContents""" def sort(x,y): - return cmp(x.WEB_title[0],y.WEB_title[0]) + return cmp(x.WEB_title[0],y.WEB_title[0]) - if type(fieldContentsEntry) is StringType: + if type(fieldContentsEntry) is StringType: fieldContentsTmp=[fieldContentsEntry] else: fieldContentsTmp=fieldContentsEntry @@ -540,7 +557,7 @@ class MPIWGRoot(ZSQLExtendFolder): fieldContents.append(" AND ".join(x.split())) projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' AND')}) #print projects - #ret=[x for x in projects] + #ret=[x for x in projects] ret=[] for x in projects: obj=x.getObject() @@ -549,7 +566,7 @@ class MPIWGRoot(ZSQLExtendFolder): #if not (x in ret): ret.append(x) - ret.sort(sort) + ret.sort(sort) return ret def changeMPIWGRootForm(self): @@ -584,7 +601,7 @@ class MPIWGRoot(ZSQLExtendFolder): def getContexts(self,childs=None,parents=None,depth=None,date=None): """childs alle childs, alle parents""" ret=[] - print "gC",date,childs + if parents: splitted=parents.split(".") parentId=string.join(splitted[0:len(splitted)-1],".") @@ -683,9 +700,32 @@ class MPIWGRoot(ZSQLExtendFolder): if RESPONSE is not None: RESPONSE.redirect('manage_main') + def updatePublicationDB(self,personId=None): + """updates the publication db, i.e. copy year into the main table""" + + if personId: + founds = self.ZSQLInlineSearch(_table="publications",id_main=personId) + else: + founds = self.ZSQLInlineSearch(_table="publications") + + for found in founds: + print found + if found.id_institutsbibliographie and (not found.id_institutsbibliographie ==""): + entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie) + for entry in entries: + self.ZSQLChange(_table='publications',_identify='oid=%s' % found.oid,year=entry.year,referencetype=entry.reference_type) + + if found.id_gen_bib and (not found.id_gen_bib ==""): + entries = self.ZSQLInlineSearch(_table="bibliography",id=found.id_gen_bib) + for entry in entries: + self.ZSQLChange(_table='publications',_identify='oid=%s' % found.oid,year=entry.year,referencetype=entry.reference_type) + + return True + + + def updateHomepages(self,RESPONSE): """lege members an""" - self.upDateSQL('personalwww.xml') founds=self.ZSQLInlineSearch(_table='personal_www',publish_the_data='yes') project=getattr(self,'members') @@ -700,6 +740,7 @@ class MPIWGRoot(ZSQLExtendFolder): except: RESPONSE.write("

old:%s (%s,%s)

\n"%(found.username,found.name,found.vorname)) + #delete non existing @@ -716,7 +757,8 @@ class MPIWGRoot(ZSQLExtendFolder): pass self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1']) - + self.updatePublicationDB() + if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -756,7 +798,7 @@ class MPIWGRoot(ZSQLExtendFolder): def getTree(self,date=None): """generate Tree from project list""" - print date + returnList=[] for project in self.getProjectFields('xdata_05',sort="int",date=date): # get Projects sorted by xdata_05 @@ -768,7 +810,7 @@ class MPIWGRoot(ZSQLExtendFolder): #title=project[0].WEB_title title=[project[0].getContent('WEB_title')] #print title - if idNr[0]!="x": + if idNr[0]!="x": returnList.append((depth,nr,title,project[0])) return returnList @@ -804,8 +846,8 @@ class MPIWGRoot(ZSQLExtendFolder): department=int(element[3].getContent('xdata_05'))-1 ret+="""\n""" - if department==4: #hack - department=3 + if department==4: #hack + department=3 ret+="""
\n