Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.117 and 1.48

version 1.47.2.117, 2010/09/13 11:23:58 version 1.48, 2009/02/18 13:01:17
Line 25  from AccessControl import getSecurityMan Line 25  from AccessControl import getSecurityMan
 from bibliography import *  from bibliography import *
 import time  import time
 from OFS.Cache import Cacheable  from OFS.Cache import Cacheable
 import xmlrpclib  
 #import xml.dom.minidom  #import xml.dom.minidom
 import sys  import sys
 #from Ft.Xml.XPath import Evaluate  #from Ft.Xml.XPath import Evaluate
Line 73  class MPIWGProject_publication(Folder): Line 72  class MPIWGProject_publication(Folder):
         logging.debug(email.Utils.formatdate()+' GMT')          logging.debug(email.Utils.formatdate()+' GMT')
         RESPONSE.redirect(url+addStr%timeStamp)          RESPONSE.redirect(url+addStr%timeStamp)
   
     def hasLinkToBookPage(self):      def editPublication(self,text=None,image1=None,image2=None,description=None,RESPONSE=None):
         """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"""          """edit a publication"""
   
         if (not text) and (not description):          if (not text) and (not description):
Line 116  class MPIWGProject_publication(Folder): Line 80  class MPIWGProject_publication(Folder):
             return pt()              return pt()
   
                 
         if text:  
             self.text=text[0:]              self.text=text[0:]
           
         if description:  
             self.description=description              self.description=description
                   
         if link:  
             self.link=link[0:]  
           
         if image1:          if image1:
             if hasattr(self,'publicationImage1'):              if hasattr(self,'publicationImage1'):
                 self.publicationImage1.manage_upload(image1)                  self.publicationImage1.manage_upload(image1)
Line 167  class MPIWGProject_image(Image): Line 125  class MPIWGProject_image(Image):
             self.caption=caption[0:]              self.caption=caption[0:]
   
         if RESPONSE:          if RESPONSE:
       
             self.redirect(RESPONSE,"../manageImages")              self.redirect(RESPONSE,"../manageImages")
   
 class MPIWGProject(CatalogAware,Folder,Cacheable):  class MPIWGProject(CatalogAware,Folder,Cacheable):
     """Class for Projects"""      """Class for Projects"""
           
     def _p_resolveConflict(self, oldState, savedState, newState):  
         return newState  
   
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
     meta_type='MPIWGProject'      meta_type='MPIWGProject'
