Diff for /ECHO_content/ECHO_collection.py between versions 1.230 and 1.236

version 1.230, 2005/07/20 14:46:05 version 1.236, 2005/10/10 19:11:12
Line 37  from Products.PageTemplates.PageTemplate Line 37  from Products.PageTemplates.PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Globals import Persistent, package_home  from Globals import Persistent, package_home
 from Acquisition import Implicit  from Acquisition import Implicit
   from Products.ZCatalog.CatalogPathAwareness import CatalogAware
   
 import urllib  import urllib
 import cgi  import cgi
 import smtplib  import smtplib
 import time  import time
 from Ft.Xml.Domlette import NonvalidatingReader  from Ft.Xml.Domlette import NonvalidatingReader
 from Ft.Xml.Domlette import PrettyPrint  from Ft.Xml.Domlette import PrettyPrint, Print
 from Ft.Xml import EMPTY_NAMESPACE  from Ft.Xml import EMPTY_NAMESPACE
   
 import Ft.Xml.XPath  import Ft.Xml.XPath
Line 302  def manage_addECHO_fullText(self, id, ti Line 303  def manage_addECHO_fullText(self, id, ti
     return ''      return ''
   
   
 class ECHO_resource(Folder,Persistent,ECHO_basis):  class ECHO_resource(CatalogAware,Folder,Persistent,ECHO_basis):
     """ECHO Ressource"""      """ECHO Ressource"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
     meta_type='ECHO_resource'      meta_type='ECHO_resource'
       default_catalog='resourceCatalog'
   
 #    viewClassificationList=viewClassificationListMaster  #    viewClassificationList=viewClassificationListMaster
   
       def PrincipiaSearchSource(self):
              """Return cataloguable key for ourselves."""
              return str(self)
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
       def reindex(self):
           """generate fields for indexing and reindex"""
           import urlparse
           #TODO: korrigieren des metalink pfades konfigurierbar machen
           splitted= [x for x in urlparse.urlparse(self.metalink)]
           splitted[1]="foxridge.mpiwg-berlin.mpg.de"[0:]
           
           if splitted[0]=="http":
               self.metalink=urlparse.urlunparse(splitted)
           
   
           self.fullTextUrl=self.getFullTextXML(noredirect="yes")
           
           #TODO: korrigieren relative url to absoluter url volltexten, konfigurierbar?
           splitted= [x for x in urlparse.urlparse(self.fullTextUrl)]
           if splitted[0]=="":
               splitted[0]="http"
               splitted[1]="foxridge.mpiwg-berlin.mpg.de"[0:]
               
               self.fullTextUrl=urlparse.urlunparse(splitted)
               
           self.imagePath=self.getImagePath()
           
           self.reindex_object()
     
       
     security.declareProtected('View','createPDF')      security.declareProtected('View','createPDF')
     def createPDF(self,RESPONSE=None,local=None,dpi=150):      def createPDF(self,RESPONSE=None,local=None,dpi=150):
Line 1033  class ECHO_resource(Folder,Persistent,EC Line 1064  class ECHO_resource(Folder,Persistent,EC
             return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix)              return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix)
   
     def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):      def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
         """schreibe md"""              """return bibliographical metadata as stored in the object"""
                   
         try:          try:
                           
Line 1041  class ECHO_resource(Folder,Persistent,EC Line 1072  class ECHO_resource(Folder,Persistent,EC
         except:          except:
             return "<error> no metadata stored</error>"              return "<error> no metadata stored</error>"
           
       def getXQueryMetaData(self,xquery):
                   '''
                   execute an xquery on the metadata and returns a list of tuples, 
                   each tuple represent the content of the node as text and the whole node as xml-fragment
                   @param xquery: xquery auf den metadaten
                   '''
                   
                   try:
                           md=writeMetadata(self.metalink,self.metaDataHash,xmlfrag="yes")
                   except:
                           return None
   
                   dom = NonvalidatingReader.parseString(md,"http://www.mpiwg-berlin.mpg.de/")
                   
                   results=Ft.Xml.XPath.Evaluate(xquery, contextNode=dom)
               
                   ret=[]
                   for result in results:
                       
                       buf = cStringIO.StringIO()
                       PrettyPrint(result, stream=buf)
                       str = buf.getvalue()[0:]
                       buf.close()
                       ret.append((getTextFromNode(result),str)) 
                           
                   return ret
           
     def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):      def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
         """prints out metadata as stored in the echo environment, format is the index.meta format"""          """prints out metadata as stored in the echo environment, format is the index.meta format"""
         self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')          self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
Line 1507  class ECHO_collection(Folder, Persistent Line 1565  class ECHO_collection(Folder, Persistent
   
     def localizeObjects(self):      def localizeObjects(self):
         """localize all objects"""          """localize all objects"""
         contents=self.ZopeFind(self,obj_metatypes=['ECHO_link','ECHO_mapText'])              contents=self.ZopeFind(self,obj_metatypes=['ECHO_externalLink','ECHO_link','ECHO_mapText'])
   
         find=self.ZopeFind(self,obj_ids=('locale_en'))          find=self.ZopeFind(self,obj_ids=('locale_en'))
         if not find:          if not find:
         self.manage_addECHO_locale("en",'','')          self.manage_addECHO_locale("en",'','')
         for content in contents:          for content in contents:
             if content[1].meta_type=='ECHO_link':  
                       if content[1].meta_type in ['ECHO_link','ECHO_externalLink']:
   
                 find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText'))                  find=content[1].ZopeFind(content[1],obj_metatypes=('ECHO_mapText'))
                 if find:                  if find:
                     root=find[0][1]                      root=find[0][1]
Line 2089  class ECHO_collection(Folder, Persistent Line 2150  class ECHO_collection(Folder, Persistent
   
                   
     security.declarePublic('changeECHO_collection')           security.declarePublic('changeECHO_collection')     
     def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None):      def changeECHO_collection(self,title,label,description,contentType,responsible,weight,secondaryLink,secondaryLinkTitle,credits=None,sortfield="weight",coords=None,RESPONSE=None,imageTag="",bgcolour="",location=None,isAlwaysClickable=None,prefix="",suffix=""):
         """Aenderung der Properties"""          """Aenderung der Properties"""
   
         self.secondaryLink=secondaryLink          self.secondaryLink=secondaryLink
Line 2098  class ECHO_collection(Folder, Persistent Line 2159  class ECHO_collection(Folder, Persistent
     self.bgcolour=bgcolour      self.bgcolour=bgcolour
         self.location=location          self.location=location
     self.isAlwaysClickable=isAlwaysClickable      self.isAlwaysClickable=isAlwaysClickable
           self.prefix=prefix[0:]
           self.suffix=suffix[0:]
                           
         setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)          setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)
                   
Line 2513  class ECHO_root(Folder,Persistent,Implic Line 2576  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
   
       def findObjectFromFulltext(self,url=None,existUri=None):
           '''
           
           @param url:
           @param existUri:
           '''
           #TODO: at the moment assume that the filename is unique, the whole has to changed to a system of ids.
           return None
           
       def reindex(self,RESPONSE=None):
           """indiziere alle Objecte neu"""
           
           if RESPONSE:
               RESPONSE.write("<html><body>")
           
           resources=self.ZopeFind(self,obj_metatypes=["ECHO_resource"], search_sub=1)
           
           for resource in resources:
               resource[1].reindex()
               print "<p> done %s </p>\n"
               if RESPONSE:
                   RESPONSE.write("<p> done %s </p>\n"%resource[0])
                   
           if RESPONSE:
               RESPONSE.write("<p> ok </p></html></body>\n")
               
     def printer(self,txt):      def printer(self,txt):
         print txt          print txt
         print txt[2]          print txt[2]
Line 2529  class ECHO_root(Folder,Persistent,Implic Line 2618  class ECHO_root(Folder,Persistent,Implic
   
     def setLanguage(self,lang):      def setLanguage(self,lang):
         """Set language cookie"""          """Set language cookie"""
         self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")              self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="/")
   
     def switchLanguage(self):      def switchLanguage(self):
         """Set language cookie"""          """Set language cookie"""
Line 2538  class ECHO_root(Folder,Persistent,Implic Line 2627  class ECHO_root(Folder,Persistent,Implic
         else:          else:
             lang="en"              lang="en"
                   
         self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="")              self.REQUEST.RESPONSE.setCookie('lang_exhibition',lang,path="/")
         self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])          self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1'])
     def getLanguage(self):      def getLanguage(self):
         """get language cookie"""          """get language cookie"""
Line 3115  class ECHO_root(Folder,Persistent,Implic Line 3204  class ECHO_root(Folder,Persistent,Implic
   
             #str= dom.toxml('utf-8')              #str= dom.toxml('utf-8')
         buf = cStringIO.StringIO()          buf = cStringIO.StringIO()
         PrettyPrint(dom, stream=buf, encoding='UTF-8')              PrettyPrint(dom, stream=buf)
         str = buf.getvalue()          str = buf.getvalue()
         buf.close()          buf.close()
         #str=PrettyPrint(dom.documentElement,encoding='UTF-8')          #str=PrettyPrint(dom.documentElement,encoding='UTF-8')
         #print link.toxml('utf-8')          #print link.toxml('utf-8')
         #print type(str)          #print type(str)
         retStr=regexpPage.search(str)          retStr=regexpPage.search(str)
               
         try: # hack warum fehtl manchmal page??          try: # hack warum fehtl manchmal page??
             return retStr.group(1)              return retStr.group(1)
         except:          except:
Line 3138  class ECHO_root(Folder,Persistent,Implic Line 3228  class ECHO_root(Folder,Persistent,Implic
         except:          except:
             """nothing"""              """nothing"""
                           
         dbs={'vl_technology':'','vl_people':'','vl_sites':''}              dbs={'vl_technology':'','vl_people':" AND complete='yes'",'vl_sites':''}
         res=None          res=None
         for db in dbs.keys():          for db in dbs.keys():
             res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))              res=res or self.search(var=str("select reference from %s where reference =\'%s\' %s"%(db,ref,dbs[db])))

Removed from v.1.230  
changed lines
  Added in v.1.236


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