Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.51 and 1.55

version 1.51, 2004/11/28 21:56:31 version 1.55, 2005/01/23 15:16:12
Line 1 Line 1
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from Globals import Persistent  
 from Acquisition import Implicit  from Acquisition import Implicit
 from Globals import DTMLFile,package_home  from Globals import DTMLFile,package_home,Persistent
 import urllib  import urllib
 import re  import re
 import string  import string
 #from pyPgSQL import libpq  #from pyPgSQL import libpq
 from AccessControl import getSecurityManager  from AccessControl import getSecurityManager
 import os.path  
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   
 from Products.ZSQLMethods.SQL import SQLConnectionIDs  from Products.ZSQLMethods.SQL import SQLConnectionIDs
 import Shared.DC.ZRDB.DA  import Shared.DC.ZRDB.DA
   import zLOG
   import os.path
   import os
   
 def analyseIntSearch(word):  def analyseIntSearch(word):
     #analyse integer searches      #analyse integer searches
Line 399  class ZSQLExtendFolder(Folder,Persistent Line 401  class ZSQLExtendFolder(Folder,Persistent
   
         
   
     def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],**argv):      def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],restrictField='id_text',**argv):
         """find2"""          """find2"""
         #search1= self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt='cdli_translit',restrictField='id_text',NoQuery='yes',NoLimit='yes',**argv)  
   
           
         #search2 = self.ZSQLFind(tableExt='cdli_cat',qs="",select="oid,*",storename=None,restrictConnect=('cdli_cat.id_text',search1),**argv)  
   
         search1= self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt='cdli_cat',restrictField='id_text',NoQuery='yes',NoLimit='yes',**argv)          search1= self.ZSQLFind(qs=qs,select=select,storename=storename,tableExt=tableList[1],restrictField=restrictField,NoQuery='yes',NoLimit='yes',**argv)
   
         search2 = self.ZSQLFind(tableExt='cdli_translit',qs="",select="oid,*",storename=None,restrictConnect=('cdli_translit.id_text',search1),**argv)          search2 = self.ZSQLFind(tableExt=tableList[0],qs=qs,select=select,storename=storename,restrictConnect=(tableList[0]+"."+restrictField,search1),**argv)
         return search2          return search2
           
         #return self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt=None,NoQuery=None,**argv)        
           
     def ZSQLFind(self,qs="",select="oid,*",storename=None,tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None,**argv):      def ZSQLFind(self,qs="",select="oid,*",storename=None,tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None,**argv):
         """Find"""          """Find"""