Line 219  class MPIWGProject(CatalogAware,Folder,C Line 176  class MPIWGProject(CatalogAware,Folder,C
             pubSplit=pubSplit.replace("</p>","")              pubSplit=pubSplit.replace("</p>","")
             self.addPublication(pubSplit)              self.addPublication(pubSplit)
   
         setattr(self,"WEB_related_pub_copied",True);  
           
         if RESPONSE:          if RESPONSE:
                                   
             self.redirect(RESPONSE,'managePublications')              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):        def copyImageToMargin(self,RESPONSE=None):  
         """copy inline images to marginal images"""          """copy inline images to marginal images"""
Line 594  class MPIWGProject(CatalogAware,Folder,C Line 516  class MPIWGProject(CatalogAware,Folder,C
                   
     def copyObjectToArchive(self):      def copyObjectToArchive(self):
         """kopiere aktuelles objekt ins archiv"""          """kopiere aktuelles objekt ins archiv"""
         logging.info("copytoarchive 1")  
         cb=self.aq_parent.manage_copyObjects(self.getId())          cb=self.aq_parent.manage_copyObjects(self.getId())
         logging.info("copytoarchive 2")  
         self.manage_pasteObjects(cb)          self.manage_pasteObjects(cb)
         logging.info("copytoarchive 3")  
         actualTime=time.localtime()          actualTime=time.localtime()
                   
         self.manage_renameObject(self.getId(),self.getId()+"_"+time.strftime("%Y%m%d%H%M%S",actualTime))          self.manage_renameObject(self.getId(),self.getId()+"_"+time.strftime("%Y%m%d%H%M%S",actualTime))
         logging.info("copytoarchive 4")  
         obj=getattr(self,self.getId()+"_"+time.strftime("%Y%m%d%H%M%S",actualTime))          obj=getattr(self,self.getId()+"_"+time.strftime("%Y%m%d%H%M%S",actualTime))
         obj.setArchiveTime(time.strftime("%Y%m%d%H%M%S",actualTime))          obj.setArchiveTime(time.strftime("%Y%m%d%H%M%S",actualTime))
         logging.info("copytoarchive 5")  
         ids=[x[0] for x in self.ZopeFind(obj,obj_metatypes=['MPIWGProject'])]          ids=[x[0] for x in self.ZopeFind(obj,obj_metatypes=['MPIWGProject'])]
         logging.info("copytoarchive 6")  
         obj.manage_delObjects(ids)          obj.manage_delObjects(ids)
         logging.info("copytoarchive 7")  
                   
     def setArchiveTime(self,time):      def setArchiveTime(self,time):
         """set Archive Time"""          """set Archive Time"""
         self.archiveTime=time[0:]          self.archiveTime=time[0:]
                   
     def delArchiveTime(self):  
         """delete archive time"""  
         del self.archiveTime  
   
     def versionManageForm(self):      def versionManageForm(self):
         """version Manage form:currently only set to invisible"""          """version Manage form:currently only set to invisible"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_versionManageForm.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_versionManageForm.zpt')).__of__(self)
Line 760  class MPIWGProject(CatalogAware,Folder,C Line 671  class MPIWGProject(CatalogAware,Folder,C
                 return '';                  return '';
                   
     def getStartedAt(self):      def getStartedAt(self):
         """gibt das transformierte Datum zurueck, an dem Projekt begonnen wurde."""          """gibt das transformierte Datum zurŸck, an dem Projekt begonnen wurde."""
         date=getattr(self,'startedAt','')          date=getattr(self,'startedAt','')
         if date:          if date:
             return self.reTransformDate(date);              return self.reTransformDate(date);
Line 781  class MPIWGProject(CatalogAware,Folder,C Line 692  class MPIWGProject(CatalogAware,Folder,C
                   
                   
     def transformDate(self,date):      def transformDate(self,date):
         """transformiert ein Datum von DD.MM.YYYY, MM.YYYY,YYYY nach  YYYYMMDD, alle nicht angebenen Werte          """transformiert ein Datum von DD.MM.YYYY, MM.YYYY,YYYY nach  YYYYMMDD, alle nicht angebebenn Werte
         werden auf 0 gesetzt, es wird null zurueckgegeben falls das Datum ungueltig ist"""           werden auf 0 gesetzt, es wird null zurŸckgegeben falls das Datum ungueltig ist""" 
         
         if (date==None):          if (date==None):
             return None;              return None;
Line 906  class MPIWGProject(CatalogAware,Folder,C Line 817  class MPIWGProject(CatalogAware,Folder,C
         security = getSecurityManager()          security = getSecurityManager()
         bound_names['user'] = security.getUser()          bound_names['user'] = security.getUser()
               
         
         # Retrieve the value from the cache.          # Retrieve the value from the cache.
         keyset = None          keyset = None
         if self.ZCacheable_isCachingEnabled():          if self.ZCacheable_isCachingEnabled():
Line 924  class MPIWGProject(CatalogAware,Folder,C Line 836  class MPIWGProject(CatalogAware,Folder,C
         security.addContext(self)          security.addContext(self)
   
         try:          try:
             #logging.debug("index_html pt=%s"%repr(pt))  
             result = pt.pt_render(extra_context=bound_names)              result = pt.pt_render(extra_context=bound_names)
             #logging.debug("index_html result=%s"%repr(result))  
             if keyset is not None:              if keyset is not None:
                 # Store the result in the cache.                  # Store the result in the cache.
                 self.ZCacheable_set(result, keywords=keyset)                  self.ZCacheable_set(result, keywords=keyset)
Line 978  class MPIWGProject(CatalogAware,Folder,C Line 888  class MPIWGProject(CatalogAware,Folder,C
   
     def getContent(self,field,filter=None):      def getContent(self,field,filter=None):
         """Inhalt des Feldes"""          """Inhalt des Feldes"""
         #logging.debug("getContent field=%s filter=%s"%(field,filter))  
                   
         if field=="short_title":          if field=="short_title":
                 text = self.getContent("xdata_07")                  text = self.getContent("xdata_07")
Line 1088  class MPIWGProject(CatalogAware,Folder,C Line 997  class MPIWGProject(CatalogAware,Folder,C
                   
     def saveEditedContent(self,kupu=None,preview=None):      def saveEditedContent(self,kupu=None,preview=None):
         """save Edited content"""          """save Edited content"""
         #logging.debug("saveEditedContent kupu=%s preview=%s"%(kupu,preview))  
   
         if preview:          if preview:
             kupu=preview              kupu=preview
Line 1098  class MPIWGProject(CatalogAware,Folder,C Line 1006  class MPIWGProject(CatalogAware,Folder,C
         newcontent= kupu[start+6:end]          newcontent= kupu[start+6:end]
             
         if preview:          if preview:
               
             return self.preview(newcontent)              return self.preview(newcontent)
   
         self.copyObjectToArchive()          self.copyObjectToArchive()
Line 1179  class MPIWGProject(CatalogAware,Folder,C Line 1088  class MPIWGProject(CatalogAware,Folder,C
   
     def preview(self,description):      def preview(self,description):
         """preview"""          """preview"""
         #logging.debug("preview description=%s"%description)  
         tmpPro=getattr(self,"previewTemplate",None)          tmpPro=getattr(self,"previewTemplate",None)
         if not tmpPro:          if not tmpPro:
             tmpPro=MPIWGProject("previewTemplate")              tmpPro=MPIWGProject("previewTemplate")
Line 1188  class MPIWGProject(CatalogAware,Folder,C Line 1096  class MPIWGProject(CatalogAware,Folder,C
             setattr(tmpPro,field,getattr(self,field))              setattr(tmpPro,field,getattr(self,field))
         tmpPro.WEB_project_description=description[0:]          tmpPro.WEB_project_description=description[0:]
         tmpPro.invisible=True          tmpPro.invisible=True
         pt=PageTemplateFile('zpt/previewFrame.zpt',globals()).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','previewFrame.zpt')).__of__(self)
         return pt()          return pt()
   
         #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"/previewTemplate")          #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"/previewTemplate")
Line 1204  class MPIWGProject(CatalogAware,Folder,C Line 1112  class MPIWGProject(CatalogAware,Folder,C
             <head>              <head>
             <meta http-equiv="Content-Type" content="text/html; charset=utf-8">              <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
             </head>              </head>
             <body>%s</body>              <body>%s
             </html>              </html></body>
             """%self.WEB_project_description[0]              """%self.WEB_project_description[0]
                   
         return """          return """
Line 1213  class MPIWGProject(CatalogAware,Folder,C Line 1121  class MPIWGProject(CatalogAware,Folder,C
             <head>              <head>
             <meta http-equiv="Content-Type" content="text/html; charset=utf-8">              <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
             </head>              </head>
             <body>%s</body>              <body>%s
             </html>              </html></body>
             """%self.getContent('WEB_project_description')              """%self.getContent('WEB_project_description')
                   
                   
Line 1239  class MPIWGProject(CatalogAware,Folder,C Line 1147  class MPIWGProject(CatalogAware,Folder,C
             return False              return False
                   
     def getPersonKeyList(self):      def getPersonKeyList(self):
         """gibt die key Liste der beteiligten Personen zurueck (utf8 codiert)"""          """gibt die key Liste der beteiligten Personen zurŸck (utf8 codiert)"""
         #logging.error("getPersonKeyList:%s"%getattr(self,'responsibleScientistsList',[]))          #logging.error("getPersonKeyList:%s"%getattr(self,'responsibleScientistsList',[]))
         try:          try:
             return [utf8ify(x[1]) for x in getattr(self,'responsibleScientistsList',[])]              return [utf8ify(x[1]) for x in getattr(self,'responsibleScientistsList',[])]

Removed from v.1.47.2.117  
changed lines
  Added in v.1.48


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>