Diff for /ECHO_content/ECHO_helpers.py between versions 1.61 and 1.68

version 1.61, 2005/10/10 10:05:06 version 1.68, 2005/12/04 09:10:55
Line 14  from AccessControl import ClassSecurityI Line 14  from AccessControl import ClassSecurityI
 import os.path  import os.path
 from OFS.Folder import Folder  from OFS.Folder import Folder
 import ECHO_collection  import ECHO_collection
   import base64
   import bz2
   import xmlrpclib
   
 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']
   
   
   #decode and compress for xmlrpc communication with OSAS_server
   
   def encodeRPC(string):
       return base64.encodestring(bz2.compress(string))
   def decodeRPC(string):
       return bz2.decompress(base64.decodestring(string))
   
 def content_html(self,type):  def content_html(self,type):
         """template fuer content"""          """template fuer content"""
         #templates = self.ZopeFind(self.aq_parent,obj_ids=[type+"_template"])          #templates = self.ZopeFind(self.aq_parent,obj_ids=[type+"_template"])
Line 115  class ECHO_basis: Line 126  class ECHO_basis:
   
             return ret              return ret
                           
       def content_html_XMLRpc(self):
           """xml_rpc_version"""
           return encodeRPC(self.content_html())
       
     def content_html(self,type="collection"):      def content_html(self,type="collection"):
             """template fuer content bei einbau und ECHO_Umgebung"""              """template fuer content bei einbau und ECHO_Umgebung"""
                           
Line 408  class ECHO_basis: Line 423  class ECHO_basis:
                 if hasattr(getattr(self,link),'link'):                  if hasattr(getattr(self,link),'link'):
                         cLink=getattr(self,link).link                          cLink=getattr(self,link).link
                         # if existing delete virtuell path                           # if existing delete virtuell path 
                         if self.REQUEST.hasattr('VirtualRootPhysicalPath'):                          if hasattr(self.REQUEST,'VirtualRootPhysicalPath'):
                             cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'')                              cLink=cLink.replace('/'.join(self.REQUEST['VirtualRootPhysicalPath']),'')
   
                 if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip():                  if backLink and hasattr(getattr(self,link),'link') and backLink==self.REQUEST['SERVER_URL']+cLink.lstrip():
Line 531  def checkOnlyOneInGroup(object): Line 546  def checkOnlyOneInGroup(object):
                 return displayedObjects[0][1]                  return displayedObjects[0][1]
         else:           return object          else:           return object
   
 def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None):  
                   
   def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes"):
                   
         def sort(x,y):          def sort(x,y):
                 return cmp(x[0],y[0])                  return cmp(x[0],y[0])
                   
         def sortfnc(sortfield,x,y):          def sortfnc(sortfield,x,y):
                 try:                  try:
                         xa=x[1].getMDValue(sortfield)                          xa=x[1].getMDValue(sortfield,generic=generic)
                 except:                  except:
                         xa=""                          xa=""
                 try:                  try:
                         ya=y[1].getMDValue(sortfield)                          ya=y[1].getMDValue(sortfield,generic=generic)
                 except:                  except:
                         ya=""                          ya=""
                 return cmp(xa,ya)                  return cmp(xa,ya)
Line 551  def getSubCols(self, sortfield=None, sub Line 566  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)
           if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'):         
                       searchString=" AND ".join(searchSimple.split())         
               ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString})]         
           else:
         for entry in displayedObjects:          for entry in displayedObjects:
   
                           
                 object=entry[1]                  object=entry[1]
                 if searchMD and hasattr(object,'getMDValue'):                  if searchMD and hasattr(object,'getMDValue'):
                         flag=0                          flag=0
                         for field in searchMD.keys():                          for field in searchMD.keys():
                                 if object.getMDValue(field)==searchMD[field]:                                      #if object.getMDValue(field,generic=generic)==searchMD[field]:
                                       if re.match(searchMD[field],object.getMDValue(field,generic=generic)):
                                         flag=1                                          flag=1
                                 else:                                  else:
                                         flag=0                                          flag=0
Line 569  def getSubCols(self, sortfield=None, sub Line 585  def getSubCols(self, sortfield=None, sub
                                 ids.append(object)                                  ids.append(object)
                 else:                  else:
                         ids.append(object)                          ids.append(object)
   
         if not sortfield:          if not sortfield:
             sortfield=getattr(self,'sortfield','weight')              sortfield=getattr(self,'sortfield','weight')
   
               
         tmplist=[]          tmplist=[]
   
         for x in ids:          for x in ids:
                   
                 if hasattr(x,sortfield):                  if hasattr(x,sortfield):
                         try:                          try:
                                 tmp=int(getattr(x,sortfield))                                  tmp=int(getattr(x,sortfield))
Line 594  def getSubCols(self, sortfield=None, sub Line 605  def getSubCols(self, sortfield=None, sub
         else:          else:
                 tmplist.sort(sortWithMD(sortFieldMD))                  tmplist.sort(sortWithMD(sortFieldMD))
                   
         return [x for (key,x) in tmplist]          ret=[x for (key,x) in tmplist]
         
           return ret
   
 def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']):  def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']):
         """Rerender all Links"""          """Rerender all Links"""
Line 608  def ECHO_rerenderLinksMD(self,obj=None,t Line 621  def ECHO_rerenderLinksMD(self,obj=None,t
         for entry in entries:          for entry in entries:
                 if entry[1].meta_type == 'ECHO_resource':                  if entry[1].meta_type == 'ECHO_resource':
                         try:                          try:
                                 entry[1].ECHO_getResourceMD(template="no")                                  entry[1].ECHO_getResourceMD(template="no",overwrite="yes")
                                 if "title" in types:                                  if "title" in types:
                                     entry[1].generate_title()                                      entry[1].generate_title()
                                 if "label" in types:                                  if "label" in types:
Line 626  def reloadMetaDataFromStorage(self,RESPO Line 639  def reloadMetaDataFromStorage(self,RESPO
             """copy metadata from the storage to ECHO"""              """copy metadata from the storage to ECHO"""
             ret=""              ret=""
             resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1)              resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1)
               if RESPONSE is not None:
                   RESPONSE.setHeader("Content-Type", type)
                   RESPONSE.write("<html><body>\n")
   
             for resource in resources:              for resource in resources:
                     x=str(resource[1].copyIndex_meta2echo_resource())+"<br>"                      x=str(resource[1].copyIndex_meta2echo_resource())+"<br>"
                       if RESPONSE is not None:
                           RESPONSE.write(x+"\n")
                       
                     ret+=x                      ret+=x
   
             if RESPONSE is not None:              if RESPONSE is not None:
                     #RESPONSE.redirect('./manage_main')                      #RESPONSE.redirect('./manage_main')
                     return "<html><body>"+ret+"</html></body>"                      RESPONSE.write( "</html></body>")
   
             return ret              return ret
           
Line 737  def checkDiffs(self,metadict): Line 756  def checkDiffs(self,metadict):
           
             for field in tags[1]:              for field in tags[1]:
                     try:                      try:
                             if (NoneToEmpty(self.getFieldValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]):                              if (NoneToEmpty(self.getMDValue(self.getFieldTag(tags,field)))==metadict[self.getFieldTag(tags,field)]):
                                     diffs[self.getFieldTag(tags,field)]=1                                      diffs[self.getFieldTag(tags,field)]=1
                             else:                              else:
                                                                           

Removed from v.1.61  
changed lines
  Added in v.1.68


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