Diff for /ECHO_content/ECHO_helpers.py between versions 1.69 and 1.81

version 1.69, 2005/12/13 12:45:21 version 1.81, 2007/04/30 16:30:09
Line 18  import base64 Line 18  import base64
 import bz2  import bz2
 import xmlrpclib  import xmlrpclib
   
   import logging
   
   #erstzt logging
   def logger(txt,method,txt2):
       """logging"""
       logging.info(txt+ txt2)
   
 displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie']  displayTypes = ['ZSQLExtendFolder','ZSQLBibliography','ECHO_group','ECHO_collection','ECHO_resource','ECHO_link','ECHO_sqlElement','ECHO_pageTemplate','ECHO_externalLink','ImageCollectionIFrame','VLP_resource','VLP_essay','ECHO_ZCatalogElement','ImageCollection','versionedFileFolder','ECHO_movie']
   
   
Line 36  def content_html(self,type): Line 43  def content_html(self,type):
         #    return templates[0][1]()          #    return templates[0][1]()
   
         if hasattr(self,type+"_template"):          if hasattr(self,type+"_template"):
               logging.info("type: %s"%type)
             obj=getattr(self,type+"_template")              obj=getattr(self,type+"_template")
             return obj()              return obj()
         else:          else:
Line 51  class ECHO_basis: Line 59  class ECHO_basis:
     security.declarePublic('getImageTag')      security.declarePublic('getImageTag')
           
     management_page_charset="utf-8"      management_page_charset="utf-8"
       isVisible = True
           
     def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):      def manage_addECHO_locale(self,lang,title,label,text=None,content_type=None,RESPONSE=None):
             return ECHO_collection.manage_addECHO_locale(self,lang,title,label)              return ECHO_collection.manage_addECHO_locale(self,lang,title,label)
Line 137  class ECHO_basis: Line 146  class ECHO_basis:
                           
             return content_html(self,type)              return content_html(self,type)
                   
       def getIsVisible(self):
       """return if object and all parents are visible"""
       
       # if object is not visible return False
       if hasattr(self,'isVisible'):
           if not self.isVisible : return False
           
       # else if parent of object is not ECHO_root, ECHO_basis or None
       if not self.aq_parent.meta_type in ['ECHO_root','ECHO_basis',None] :
           return self.aq_parent.getIsVisible()
   
       # else return True
       return True
   
       def setIsVisible(self, isVisible):
       """ set object attribute isVisible"""
       self.isVisible = isVisible
   
       def getAttributeIsVisible(self):
       """ return object attribute isVisible"""
       if hasattr(self,'isVisible'):
           return self.isVisible
       return True
       
     def getTitle(self):      def getTitle(self):
         """title"""          """title"""
           if hasattr(self,'getLanguage'):
         lang=self.getLanguage()          lang=self.getLanguage()
           else:
               lang=None
   
         locale=None          locale=None
         if lang and not (lang =="de"):          if lang and not (lang =="de"):
                 locale=self.ZopeFind(self,obj_ids=["locale_"+lang])                  locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
Line 147  class ECHO_basis: Line 184  class ECHO_basis:
         if locale:          if locale:
                 return self.decode(locale[0][1].title)                  return self.decode(locale[0][1].title)
         else:          else:
               try:
                 return self.decode(self.title)                  return self.decode(self.title)
               except:    
                   return self.title
                   
     def getLabel(self):      def getLabel(self):
         """title"""          """title"""
           if hasattr(self,'getLanguage'):
         lang=self.getLanguage()          lang=self.getLanguage()
           else:
               lang=None
   
         locale=None          locale=None
                   
         if lang and not (lang=="de"):          if lang and not (lang=="de"):
                 locale=self.ZopeFind(self,obj_ids=["locale_"+lang])                  locale=self.ZopeFind(self,obj_ids=["locale_"+lang])
   
Line 312  class ECHO_basis: Line 356  class ECHO_basis:
             js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm)              js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm)
         return js          return js
   
     def createMapHead(self):      def createMapHead(self,mapColTypes=None):
         """create javascript include and script tags for head"""          """create javascript include and script tags for head"""
         pt=zptFile(self, 'zpt/ECHO_content_map_frag_js')          pt=zptFile(self, 'zpt/ECHO_content_map_frag_js')
         return pt()          return pt(mapColTypes=mapColTypes)
   
     def createMapImg(self):      def createMapImg(self):
         """generate img-tag for map"""          """generate img-tag for map"""
