Diff for /cdli/cdli_files.py between versions 1.75 and 1.79

version 1.75, 2007/03/23 17:15:36 version 1.79, 2007/08/31 14:22:52
Line 26  import logging Line 26  import logging
 import transaction  import transaction
 import copy  import copy
 import codecs  import codecs
   import sys
   
   def unicodify(s):
       """decode str (utf-8 or latin-1 representation) into unicode object"""
       if not s:
           return u""
       if isinstance(s, str):
           try:
               return s.decode('utf-8')
           except:
               return s.decode('latin-1')
       else:
           return s
   
   def utf8ify(s):
       """encode unicode object or string into byte string in utf-8 representation.
          assumes string objects to be utf-8"""
       if not s:
           return ""
       if isinstance(s, str):
           return s
       else:
           return s.encode('utf-8')
   
   
 def generateXMLReturn(hash):  def generateXMLReturn(hash):
     """erzeugt das xml file als returnwert fuer uploadATFRPC"""      """erzeugt das xml file als returnwert fuer uploadATFRPC"""
Line 530  class CDLIBasketContainer(OrderedFolder) Line 554  class CDLIBasketContainer(OrderedFolder)
                   
         return ret          return ret
           
       security.declareProtected('manage','getBasketAsOneFile')       
     def getBasketAsOneFile(self,basketName,current="no"):      def getBasketAsOneFile(self,basketName,current="no"):
         """returns all files of the basket combined in one file          """returns all files of the basket combined in one file
         @param basketName: Name of the basket          @param basketName: Name of the basket
Line 553  class CDLIBasketContainer(OrderedFolder) Line 578  class CDLIBasketContainer(OrderedFolder)
                                 ret+=str(founds[0].getObject().getLastVersion().getData())+"\n"                                  ret+=str(founds[0].getObject().getLastVersion().getData())+"\n"
         return ret          return ret
           
       security.declareProtected('manage','upDateBaskets') 
     def upDateBaskets(self):      def upDateBaskets(self):
         """update content in to objects"""          """update content in to objects"""
                   
Line 623  class CDLIBasketContainer(OrderedFolder) Line 649  class CDLIBasketContainer(OrderedFolder)
         return pt(basketId=basketId,basketName=basketName)          return pt(basketId=basketId,basketName=basketName)
         
   
     security.declareProtected('View','index_html')          security.declareProtected('manage','index_html')    
     def index_html(self):      def index_html(self):
         """stanadard ansicht"""          """stanadard ansicht"""
                   
Line 827  class CDLIBasketContainer(OrderedFolder) Line 853  class CDLIBasketContainer(OrderedFolder)
         """get name of the actualuser"""          """get name of the actualuser"""
         return str(self.REQUEST['AUTHENTICATED_USER'])          return str(self.REQUEST['AUTHENTICATED_USER'])
           
           security.declareProtected('manage','addBasket') 
     def addBasket(self,newBasketName):      def addBasket(self,newBasketName):
         """add a new basket"""          """add a new basket"""
                   
Line 886  class CDLIBasket(Folder,CatalogAware): Line 912  class CDLIBasket(Folder,CatalogAware):
     def searchInBasket(self,indexName,searchStr,regExp=False):      def searchInBasket(self,indexName,searchStr,regExp=False):
         """searchInBasket"""          """searchInBasket"""
   
         lst=self.searchInLineIndexDocs(indexName,searchStr,uniq=True,regExp=False)          lst=self.searchInLineIndexDocs(indexName,searchStr,uniq=True,regExp=regExp)
         ret={}          ret={}
                   
         lv=self.getLastVersion()          lv=self.getLastVersion()
         logging.info("searching")  
   
         for obj in lv.content.getContent():          for obj in lv.content.getContent():
             id=obj[1].getId().split(".")[0]              id=obj[1].getId().split(".")[0]
             if id in lst:              if id in lst:
Line 1239  class CDLIBasketVersion(Implicit,Persist Line 1266  class CDLIBasketVersion(Implicit,Persist
         self.REQUEST.RESPONSE.setHeader("Content-Length",length)          self.REQUEST.RESPONSE.setHeader("Content-Length",length)
         self.REQUEST.RESPONSE.write(ret)              self.REQUEST.RESPONSE.write(ret)    
                   
     security.declareProtected('View','downloadObjectsAsOneFile')      security.declareProtected('manage','downloadObjectsAsOneFile')
     def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None,check="yes",current="no"):      def downloadObjectsAsOneFile(self,lock=None,procedure=None,REQUEST=None,check="yes",current="no"):
         """download all selected files in one file"""          """download all selected files in one file"""
                   
Line 1371  class CDLIBasketVersion(Implicit,Persist Line 1398  class CDLIBasketVersion(Implicit,Persist
         """get Comment"""          """get Comment"""
         return self.comment          return self.comment
     
     security.declareProtected('View','index_html')      security.declareProtected('manage','index_html')
     def index_html(self):      def index_html(self):
             """view the basket"""              """view the basket"""
   
Line 1426  class CDLIFileObject(CatalogAware,extVer Line 1453  class CDLIFileObject(CatalogAware,extVer
     
     security.declarePublic('makeThisVersionCurrent')      security.declarePublic('makeThisVersionCurrent')
           
       security.declareProtected('manage','index_html')
     def PrincipiaSearchSource(self):      def PrincipiaSearchSource(self):
            """Return cataloguable key for ourselves."""             """Return cataloguable key for ourselves."""
            return str(self)             return str(self)
Line 1534  def manage_addCDLIFileObject(self,id,vC= Line 1562  def manage_addCDLIFileObject(self,id,vC=
 class CDLIFile(extVersionedFile,CatalogAware):  class CDLIFile(extVersionedFile,CatalogAware):
     """CDLI file"""      """CDLI file"""
           
       security=ClassSecurityInfo()
     meta_type="CDLI file"      meta_type="CDLI file"
     default_catalog='CDLICatalog'      default_catalog='CDLICatalog'
           security.declareProtected('manage','index_html')
     #security.declarePublic('history')      #security.declarePublic('history')
     def getLastVersionData(self):      def getLastVersionData(self):
         """get last version data"""          """get last version data"""
Line 1988  class CDLIFileFolder(extVersionedFileFol Line 2017  class CDLIFileFolder(extVersionedFileFol
         return ret          return ret
           
                           
     security.declareProtected('View','index_html')      security.declareProtected('manage','index_html')
     def index_html(self):      def index_html(self):
         """main"""          """main"""
         ext=self.ZopeFind(self,obj_ids=["index.html"])          ext=self.ZopeFind(self,obj_ids=["index.html"])
Line 2083  class CDLIRoot(Folder): Line 2112  class CDLIRoot(Folder):
         words=self.findWordRegExp(indexName,searchTerm) # suche nach allen Treffern          words=self.findWordRegExp(indexName,searchTerm) # suche nach allen Treffern
         logging.info("wd:%s"%words)          logging.info("wd:%s"%words)
         for word in words:          for word in words:
   
             ret+=self.searchInLineIndexDocs(indexName,word)              ret+=self.searchInLineIndexDocs(indexName,word)
                   
         return unique(ret)  
           x= unique(ret)
       logging.info("words_done")
           return x
                   
     def showInLineIndex(self):      def showInLineIndex(self):
         """get the index for debug purposes"""          """get the index for debug purposes"""
Line 2209  class CDLIRoot(Folder): Line 2242  class CDLIRoot(Folder):
         """get lines with word  fromFileId"""          """get lines with word  fromFileId"""
                   
         file=self.showFile(fileId)          file=self.showFile(fileId)
       logging.info("regEXP %s"%regExp)
         ret=[]          ret=[]
         if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen          if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen
             wordlist=self.findWordRegExp(indexName,word)              wordlist=self.findWordRegExp(indexName,word)
Line 2219  class CDLIRoot(Folder): Line 2252  class CDLIRoot(Folder):
         for line in file.split("\n"):          for line in file.split("\n"):
             found=False              found=False
             for word in wordlist:              for word in wordlist:
           try: # just a hack because of possible unicode errors in line
                 if line.find(word)>-1:                  if line.find(word)>-1:
                         if lineList: #liste of moeglichen Zeilennummern                          if lineList: #liste of moeglichen Zeilennummern
                                 num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile                                  num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile
Line 2230  class CDLIRoot(Folder): Line 2264  class CDLIRoot(Folder):
                                 ret.append(line)                                  ret.append(line)
                                                   
                         break;                          break;
           except:
               pass
         return ret          return ret
   
     def tagWordInFile(self,fileId,word,lineList=None,regExp=True,indexName=""):      def tagWordInFile(self,fileId,word,lineList=None,regExp=True,indexName=""):
         """get lines with word  fromFileId"""          """get lines with word  fromFileId"""
                   
         file=self.showFile(fileId)          file=self.showFile(fileId)
         tagStr="""<span class="found">%s</span>"""          tagStr=u'<span class="found">%s</span>'
         ret=[]          ret=[]
                   
         if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen          if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen
Line 2245  class CDLIRoot(Folder): Line 2281  class CDLIRoot(Folder):
             wordlist=[word]              wordlist=[word]
                           
         for line in file.split("\n"):          for line in file.split("\n"):
               line = unicodify(line)
             found=False              found=False
             for word in wordlist:              for word in wordlist:
                 if line.find(word)>-1: #word ist gefunden dann makiere und breche die Schleife ab                  if line.find(word)>-1: #word ist gefunden dann makiere und breche die Schleife ab
Line 2262  class CDLIRoot(Folder): Line 2299  class CDLIRoot(Folder):
             if not found: #word wurde nicht gefunden keine makierung              if not found: #word wurde nicht gefunden keine makierung
                         ret.append(line)                          ret.append(line)
                                                   
         return "<br>\n".join(ret)          return u'<br>\n'.join(ret)
   
     def URLquote(self,str):      def URLquote(self,str):
         """quote url"""          """quote url"""

Removed from v.1.75  
changed lines
  Added in v.1.79


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