Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.39 and 1.42

version 1.39, 2004/10/21 14:28:09 version 1.42, 2004/11/16 14:51:54
Line 1 Line 1
 """This contains the class MPIWG Projects  """This contains the class MPIWG Projects
 for organizing and maintaining the different projectspages  for organizing and maintaining the different project pages
   
 """  """
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
Line 13  import string Line 13  import string
 import re  import re
 import os  import os
 from types import *  from types import *
   import zLOG
 import xmlhelper # Methoden zur Verwaltung der projekt xmls  import xmlhelper # Methoden zur Verwaltung der projekt xmls
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from OFS.Folder import Folder  from OFS.Folder import Folder
   
 from bibliography import *  from bibliography import *
   import time
   
 definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']  definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']
   
Line 145  class MPIWGRoot(ZSQLExtendFolder): Line 146  class MPIWGRoot(ZSQLExtendFolder):
         """updates SQL databases using fm.jar"""          """updates SQL databases using fm.jar"""
         fmJarPath=os.path.join(package_home(globals()), 'updateSQL/fm.jar')          fmJarPath=os.path.join(package_home(globals()), 'updateSQL/fm.jar')
         xmlPath=os.path.join(package_home(globals()), "updateSQL/%s"%fileName)          xmlPath=os.path.join(package_home(globals()), "updateSQL/%s"%fileName)
           zLOG.LOG("MPIWG Web",zLOG.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath))
         os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read()          ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,xmlPath),"r").read()
       zLOG.LOG("MPIWG Web",zLOG.INFO,"result convert: %s"%ret)
         return 1          return 1
           
     def patchProjects(self,RESPONSE):      def patchProjects(self,RESPONSE):
Line 397  class MPIWGRoot(ZSQLExtendFolder): Line 398  class MPIWGRoot(ZSQLExtendFolder):
                                   
         for object in objects:          for object in objects:
             obj=object[1]              obj=object[1]
   
               if not getattr(obj,'invisible',None):
             if fieldName=="WEB_title_or_short":              if fieldName=="WEB_title_or_short":
                                               
                 if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer                  if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer
Line 534  class MPIWGRoot(ZSQLExtendFolder): Line 537  class MPIWGRoot(ZSQLExtendFolder):
         """generate Tree from project list"""          """generate Tree from project list"""
         returnList=[]          returnList=[]
         for project in self.getProjectFields('xdata_05',sort="int"): # get Projects sorted by xdata_05          for project in self.getProjectFields('xdata_05',sort="int"): # get Projects sorted by xdata_05
   
             for idNr in project[1].split(";"): # more than one number              for idNr in project[1].split(";"): # more than one number
                 if not idNr=="":                  if not idNr=="":
                     splittedId=idNr.split(".")                      splittedId=idNr.split(".")
Line 726  class MPIWGRoot(ZSQLExtendFolder): Line 730  class MPIWGRoot(ZSQLExtendFolder):
             proj2=[]              proj2=[]
             for x in proj:              for x in proj:
                             
                   if not getattr(x.getObject(),'invisible',None):
                 if not((splitted[1]==" Christoph") and (splitted[0]=="Hoffmann") and (str(x.WEB_title).find('Einstein')>0)):                  if not((splitted[1]==" Christoph") and (splitted[0]=="Hoffmann") and (str(x.WEB_title).find('Einstein')>0)):
                          
                        #print repr(splitted[1]),repr(splitted[0]),repr(x.WEB_title)  
                        proj2.append(x)                         proj2.append(x)
         #    proj2.sort(sortP)  
         #    ret.append((y,proj2))  
         else:          else:
             proj2=[]              proj2=[]
                           
Line 739  class MPIWGRoot(ZSQLExtendFolder): Line 741  class MPIWGRoot(ZSQLExtendFolder):
         if proj:          if proj:
             names=[x.WEB_title for x in proj]              names=[x.WEB_title for x in proj]
             for x in proj:              for x in proj:
   
                 if not x.WEB_title in names:                  if not x.WEB_title in names:
                     proj2.append(x)                      proj2.append(x)
   