Line 512  def readFieldFromXML(meta_url,parent,fie Line 556  def readFieldFromXML(meta_url,parent,fie
                               
 def urlopen(url):  def urlopen(url):
         """urlopen mit timeout"""          """urlopen mit timeout"""
         socket.setdefaulttimeout(2)          socket.setdefaulttimeout(10)
         ret=urllib.urlopen(url)          ret=urllib.urlopen(url)
         socket.setdefaulttimeout(5)          socket.setdefaulttimeout(5)
         return ret          return ret
Line 537  def checkOnlyOneInGroup(object): Line 581  def checkOnlyOneInGroup(object):
         else:           return object          else:           return object
   
   
 def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes"):  def getSubCols(self, sortfield=None, 
                  subColTypes=displayTypes, 
                  sortFieldMD=None,
                  searchMD=None,
                  searchMD_modus='search',
                  searchSimple=None,
                  generic="yes",search_sub=0,
                  isVisible=True):
                   
         def sort(x,y):          def sort(x,y):
                 return cmp(x[0],y[0])                  return cmp(x[0],y[0])
Line 555  def getSubCols(self, sortfield=None, sub Line 606  def getSubCols(self, sortfield=None, sub
                   
         sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))          sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))
         ids=[]          ids=[]
         displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes)          displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes,search_sub=search_sub)
           
         if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'):                   if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'):         
             searchString=" AND ".join(searchSimple.split())                       searchString=" AND ".join(searchSimple.split())         
             ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString})]                       ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString,'getIsVisible':True})]         
         else:          else:
             for entry in displayedObjects:                     for entry in displayedObjects:       
                     object=entry[1]                      object=entry[1]
                     if searchMD and hasattr(object,'getMDValue'):                      if searchMD:
                            if hasattr(object,'getMDValue'):
                             flag=0                              flag=0
                             for field in searchMD.keys():                              for field in searchMD.keys():
                                     #if object.getMDValue(field,generic=generic)==searchMD[field]:                                      #if object.getMDValue(field,generic=generic)==searchMD[field]:
                                     if re.match(searchMD[field],object.getMDValue(field,generic=generic)):                                      #if re.match(searchMD[field],object.getMDValue(field,generic=generic)):
                                       if searchMD_modus=='match':
                                           searchResult=re.match(searchMD[field],object.getMDValue(field,generic=generic))
                                       else:
                                           searchResult=re.search(searchMD[field],object.getMDValue(field,generic=generic))
                                       if searchResult:
                                             flag=1                                              flag=1
                                     else:                                      else:
                                             flag=0                                              flag=0
Line 853  def writeMetadata(url,metadict,project=N Line 911  def writeMetadata(url,metadict,project=N
                 node.appendChild(nodetext)                  node.appendChild(nodetext)
                 metanode.appendChild(node)                  metanode.appendChild(node)
   
   
         if xmlfrag:          if xmlfrag:
                 geturl="""<?xml version="1.0" encoding="UTF-8" ?>                  geturl="""<?xml version="1.0" encoding="UTF-8" ?>
                            <resource type="MPIWG">                             <resource type="MPIWG">
Line 870  def writeMetadata(url,metadict,project=N Line 929  def writeMetadata(url,metadict,project=N
   
   
                 except:                  except:
                       logger("ECHO writeMetadata",logging.ERROR,"XCannot open: "+url)
                         return (None,"XCannot open: "+url)                          return (None,"XCannot open: "+url)
   
                 try:                  try:
                         dom=xml.dom.minidom.parseString(geturl)                          dom=xml.dom.minidom.parseString(geturl)
                 except:                  except:
                       logger("ECHO writeMetadata",logging.ERROR,"Cannot parse: "+url+"<br>"+geturl)
                         return (None,"Cannot parse: "+url+"<br>"+geturl)                          return (None,"Cannot parse: "+url+"<br>"+geturl)
   
                   
Line 887  def writeMetadata(url,metadict,project=N Line 948  def writeMetadata(url,metadict,project=N
         metanode=metanodes[0]          metanode=metanodes[0]
   
         for metaData in metadict.keys():          for metaData in metadict.keys():
                                   if metaData: 
                 try:                  try:
                         nodeOld=metanode.getElementsByTagName(metaData)                          nodeOld=metanode.getElementsByTagName(metaData)
                 except:                  except:
Line 905  def writeMetadata(url,metadict,project=N Line 966  def writeMetadata(url,metadict,project=N
                         if nodeOld:                          if nodeOld:
                                 metanode.removeChild(nodeOld[0]).unlink()                                  metanode.removeChild(nodeOld[0]).unlink()
   
   
                 metanodeneu=dom.createElement(metaData)                  metanodeneu=dom.createElement(metaData)
                       try:
                 metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8'))                  metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8'))
                       except:
                           metanodetext=dom.createTextNode(metadict[metaData])
                 #try:                  #try:
   
                         #metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8"))                          #metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8"))
                 #except:                  #except:
                         #metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8'))                          #metanodetext=dom.createTextNode(metadict[metaData].encode('utf-8'))
Line 938  def writeMetadata(url,metadict,project=N Line 1004  def writeMetadata(url,metadict,project=N
                 updateTextToolNode('digiliburlprefix',digiliburlprefix)                  updateTextToolNode('digiliburlprefix',digiliburlprefix)
                   
         try:              try:    
   
          return dom.toxml(encoding='utf-8').encode('utf-8')           return dom.toxml(encoding='utf-8').encode('utf-8')
         except:          except:
               
               
             return dom.toxml(encoding='utf-8')                  return dom.toxml(encoding='utf-8')    
                   
 def readMetadata(url):  def readMetadata(url):

Removed from v.1.69  
changed lines
  Added in v.1.81


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