Diff for /ECHO_content/ECHO_helpers.py between versions 1.32 and 1.39

version 1.32, 2004/12/10 19:33:09 version 1.39, 2005/02/07 12:25:54
Line 4  import socket Line 4  import socket
 import urllib  import urllib
 import string  import string
 import xml.dom.minidom  import xml.dom.minidom
 from types import *  import types
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
 from Globals import package_home  from Globals import package_home
Line 37  class ECHO_basis: Line 37  class ECHO_basis:
         """showrdf"""          """showrdf"""
             self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')              self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
         ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n"""          ret="""<?xml version="1.0" encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"  xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n"""
         ret+=self.getRDF(urn="echo:colllectionroot")+"\n"  
           ret+=self.getRDF(urn="echo:collectionroot")+"\n"
   
   
         ret+="""</RDF:RDF>"""          ret+="""</RDF:RDF>"""
             return ret               return ret 
Line 95  class ECHO_basis: Line 97  class ECHO_basis:
                   
     def getTitle(self):      def getTitle(self):
     """title"""      """title"""
       return self.decode(self.title)
     try:      try:
         return self.title.encode('utf-8','ignore')           return self.title.encode('utf-8','ignore') 
     except:      except:
Line 103  class ECHO_basis: Line 106  class ECHO_basis:
           
     def getLabel(self):      def getLabel(self):
     """title"""      """title"""
   
       return self.decode(self.label)
     try:      try:
         return self.label.encode('utf-8','ignore')           return self.label.encode('utf-8','ignore') 
     except:      except:
Line 310  class ECHO_basis: Line 315  class ECHO_basis:
   
 def toList(field):  def toList(field):
     """Einzelfeld in Liste umwandeln"""      """Einzelfeld in Liste umwandeln"""
     if type(field)==StringType:      if type(field)==types.StringType:
         return [field]          return [field]
     else:      else:
         return field          return field
Line 383  def checkOnlyOneInGroup(object): Line 388  def checkOnlyOneInGroup(object):
         return displayedObjects[0][1]          return displayedObjects[0][1]
     else:       return object      else:       return object
   
 def getSubCols(self,sortfield="weight",subColTypes= displayTypes,sortFieldMD=None):  def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None):
   
       def sort(x,y):
           return cmp(x[0],y[0])
   
     def sortfnc(sortfield,x,y):      def sortfnc(sortfield,x,y):
           try:
         xa=x[1].getMDValue(sortfield)          xa=x[1].getMDValue(sortfield)
           except:
               xa=""
           try:
         ya=y[1].getMDValue(sortfield)          ya=y[1].getMDValue(sortfield)
         print xa,ya          except:
               ya=""
         return cmp(xa,ya)          return cmp(xa,ya)
           
     sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))      sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y))
Line 401  def getSubCols(self,sortfield="weight",s Line 414  def getSubCols(self,sortfield="weight",s
             object=entry[1]              object=entry[1]
             ids.append(object)              ids.append(object)
   
         try:      if not sortfield:
             sortfield=self.sortfield              sortfield=getattr(self,'sortfield','weight')
         except:  
             """nothing"""  
                           
         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))
                     x=int(x)  
                 except:                  except:
                     """nothing"""  
                 tmp=getattr(x,sortfield)                  tmp=getattr(x,sortfield)
                   
             else:              else:
                 tmp=10000000                  tmp=10000000
               
             tmplist.append((tmp,x))              tmplist.append((tmp,x))
   
     if not sortFieldMD:      if not sortFieldMD:
         tmplist.sort()          tmplist.sort(sort)
     else:      else:
         tmplist.sort(sortWithMD(sortFieldMD))          tmplist.sort(sortWithMD(sortFieldMD))
                   
Line 460  def reloadMetaDataFromStorage(self,RESPO Line 473  def reloadMetaDataFromStorage(self,RESPO
         for resource in resources:          for resource in resources:
             x=str(resource[1].copyIndex_meta2echo_resource())+"<br>"              x=str(resource[1].copyIndex_meta2echo_resource())+"<br>"
             ret+=x              ret+=x
             #print x  
               
   
         if RESPONSE is not None:          if RESPONSE is not None:
             #RESPONSE.redirect('./manage_main')              #RESPONSE.redirect('./manage_main')
Line 580  def checkDiffs(self,metadict): Line 591  def checkDiffs(self,metadict):
         return diffs          return diffs
           
   
 def zptFile(self, path):  def zptFile(self, path, orphaned=False):
     """returns a page template file from the product"""      """returns a page template file from the product"""
       if orphaned:
       # unusual case
       pt=PageTemplateFile(os.path.join(package_home(globals()), path))
       else:
     pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()), path)).__of__(self)
     return pt      return pt
   
   
 def sendFile(self, filename, type):  def findObjectPath(startobject, filename):
     """sends an object or a local file (in the product) as response"""      """returns the object with the name filename starting at startobject"""
       if startobject is None:
       return None
     paths = filename.split('/')      paths = filename.split('/')
     object = self      object = startobject
     # look for an object called filename  
     for path in paths:      for path in paths:
         if hasattr(object, path):          if hasattr(object, path):
         object = getattr(object, path)          object = getattr(object, path)
     else:      else:
         object = None          object = None
         break          break
       return object
   
   
   def zptObjectOrFile(self, filename, localdir='zpt', orphaned=False):
       """returns a page template instance or a file from the product"""
       # look for an object called path
       pt = findObjectPath(self, filename)
       # the object should also not be a python function
       if (pt is None) or isinstance(pt, types.FunctionType):
       # get a ZPT file
       pt = zptFile(self, localdir+'/'+filename, orphaned=orphaned)
       return pt
   
   
   def sendFile(self, filename, type):
       """sends an object or a local file (in the product) as response"""
       # look for an object called filename
       object = findObjectPath(self, filename)
     if object:      if object:
     # if the object exists then send it      # if the object exists then send it
     return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)      return object.index_html(self.REQUEST.REQUEST, self.REQUEST.RESPONSE)
Line 636  def writeMetadata(url,metadict,project=N Line 670  def writeMetadata(url,metadict,project=N
     """Einlesen der Metadaten und und erstellen des geaenderten XML file"""      """Einlesen der Metadaten und und erstellen des geaenderten XML file"""
   
     def updateTextToolNode(tag,value):      def updateTextToolNode(tag,value):
         #print dom,tag,value  
         metanode=dom.getElementsByTagName('texttool')[0]          metanode=dom.getElementsByTagName('texttool')[0]
         try:          try:
             nodeOld=metanode.getElementsByTagName(tag)              nodeOld=metanode.getElementsByTagName(tag)

Removed from v.1.32  
changed lines
  Added in v.1.39


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