--- MPIWGWeb/MPIWGProjects.py 2012/01/09 10:36:48 1.47.2.125 +++ MPIWGWeb/MPIWGProjects.py 2013/05/16 12:10:57 1.47.2.130 @@ -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,6 +1068,7 @@ class MPIWGProject(CatalogAware,Folder,C def harvest_page(self,context=None,mode="normal"): """seite fuer harvesting fuer die Projektsuche""" + if not context: context=self @@ -1055,7 +1079,7 @@ class MPIWGProject(CatalogAware,Folder,C if ext: rendered = getattr(self,ext.getId())() templates[self.absolute_url()]=rendered - + transaction.commit() return rendered @@ -1063,7 +1087,7 @@ class MPIWGProject(CatalogAware,Folder,C rendered = pt() templates[self.absolute_url()]=rendered - + transaction.commit() return rendered @@ -1298,7 +1322,7 @@ class MPIWGProject(CatalogAware,Folder,C return True security.declareProtected('View management screens','edit') - def edit(self,western=None): + def editOldVersion(self,western=None): """Edit pages""" if western: self.REQUEST.RESPONSE.setCookie("MP_debug_code","western",path="/") @@ -1571,6 +1595,8 @@ class MPIWGProject(CatalogAware,Folder,C tmpList.append((unicodify(names[nr]),unicodify(keys.get(nr,"")))) self.responsibleScientistsList=tmpList + + self.reindex_object() if fromEdit and (RESPONSE is not None): #RESPONSE.redirect('./editMPIWGBasisEditor') return self.editMPIWGBasisEditor(identifiedNames=self.identifyNames(self.decode(self.REQUEST.get('xdata_01',''))))