Line 847  class MPIWGProject(Folder): Line 850  class MPIWGProject(Folder):
     meta_type='MPIWGProject'      meta_type='MPIWGProject'
   
         
       def versionHeader(self):
           """version Header, gibt header text entsprechend der aktuellen version aus"""
           
           actualTime=time.localtime()
           retTXT="""<h2>This is an outdated version, for the actual version please refer to <a href="%s">%s</a></h2>"""
           s=self.aq_parent.absolute_url()
           print getattr(self,'archiveTime',actualTime)
           if getattr(self,'archiveTime',actualTime)< actualTime:
               return retTXT%(s,s)
           else:
               return ""
           
       def copyObjectToArchive(self):
           """kopiere aktuelles objekt ins archiv"""
           cb=self.aq_parent.manage_copyObjects(self.getId())
           self.manage_pasteObjects(cb)
           actualTime=time.localtime()
           
           self.manage_renameObject(self.getId(),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))
           ids=[x[0] for x in self.ZopeFind(obj,obj_metatypes=['MPIWGProject'])]
           obj.manage_delObjects(ids)
           
       def setArchiveTime(self,time):
           """set Archive Time"""
           self.archiveTime=time[0:]
           
       def versionManageForm(self):
           """version Manage form:currently only set to invisible"""
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_versionManageForm.zpt')).__of__(self)
           return pt()
   
       def versionManage(self,invisible=None,RESPONSE=None):
           """version Manage form:currently only set to invisible"""
           self.invisible=invisible
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
      
     def crossLinker(self):      def crossLinker(self):
         """experimental crosslinker"""          """experimental crosslinker"""
         splitted=self.WEB_project_description[0].split()          splitted=self.WEB_project_description[0].split()
Line 903  class MPIWGProject(Folder): Line 947  class MPIWGProject(Folder):
         {'label':'Edit BasisInfo','action':'editMPIWGBasisForm'},          {'label':'Edit BasisInfo','action':'editMPIWGBasisForm'},
         {'label':'Edit Publications','action':'editMPIWGRelatedPublicationsForm'},          {'label':'Edit Publications','action':'editMPIWGRelatedPublicationsForm'},
         {'label':'Edit Themes & Disciplines','action':'editMPIWGDisciplinesThemesForm'},          {'label':'Edit Themes & Disciplines','action':'editMPIWGDisciplinesThemesForm'},
           {'label':'Versionmanager','action':'versionManageForm'},
         )          )
   
   
       def checkDate(self,date):
           """teste ob zum Zeitpunkt date eine andere version existierte"""
           
   
           def sortProjectsByTime(x,y):
               return cmp(x[1].archiveTime,y[1].archiveTime)
           
           finds=self.ZopeFind(self,obj_metatypes=['MPIWGProject'])
           if not finds:
               return self.absolute_url()
           else:
               finds.sort(sortProjectsByTime)
   
           for find in finds:
               if int(find[1].archiveTime) > int(date):
                   return find[1].absolute_url()
   
           return self.absolute_url()
           
               
               
     def index_html(self):      def index_html(self):
         """show homepage"""          """show homepage"""
           
           if self.REQUEST.has_key('date') and self.REQUEST.SESSION.get('MPI_redirected',None)==None:
               self.REQUEST.SESSION['MPI_redirected']=1
               self.REQUEST.RESPONSE.redirect(self.checkDate(self.REQUEST['date']))
           else:
               self.REQUEST.SESSION['MPI_redirected']=None
           
     ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])      ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])
   
         if ext:          if ext:
Line 988  class MPIWGProject(Folder): Line 1061  class MPIWGProject(Folder):
         return pt()          return pt()
   
     def editMPIWGProject(self,RESPONSE=None):      def editMPIWGProject(self,RESPONSE=None):
         """edit the project"""          """edit the project and archive the old version"""
           
           self.copyObjectToArchive() # archive the object
   
   
         #return self.REQUEST  
         for x in definedFields:          for x in definedFields:
             if self.REQUEST.has_key(x):              if self.REQUEST.has_key(x):
                                   
                 setattr(self,x,[self.REQUEST[x].decode('utf-8')])                  setattr(self,x,[self.REQUEST[x].decode('utf-8')])
                           
   
           
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   

Removed from v.1.39  
changed lines
  Added in v.1.42


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