--- MPIWGWeb/MPIWGProjects.py 2010/07/23 17:30:38 1.47.2.116 +++ MPIWGWeb/MPIWGProjects.py 2010/09/13 11:23:58 1.47.2.117 @@ -25,6 +25,7 @@ from AccessControl import getSecurityMan from bibliography import * import time from OFS.Cache import Cacheable +import xmlrpclib #import xml.dom.minidom import sys #from Ft.Xml.XPath import Evaluate @@ -72,7 +73,42 @@ class MPIWGProject_publication(Folder): logging.debug(email.Utils.formatdate()+' GMT') RESPONSE.redirect(url+addStr%timeStamp) - def editPublication(self,text=None,image1=None,image2=None,description=None,RESPONSE=None): + def hasLinkToBookPage(self): + """teste ob eingebener link zu einer MPIWG Book page geht""" + + if (getattr(self,'link','')==''): + return False #es gibt keinen link + + server = xmlrpclib.ServerProxy(self.link) + + try: + server.getImageUrls() + return True + except: + return False + + + def getImageUrls(self): + """get the image urls""" + + if (getattr(self,'link','')==''): + return False #es gibt keinen link + + server = xmlrpclib.ServerProxy(self.link) + + try: + urls = server.getImageUrls() + ret=[] + for url in urls: + url = os.path.join(self.link,url) + ret.append(url) + + except: + return [] + + return ret + + def editPublication(self,text=None,image1=None,image2=None,description=None,link=None,RESPONSE=None): """edit a publication""" if (not text) and (not description): @@ -80,8 +116,14 @@ class MPIWGProject_publication(Folder): return pt() - self.text=text[0:] - self.description=description + if text: + self.text=text[0:] + + if description: + self.description=description + + if link: + self.link=link[0:] if image1: if hasattr(self,'publicationImage1'): @@ -99,7 +141,7 @@ class MPIWGProject_publication(Folder): if RESPONSE: - self.redirect(RESPONSE,"../managePublications") + self.redirect(RESPONSE,"../managePublications") class MPIWGProject_image(Image): """Images for Projects""" @@ -131,7 +173,7 @@ class MPIWGProject(CatalogAware,Folder,C """Class for Projects""" def _p_resolveConflict(self, oldState, savedState, newState): - return newState + return newState security=ClassSecurityInfo() meta_type='MPIWGProject' @@ -177,10 +219,45 @@ class MPIWGProject(CatalogAware,Folder,C pubSplit=pubSplit.replace("

","") self.addPublication(pubSplit) + setattr(self,"WEB_related_pub_copied",True); + if RESPONSE: - + self.redirect(RESPONSE,'managePublications') + def hasRelatedPublicationsOldVersion(self): + """teste ob es related publications gibt""" + + ret = True; + if (self.getContent('WEB_related_pub')==''): + ret=False; #nichts im alten feld + logging.debug("webrel:"+repr(ret)) + if (getattr(self,'WEB_related_pub_copied',False)): + ret=False; # alte daten sind schon kopiert worden + + logging.debug("webrel_copied:"+repr(ret)) + publications=self.ZopeFind(self,obj_metatypes=['MPIWGProject_publication']); + + if(len(publications)>0): + ret=False; # es gibt publicationen in der neuen liste + + + logging.debug("len(publ)"+repr(ret)) + + return ret; + + def hasRelatedDigitalSources(self): + """test ob es digital sources gibt""" + + + ret = (self.getContent('xdata_11')=='' and self.getContent('xdata_13')=='') + + + + return not ret; + + + def copyImageToMargin(self,RESPONSE=None): """copy inline images to marginal images""" @@ -248,7 +325,7 @@ class MPIWGProject(CatalogAware,Folder,C obj.update_data(data) if RESPONSE: - + self.redirect(RESPONSE,'manageImages') def manageImages(self,imageName=None,op=None): @@ -328,7 +405,7 @@ class MPIWGProject(CatalogAware,Folder,C if RESPONSE: - self.redirect(RESPONSE,"managePublications") + self.redirect(RESPONSE,"managePublications") def getPublications(self): @@ -356,7 +433,7 @@ class MPIWGProject(CatalogAware,Folder,C obj.id=name if RESPONSE is not None: - + self.redirect(RESPONSE,'managePublications') @@ -372,7 +449,7 @@ class MPIWGProject(CatalogAware,Folder,C """delete Publication id""" self.manage_delObjects([id]) if RESPONSE: - + self.redirect(RESPONSE,'managePublications') def getImages(self): @@ -410,7 +487,7 @@ class MPIWGProject(CatalogAware,Folder,C except: logging.error("ERROR MPIWG: %s %s"%sys.exc_info()[0:2]) if RESPONSE: - self.redirect(RESPONSE,'manageImages') + self.redirect(RESPONSE,'manageImages') @@ -537,10 +614,10 @@ class MPIWGProject(CatalogAware,Folder,C def setArchiveTime(self,time): """set Archive Time""" self.archiveTime=time[0:] - + def delArchiveTime(self): - """delete archive time""" - del self.archiveTime + """delete archive time""" + del self.archiveTime def versionManageForm(self): """version Manage form:currently only set to invisible""" @@ -552,7 +629,7 @@ class MPIWGProject(CatalogAware,Folder,C self.invisible=invisible if RESPONSE is not None: - + self.redirect(RESPONSE,'manage_main') @@ -674,12 +751,12 @@ class MPIWGProject(CatalogAware,Folder,C else: return "" # test ob parent abgeschlossen ist - try: #TODO: ersetzte try except durch vernuenftige abfrage + 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 ''; - except: + except: return ''; def getStartedAt(self): @@ -903,11 +980,11 @@ class MPIWGProject(CatalogAware,Folder,C """Inhalt des Feldes""" #logging.debug("getContent field=%s filter=%s"%(field,filter)) - if field=="short_title": - text = self.getContent("xdata_07") - if text=="": - text = self.getContent("WEB_title") - return text + if field=="short_title": + text = self.getContent("xdata_07") + if text=="": + text = self.getContent("WEB_title") + return text text=u''