Line 455  class ZSQLExtendFolder(Folder,Persistent Line 453  class ZSQLExtendFolder(Folder,Persistent
                                         
                    qs+=",%s=%s"%(fieldTmp,argv[field])                     qs+=",%s=%s"%(fieldTmp,argv[field])
   
            
   
         else:          else:
             self.REQUEST['QUERY_STRING']=qs              self.REQUEST['QUERY_STRING']=qs
   
Line 654  class ZSQLExtendFolder(Folder,Persistent Line 654  class ZSQLExtendFolder(Folder,Persistent
                     #print "HI",op,field                      #print "HI",op,field
     #print opfieldsa      #print opfieldsa
         #now analyse the querystring          #now analyse the querystring
          
         for q in qs.split(","):          for q in qs.split(","):
                           
                           
Line 754  class ZSQLExtendFolder(Folder,Persistent Line 755  class ZSQLExtendFolder(Folder,Persistent
                 op="all"                  op="all"
   
                 if (not tableExt) or (namealt.split('.')[0]==tableExt):                  if (not tableExt) or (namealt.split('.')[0]==tableExt):
                     if searchFields.has_key(name):                      if searchFields.has_key(namealt):
                         searchFields[name]+=lopfields.get(name,'OR')+" "+tmp                          searchFields[namealt]+=lopfields.get(name,'OR')+" "+tmp
                         searchFieldsOnly[name]+=lopfields.get(name,'OR')+" "+value                          searchFieldsOnly[namealt]+=lopfields.get(name,'OR')+" "+value
                     else:                       else: 
                         searchFields[name]=tmp                          searchFields[namealt]=tmp
                         searchFieldsOnly[name]=value                          searchFieldsOnly[namealt]=value
   
   
         whereList=["("+searchFields[x]+")" for x in searchFields.keys()]          whereList=["("+searchFields[x]+")" for x in searchFields.keys()]
   
Line 832  class ZSQLExtendFolder(Folder,Persistent Line 834  class ZSQLExtendFolder(Folder,Persistent
   
             return query              return query
                           
       def ZSQLUniqueQuery(self,value,returns):
           """unique relation"""
           if returns:
               statement="""select %s from %s where %s = '%s' """%(returns[1],returns[0],returns[2],value)
               founds=self.ZSQLSimpleSearch(statement)
               if founds:
                   return getattr(founds[0],returns[1])
               else:
                   return value
           else:
               return value
           
     def ZSQLQuery(self,query):      def ZSQLQuery(self,query):
         """query"""          """query"""
         #print "hi",query  
         return self.ZSQLSimpleSearch(query)          return self.ZSQLSimpleSearch(query)
           
       
     def ZSQLSearch(self):      def ZSQLSearch(self):
         """To be done"""          """To be done"""
         rq=self.REQUEST['QUERY_STRING']          rq=self.REQUEST['QUERY_STRING']
   
         querys=rq.split("&")          querys=rq.split("&")
                   
           
         formatfile=self.REQUEST['URL1'] #generisch redirect zur gleichen url          formatfile=self.REQUEST['URL1'] #generisch redirect zur gleichen url
                   
         for querytemp in querys:          for querytemp in querys:
             query=querytemp.split("=")              query=querytemp.split("=")
                           
                           
             print "fmtfile",formatfile  
                           
             try:              try:
                 if query[0].lower()=="-format":                  if query[0].lower()=="-format":
Line 859  class ZSQLExtendFolder(Folder,Persistent Line 876  class ZSQLExtendFolder(Folder,Persistent
                                   
         #print formatfile          #print formatfile
                   
           
         self.REQUEST.SESSION['query']=string.join(self.REQUEST['QUERY_STRING'].split("&"),",")          self.REQUEST.SESSION['query']=string.join(self.REQUEST['QUERY_STRING'].split("&"),",")
         self.REQUEST.SESSION['come_from_search']="yes"          self.REQUEST.SESSION['come_from_search']="yes"
                   
Line 1206  class ZSQLBibliography(Folder,ZSQLExtend Line 1224  class ZSQLBibliography(Folder,ZSQLExtend
   
         return retdata,fieldlist          return retdata,fieldlist
   
       def createRDFTag(self,tag,content):
           """create RDF"""
           if content:
               ret=""" <cdli:%s>%s</cdli:%s>"""%(tag,content,tag)
               return ret.decode('latin-1')
           else:
               return ""
       
     def createIndexTag(self,tag,content):      def createIndexTag(self,tag,content):
         """creste tag"""          """create tag"""
         if content:          if content:
             ret="""<%s>%s</%s>"""%(tag,content,tag)              ret="""<%s>%s</%s>"""%(tag,content,tag)
             return ret              return ret
Line 1224  class ZSQLBibliography(Folder,ZSQLExtend Line 1250  class ZSQLBibliography(Folder,ZSQLExtend
         pt.content_type="text/xml"          pt.content_type="text/xml"
         return pt()          return pt()
   
       def getMetaDataRDF(self):
           """crate index meta"""
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record.rdf')).__of__(self)
           pt.content_type="text/xml"
           return pt()
   
     def getMetaDataXML(self):      def getMetaDataXML(self):
         """crate index meta"""          """crate index meta"""
           find=self.ZopeFind(self,obj_ids=["record.xml"])
           if not find:
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record.xml')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','record.xml')).__of__(self)
         pt.content_type="text/xml"          pt.content_type="text/xml"
         return pt()          return pt()
           else:
               return find[0][1]()
   
       def createVLMAtripels(self):
           """index"""
           # check if the request's host part was OK
           http_host = self.REQUEST['HTTP_HOST']
           host_port = self.REQUEST['SERVER_PORT']
           fix_host = None
           if http_host and http_host.rfind(host_port) == -1:
               print "HTTP_HOST needs fixing!"
               fix_host = http_host + ":" + host_port
           
           ret=""
           for found in self.ZSQLSimpleSearch("select id_text from %s limit ALL"%'cdli_cat'):
               base_url = self.absolute_url()
               if fix_host:
                   #print "replacing ", http_host, " by ", fix_host
                   base_url = string.replace(base_url, http_host, fix_host, 1)
   
               #found2=self.ZSQLInlineSearchU(_table="cdli_imglist",id_text=found.id_text)
               #create collectionobject info
               subject="http://xserve02.mpiwg-berlin.mpg.de:8880/cdlineu/cdli_coll/cdli2/cdli_templates/cdli_templates/textdisplay.html?-table=cdli_cat&id_text=%s"%found.id_text
               object="http://xserve02:8880/cdlidata/images/getMetaDataRDF?id_text=%s"%found.id_text
               predicate="metadata"
               ret+="%s\t%s\t%s\n"%(subject,object,predicate)
               #create image
               subject="http://xserve02.mpiwg-berlin.mpg.de:8880/cdlineu/cdli_coll/cdli2/cdli_templates/cdli_templates/textdisplay.html?-table=cdli_cat&id_text=%s"%found.id_text
               object="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&mo=rawfile"%found.id_text
               predicate="image"
               
               ret+="%s\t%s\t%s\n"%(subject,object,predicate)
   
               #create thumb
               subject="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&mo=rawfile"%found.id_text
               object="http://nausikaa2.mpiwg-berlin.mpg.de/digitallibrary/servlet/Scaler?fn=/experimental/cdli/dl/photo/%s&dw=100&dh=100"%found.id_text
               predicate="thumb"
               
               ret+="%s\t%s\t%s\n"%(subject,object,predicate)
       
           return ret
   
   
     def getMetaDatasXML(self):      def getMetaDatasXML(self):
         """index"""          """index"""

Removed from v.1.51  
changed lines
  Added in v.1.55


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