Diff for /cdli/cdli_files.py between versions 1.2 and 1.3

version 1.2, 2005/11/28 12:31:56 version 1.3, 2005/12/08 17:11:31
Line 5  from tempfile import mkstemp,mkdtemp Line 5  from tempfile import mkstemp,mkdtemp
 import os.path  import os.path
 import os  import os
 from types import *  from types import *
   import urlparse
   
 class Basket(Folder):  class Basket(Folder):
     """shopping basket"""      """shopping basket"""
Line 12  class Basket(Folder): Line 13  class Basket(Folder):
     meta_type="Basket"      meta_type="Basket"
     _v_stack={}      _v_stack={}
   
       def getObjUrl(self,objId):
           """getUrl"""
           founds=self.CDLICatalog.search({'path':objId})
           if len(founds)>0:
                return founds[0].getObject().absolute_url()
            
           else: #assume version
               splitted=objId.split("_")
               founds=self.CDLICatalog.search({'path':splitted[1]})        
               return founds[0].getObject().absolute_url()+'/'+objId
           
     def storeAllLink(self,results):      def storeAllLink(self,results):
         """erzeuge link zum speicher aller results"""          """erzeuge link zum speicher aller results"""
         nr=self.REQUEST['_ZopeId']          nr=self.REQUEST['_ZopeId']
