--- MPIWGWeb/MPIWGProjects.py 2008/09/03 21:52:14 1.47.2.100 +++ MPIWGWeb/MPIWGProjects.py 2008/09/12 12:28:48 1.47.2.106 @@ -22,6 +22,7 @@ from OFS.Image import Image from AccessControl import ClassSecurityInfo from bibliography import * import time +from OFS.Cache import Cacheable #import xml.dom.minidom import sys #from Ft.Xml.XPath import Evaluate @@ -111,7 +112,7 @@ class MPIWGProject_image(Image): if RESPONSE: RESPONSE.redirect("../manageImages") -class MPIWGProject(CatalogAware,Folder): +class MPIWGProject(CatalogAware,Folder,Cacheable): """Class for Projects""" @@ -369,7 +370,10 @@ class MPIWGProject(CatalogAware,Folder): def deleteImage(self,id,RESPONSE=None): """delete Image id""" - self.manage_delObjects([id]) + try: + self.manage_delObjects([id]) + except: + logging.error("ERROR MPIWG: %s %s"%sys.exc_info()[0:2]) if RESPONSE: RESPONSE.redirect('manageImages') @@ -573,7 +577,7 @@ class MPIWGProject(CatalogAware,Folder): def isArchivedProject(self): """check if the project is archived""" - completed=getattr(self,'completedAt',0) + completed=self.getCompletedAt() #completed leer if completed=="" : @@ -610,6 +614,7 @@ class MPIWGProject(CatalogAware,Folder): return True; else: return False; + def getCompletedAt(self): """gibt das transformierte Datum zurueck, an dem das Projekt beendet wurde.""" date=getattr(self,'completedAt','') @@ -617,12 +622,14 @@ class MPIWGProject(CatalogAware,Folder): return self.reTransformDate(date); else: # test ob parent abgeschlossen ist - - ct=self.getContexts(parents=self.getContent('xdata_05'),depth=1) - if (len(ct)>0): #is there are parent + try: #TODO: ersetzte try except durch vernuenftige abfrage + ct=self.getContexts(parents=self.getContent('xdata_05'),depth=1) + if (len(ct)>0): #is there are parent - return ct[0][0].getCompletedAt() - return ''; + return ct[0][0].getCompletedAt() + return ''; + except: + return ''; def getStartedAt(self): """gibt das transformierte Datum zurŸck, an dem Projekt begonnen wurde.""" @@ -756,10 +763,11 @@ class MPIWGProject(CatalogAware,Folder): self.REQUEST.SESSION['MPI_redirected']=None #ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"]) + ext=getattr(self,"project_main",None) if ext: return getattr(self,ext.getId())() - + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','project_main')).__of__(context) return pt() @@ -785,6 +793,12 @@ class MPIWGProject(CatalogAware,Folder): def getContent(self,field,filter=None): """Inhalt des Feldes""" + if field=="short_title": + text = self.getContent("xdata_07") + if text=="": + text = self.getContent("WEB_title") + return text + text=u'' for x in getattr(self,field): @@ -804,11 +818,14 @@ class MPIWGProject(CatalogAware,Folder): except: pass - if text=='': + if text=='': ## wozu die folgenden Zeilen?? text2=text else: text2=re.sub(r';([^\s])','; \g<1>',text) + if field=="WEB_project_description":##Jedenfalls darf letzteres nicht gemacht werden, falls normaler text + text2=text + #teste ob ergebnis leer und header dann nehme title if (text2=='') and (field=='WEB_project_header'): @@ -891,14 +908,14 @@ class MPIWGProject(CatalogAware,Folder): start=kupu.find("") end=kupu.find("") newcontent= kupu[start+6:end] - + if preview: return self.preview(newcontent) self.copyObjectToArchive() self.WEB_project_description=newcontent[0:] - + self.REQUEST.RESPONSE.redirect("./index.html") return True @@ -1106,7 +1123,7 @@ class MPIWGProject(CatalogAware,Folder): lastname=self.myCapitalize(lastname).encode('utf-8') logging.info("Search: %s %s %s"%(name,repr(firstname),repr(lastname))) try: - cataloggedNames=self.MembersCatalog({'firstName':firstname,'lastName':lastname}) + cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname) except: cataloggedNames=[] logging.error("ERROR: identifyNames %s %s"%sys.exc_info()[0:2])