--- MPIWGWeb/MPIWGProjects.py 2012/01/09 07:33:30 1.47.2.124 +++ MPIWGWeb/MPIWGProjects.py 2012/01/18 18:55:19 1.47.2.128 @@ -43,6 +43,8 @@ import MPIWGRoot import MPIWGLink import MPIWGTemplate +import transaction + # die folgenden Klassen sind jetzt in einzelne Files ausgelagert aus Kompatibilitaetsgruenden, bleiben die Klassen hier noch drin. # Sonst funktionieren die alten Webseiten nicht mehr. @@ -73,29 +75,48 @@ class MPIWGProject_publication(Folder): logging.debug(email.Utils.formatdate()+' GMT') RESPONSE.redirect(url+addStr%timeStamp) - def hasLinkToBookPage(self): + def hasLinkToBookPage(self,mode="not_cached"): """teste ob eingebener link zu einer MPIWG Book page geht""" + + logging.debug("MPIWGProject_publication - begin hasLinkToBookPage") if (getattr(self,'link','')==''): return False #es gibt keinen link + logging.debug("MPIWGProject_publication - begin hasLinkToBookPage:"+self.link) server = xmlrpclib.ServerProxy(self.link) + if(mode=="cached"): + if (hasattr(self,"_v_hasLinkToBookPage")): + logging.debug("haslink cached") + return self._v_hasLinkToBookPage + try: server.getImageUrls() + logging.debug("MPIWGProject_publication - end TRUE") + self._v_hasLinkToBookPage=True return True except: + logging.debug("MPIWGProject_publication - end FALSE ") + self._v_hasLinkToBookPage=True return False - def getImageUrls(self): + + def getImageUrls(self,mode="not_cached"): """get the image urls""" if (getattr(self,'link','')==''): - return False #es gibt keinen link + return [] #es gibt keinen link server = xmlrpclib.ServerProxy(self.link) + + if(mode=="cached"): + if (hasattr(self,"_v_imageUrls")): + logging.debug("getImageURL cached") + return self._v_imageUrls + try: urls = server.getImageUrls() ret=[] @@ -104,8 +125,9 @@ class MPIWGProject_publication(Folder): ret.append(url) except: + self._v_imageUrls=[] return [] - + self._v_imageUrls=ret[0:] return ret def editPublication(self,text=None,image1=None,image2=None,description=None,link=None,RESPONSE=None): @@ -261,10 +283,11 @@ class MPIWGProject(CatalogAware,Folder,C def sort(x,y): return cmp(getattr(x[1],'place',0),getattr(y[1],'place',0)) + logging.debug("MPIWGProjects begin: sorted by place: "+ metatype) founds=self.ZopeFind(self,obj_metatypes=[metatype]); founds.sort(sort) - + logging.debug("MPIWGProjects end: sorted by place: "+ metatype) return founds @@ -1045,18 +1068,29 @@ class MPIWGProject(CatalogAware,Folder,C def harvest_page(self,context=None,mode="normal"): """seite fuer harvesting fuer die Projektsuche""" + if not context: context=self if self.isActiveProject() and self.isActual(): + templates = self.en.getHarvestCache() + ext=getattr(self,"harvest_main",None) if ext: - return getattr(self,ext.getId())() + rendered = getattr(self,ext.getId())() + templates[self.absolute_url()]=rendered + transaction.commit() + return rendered + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','harvest_main')).__of__(context) - - - return pt() + + rendered = pt() + templates[self.absolute_url()]=rendered + transaction.commit() + return rendered + + def index_html(self,request=True,context=None): """show homepage"""