Line 225  def manage_addBasketObject(self,id,title Line 237  def manage_addBasketObject(self,id,title
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
       
 class CDLIFile(versionedFile,CatalogAware):  
     """CDLI file"""  
       
     meta_type="CDLI file"  
     default_catalog='CDLICatalog'  
   
       
           
 def manage_addCDLIFileForm(self):  
     """interface for adding the OSAS_root"""  
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addCDLIFile.zpt')).__of__(self)  
     return pt()  
   
 def manage_addCDLIFile(self,id,title,lockedBy, author=None, RESPONSE=None):  
     """add the OSAS_root"""  
     newObj=CDLIFile(id,title,lockedBy,author)  
     self._setObject(id,newObj)  
      
     if RESPONSE is not None:  
         RESPONSE.redirect('manage_main')  
   
   
 class CDLIFileObject(versionedFileObject):  class CDLIFileObject(versionedFileObject):
     """CDLI file object"""      """CDLI file object"""
           
     meta_type="CDLI File Object"      meta_type="CDLI File Object"
           
           
     def view(self):      def view(self):
         """view file"""          """view file"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','viewCDLIFile.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','viewCDLIFile.zpt')).__of__(self)
Line 292  def manage_addCDLIFileObject(self,id,vC= Line 282  def manage_addCDLIFileObject(self,id,vC=
     if REQUEST is not None:      if REQUEST is not None:
         REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main')          REQUEST['RESPONSE'].redirect(self.absolute_url()+'/manage_main')
   
   class CDLIFile(versionedFile,CatalogAware):
       """CDLI file"""
       
       meta_type="CDLI file"
       default_catalog='CDLICatalog'
   
       def manage_addCDLIFileObject(self,id,vC,author,file='',title='',precondition='', content_type='',changeName='no',newName='', RESPONSE=None):
           """add"""
           try: #TODO: der ganze vC unsinn muss ueberarbeitet werden
               vC=self.REQUEST['vC']
           except:
               pass
           
           author=self.REQUEST['author']
           
           if changeName=="yes":
               filename=file.filename
               self.title=filename[max(filename.rfind('/'),
                           filename.rfind('\\'),
                           filename.rfind(':'),
                           )+1:]
   
   
           if not newName=='':
               self.title=newName[0:]
           
           
   
           
           
           positionVersionNum=getattr(self,'positionVersionNum','front')
           
           if positionVersionNum=='front':
               id="V%i"%self.getVersion()+"_"+self.title
           else:
               tmp=os.path.splitext(self.title)
               if len(tmp)>1:
                   id=tmp[0]+"_V%i"%self.getVersion()+tmp[1]
               else:
                   id=tmp[0]+"_V%i"%self.getVersion()
               
           
           manage_addCDLIFileObject(self,id,vC,author,file,id,precondition, content_type)
           objs=self.ZopeFind(self,obj_ids=[id])[0][1].setVersionNumber(int(self.getVersion()))
           self.REQUEST.SESSION['objID_parent']=self.getId()
   
           if RESPONSE:
               obj=self.ZopeFind(self,obj_ids=[id])[0][1]
               if obj.getSize()==0:
                   self.REQUEST.SESSION['objID']=obj.getId()
                   pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','errorUploadFile')).__of__(self)
                   return pt()
   
               else:
                   RESPONSE.redirect(self.REQUEST['URL2'])
   
           else:
               return self.ZopeFind(self,obj_ids=[id])[0][1]
           
           
   def manage_addCDLIFileForm(self):
       """interface for adding the OSAS_root"""
       pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addCDLIFile.zpt')).__of__(self)
       return pt()
   
   def manage_addCDLIFile(self,id,title,lockedBy, author=None, RESPONSE=None):
       """add the OSAS_root"""
       newObj=CDLIFile(id,title,lockedBy,author)
       self._setObject(id,newObj)
      
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
   
   
   
   
 def splitatf(fh,dir=None):  def splitatf(fh,dir=None):
     """split it"""      """split it"""
Line 322  class CDLIFileFolder(versionedFileFolder Line 387  class CDLIFileFolder(versionedFileFolder
     folderMetaType=['CDLI Folder']      folderMetaType=['CDLI Folder']
     default_catalog='CDLICatalog'      default_catalog='CDLICatalog'
           
     def uploadATF(self,upload,comment="",RESPONSE=None):      def uploadATF(self,upload,RESPONSE=None):
         """upload an atf file"""          """upload an atf file"""
           #TODO: add comments
         #TODO: finish uploadATF          #TODO: finish uploadATF
         dir=mkdtemp()          dir=mkdtemp()
         changed=[]          changed=[]
         errors=[]          errors=[]
           newPs=[]
         splitatf(upload,dir)          splitatf(upload,dir)
   
         for fn in os.listdir(dir):          for fn in os.listdir(dir):
             founds=self.CDLICatalog.search({'path':fn})                  founds=self.CDLICatalog.search({'path':fn})    
               if len(founds)==0:
                   newPs.append(fn)
           
             for found in founds:              for found in founds:
                 obj=found.getObject()                  obj=found.getObject()
Line 345  class CDLIFileFolder(versionedFileFolder Line 414  class CDLIFileFolder(versionedFileFolder
                         changed.append((obj,diffs))                          changed.append((obj,diffs))
                         #hochladen                          #hochladen
                   
           self.REQUEST.SESSION['changed']=[x[0].getId() for x in changed]
           self.REQUEST.SESSION['errors']=[x.getId() for x in errors]
           self.REQUEST.SESSION['newPs']=newPs
           self.REQUEST.SESSION['tmpdir']=dir
                   
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadCheck.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','uploadCheck.zpt')).__of__(self)
         return pt(changed=changed,errors=errors,dir=dir)          return pt(changed=changed,errors=errors,dir=dir,newPs=newPs)
                       
       def uploadATFfinally(self,procedure,comment="",unlock=None,RESPONSE=None):
           """upload the files"""
           
           if procedure=="uploadchanged":
               uploadFns=self.REQUEST.SESSION['changed']+self.REQUEST.SESSION['newPs']
           
           elif procedure=="uploadAll":
               uploadFns=[]
               for x in os.listdir(self.REQUEST.SESSION['tmpdir']):
                   if not x in self.REQUEST.SESSION['errors']:
                       uploadFns.append(x)
           else:
               uploadFns=[]
               
           for fn in uploadFns:
               founds=self.CDLICatalog.search({'path':fn})
               if len(founds)>0:
                   self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER'])
                   founds[0].getObject().manage_addCDLIFileObject('',comment,self.REQUEST['author'],file=file(os.path.join(self.REQUEST.SESSION['tmpdir'],fn)))
               
           
                                           
           newPs=self.REQUEST.SESSION['newPs']
           if len(newPs)>0:
               tmpDir=self.REQUEST.SESSION['tmpdir']
           
               self.cdli_main.importFiles(comment=comment,author=str(self.REQUEST['AUTHENTICATED_USER']) ,folderName=tmpDir, files=newPs)
                   
           
           
           #unlock
           if unlock:
               unlockFns=[]
               for x in os.listdir(self.REQUEST.SESSION['tmpdir']):
                       if not x in self.REQUEST.SESSION['errors']:
                           unlockFns.append(x)
               
               for fn in unlockFns:
                   founds=self.CDLICatalog.search({'path':fn})
                   if len(founds)>0:
                       self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER'])
                      
                       founds[0].getObject().lockedBy=""
                       
           if RESPONSE is not None:
               RESPONSE.redirect(self.aq_parent.absolute_url())
                   
                   
     def findObjectsFromList(self,upload,RESPONSE):      def findObjectsFromList(self,upload,RESPONSE):
Line 442  class CDLIFileFolder(versionedFileFolder Line 561  class CDLIFileFolder(versionedFileFolder
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','CDLIFileFolderMain')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','CDLIFileFolderMain')).__of__(self)
         return pt()          return pt()
           
     def importFiles(self,comment="",author="" ):      def importFiles(self,comment="",author="" ,folderName="/Users/dwinter/Documents/workspace/cdli/atf", files=None):
         """import files"""          """import files"""
         folderName="/Users/dwinter/Documents/workspace/cdli/atf"  
                   
           if not files:
         files=os.listdir(folderName)          files=os.listdir(folderName)
               
         for f in files:          for f in files:
             folder=f[0:3]              folder=f[0:3]
             f2=f[0:5]              f2=f[0:5]
Line 468  class CDLIFileFolder(versionedFileFolder Line 588  class CDLIFileFolder(versionedFileFolder
             else:              else:
                 fobj2=obj2[0][1]                  fobj2=obj2[0][1]
                               
             print f  
             file2=file(os.path.join(folderName,f))                 file2=file(os.path.join(folderName,f))   
             id=f              id=f
             manage_addCDLIFile(fobj2,f,'','')              manage_addCDLIFile(fobj2,f,'','')
Line 477  class CDLIFileFolder(versionedFileFolder Line 596  class CDLIFileFolder(versionedFileFolder
             ob.title=id              ob.title=id
                           
             manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='')              manage_addCDLIFileObject(ob,id,comment,author,file2,content_type='')
               self.CDLICatalog.catalog_object(ob)
               #self.CDLICatalog.manage_catalogFoundItems(obj_ids=[id],search_sub=1)
               #self.CDLICatalog.manage_catalogObject(self.REQUEST, self.REQUEST.RESPONSE, 'CDLICatalog', urlparse.urlparse(ob.absolute_url())[1])
           
         return "ok"          return "ok"
       
 manage_addCDLIFileFolderForm=DTMLFile('dtml/folderAdd', globals())  manage_addCDLIFileFolderForm=DTMLFile('dtml/folderAdd', globals())
   
           

Removed from v.1.2  
changed lines
  Added in v.1.3


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