Diff for /ECHO_content/ECHO_collection.py between versions 1.239 and 1.247

version 1.239, 2005/10/26 11:18:19 version 1.247, 2005/11/03 15:12:21
Line 946  class ECHO_resource(CatalogAware,Folder, Line 946  class ECHO_resource(CatalogAware,Folder,
                 self.contentType=self.bib_type                  self.contentType=self.bib_type
                 for data in self.metadata:                  for data in self.metadata:
                         data_neu=re.sub('-','_',data)                          data_neu=re.sub('-','_',data)
                         self.meta                          self.metaDataHash[data_neu]=getattr(self,data)[0:]
                         DataHash[data_neu]=getattr(self,data)[0:]  
   
                   
         pt=zptFile(self, 'zpt/ChangeECHO_resource_metadata.zpt')          pt=zptFile(self, 'zpt/ChangeECHO_resource_metadata.zpt')
Line 1039  class ECHO_resource(CatalogAware,Folder, Line 1038  class ECHO_resource(CatalogAware,Folder,
                     RESPONSE.redirect('manage_main')                      RESPONSE.redirect('manage_main')
   
   
     def getMDValue(self,fieldName,empty=None):      def getMDValue(self,fieldName,empty=None,generic=None):
               """get md values"""
               #TODO: cache mappinghash
               
               
               if generic:
                   ct=self.contentType.replace(" ","_").lower()
                   
                   #caching
                   if not hasattr(self,'_v_mapHash'): #noch keine cachevariable
                       self._v_mapHash={}
                       
                   tmp=self._v_mapHash.get(ct,None) 
                   if tmp: #teste ob type schon existiert
                       fieldName=tmp.get(fieldNameTest,None)
                   else:
                       self._v_mapHash[ct]={}
                       
                   #noch nicht gecached    
                   if not fieldName and hasattr(self.standardMD,ct):    
                       fieldName=getattr(self.standardMD,ct).generateMappingHash()[fieldNameTest][0]
                       self._v_mapHash[ct][fieldNameTest]=fieldName
               
             if not empty:              if not empty:
                   #FIXME: warum gibt es manchmal kein metadatahas
                   try:
                     return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType)                      return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType)
                               except:
                       zLOG.LOG("ECHO (line 1069)",zLOG.ERROR,"no md hash for %s"%self.getId()) 
                       return ""
             else:              else:
                     return self.metaDataHash.get(fieldName,empty)                      return self.metaDataHash.get(fieldName,empty)
                           
Line 1155  class ECHO_resource(CatalogAware,Folder, Line 1180  class ECHO_resource(CatalogAware,Folder,
   
           
                   
     def getFieldValue(self,field):  
         """get value"""  
           
         try:  
           
             ret=self.metaDataHash[field]  
             if ret == "":  
                 return None  
             else:  
                       
                     return ret  
         except:  
             return None  
   
     def getMetaDataHash(self):      def getMetaDataHash(self):
             """md hash"""              """md hash"""
             return self.metaDataHash              return self.metaDataHash
           
     def setFieldValue(self,field,value):      def setFieldValue(self,field,value):
         """get value"""          """get value"""
           #TODO: remove setFieldValue
                   
         if not hasattr(self,'metaDataHash'):          if not hasattr(self,'metaDataHash'):
                 setattr(self,'metaDataHash',{})                  setattr(self,'metaDataHash',{})
Line 1184  class ECHO_resource(CatalogAware,Folder, Line 1196  class ECHO_resource(CatalogAware,Folder,
     def copySearchFields(self):      def copySearchFields(self):
             """copys metadatafields to the object"""              """copys metadatafields to the object"""
             fields=['author','title','year']              fields=['author','title','year']
               
             for field in fields:              for field in fields:
                     setattr(self,'MD_'+field,self.getFieldValue(field))                      setattr(self,'MD_'+field,self.getMDValue(field,generic="yes"))
           
   
     def findLabelsFromMapping(self,referenceType):      def findLabelsFromMapping(self,referenceType):
Line 1238  class ECHO_resource(CatalogAware,Folder, Line 1251  class ECHO_resource(CatalogAware,Folder,
                   
                   
   
           
   
         bibdata={}          bibdata={}
         retdata={}          retdata={}
         fieldlist=self.standardMD.fieldList          fieldlist=self.standardMD.fieldList
Line 1289  class ECHO_resource(CatalogAware,Folder, Line 1300  class ECHO_resource(CatalogAware,Folder,
             if RESPONSE:              if RESPONSE:
                     return RESPONSE.redirect('manage_main')                      return RESPONSE.redirect('manage_main')
                           
     def ECHO_getResourceMD(self,template="yes",back=None):              return "OK:",self.absolute_url().self,contentType
           
       def ECHO_getResourceMD(self,template="yes",back=None,overwrite="no"):
         """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource"""          """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource"""
         (metadict, error)=readMetadata(self.metalink)          (metadict, error)=readMetadata(self.metalink)
   
Line 1299  class ECHO_resource(CatalogAware,Folder, Line 1312  class ECHO_resource(CatalogAware,Folder,
         if not error=="": #Fehler beim Auslesen des Metafiles          if not error=="": #Fehler beim Auslesen des Metafiles
                 return "ERROR:",error                  return "ERROR:",error
                   
         if not self.contentType:          if (not self.contentType) or (overwrite=="yes"):
                 self.contentType=metadict['bib_type'].lower()                  self.contentType=metadict['bib_type']
                                   
         if not (metadict['bib_type'].lower()==self.contentType.lower()):          if not (metadict['bib_type'].lower()==self.contentType.lower()):
                 self.REQUEST.SESSION['contentStorage']=metadict['bib_type']                  self.REQUEST.SESSION['contentStorage']=metadict['bib_type']
Line 1499  class ECHO_link(ECHO_externalLink): Line 1512  class ECHO_link(ECHO_externalLink):
         """external_link"""          """external_link"""
   
         meta_type="ECHO_link"          meta_type="ECHO_link"
       manage_options = ECHO_externalLink.manage_options+(
               {'label':'add links config','action':'ECHO_link_addLinksForm'},
                   )
                   
           def ECHO_link_addLinksForm(self):
               """Main configuration"""
           
               pt=zptFile(self, 'zpt/ChangeECHO_link_addLinks.zpt')
               return pt()
       
           def ECHO_link_addLinks(self,addLinks,RESPONSE):
               """add links"""
               self.addLinks=addLinks
               if RESPONSE is not None:
                   RESPONSE.redirect('manage_main')
                   
         def content_html(self):          def content_html(self):
                 """template fuer link"""                  """template fuer link"""
                   
                 if hasattr(self,"link_template"):                  if hasattr(self,"link_template"):
                         return ECHO_basis.content_html(self,'link')                          ret=ECHO_basis.content_html(self,'link')
                 else:                  else:
                         return ECHO_basis.content_html(self,'collection')                          ret=ECHO_basis.content_html(self,'collection')
   
                   try:
                       return ret.decode('utf-8')
                   except:
                       return ret
   
         def index_html(self):          def index_html(self):
                 """standard link"""                  """standard link"""
Line 1523  class ECHO_link(ECHO_externalLink): Line 1556  class ECHO_link(ECHO_externalLink):
                  else:                   else:
                         params={}                          params={}
                                   
                    if getattr(self,'addLinks','yes')=="yes":
                  params['backLink']=self.aq_parent.absolute_url()                   params['backLink']=self.aq_parent.absolute_url()
                  params['startLink']=splitted[0]+"?"+urllib.urlencode(params)                   params['startLink']=splitted[0]+"?"+urllib.urlencode(params)
                                   
Line 1544  def manage_addECHO_link(self,id,title,la Line 1578  def manage_addECHO_link(self,id,title,la
   
     self._setObject(id,newObj)      self._setObject(id,newObj)
   
       getattr(self,id).addLinks='no'
       
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
                   
Line 1892  class ECHO_collection(Folder, Persistent Line 1928  class ECHO_collection(Folder, Persistent
                                           
     def copySearchFields(self,RESPONSE=None):      def copySearchFields(self,RESPONSE=None):
             """copys import metadatafields to the object"""              """copys import metadatafields to the object"""
             resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])              resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1)
   
             for resource in resources:              for resource in resources:
   
Line 1910  class ECHO_collection(Folder, Persistent Line 1946  class ECHO_collection(Folder, Persistent
     def reloadMetaDataFromStorage(self,RESPONSE=None):      def reloadMetaDataFromStorage(self,RESPONSE=None):
             """copy metadata from the storage to ECHO"""              """copy metadata from the storage to ECHO"""
   
             return reloadMetaDataFromStorage(self,RESPONSE=None)              return reloadMetaDataFromStorage(self,RESPONSE)
   
           
     def getPartnerCopyright(self,name,sonst="generic"):      def getPartnerCopyright(self,name,sonst="generic"):
Line 2217  class ECHO_collection(Folder, Persistent Line 2253  class ECHO_collection(Folder, Persistent
     def content_html(self,**argv):      def content_html(self,**argv):
         """template fuer content"""          """template fuer content"""
         #print "NN",argv          #print "NN",argv
         return ECHO_basis.content_html(self,'collection')          ret = ECHO_basis.content_html(self,'collection')
           
           try:
                   return ret.encode('utf-8')
           except:
               
               try: 
                   return ret.decode('latin-1')
               except:
                   
                   return ret
           
     def getCredits(self):      def getCredits(self):
         """Ausgabe der credits"""          """Ausgabe der credits"""

Removed from v.1.239  
changed lines
  Added in v.1.247


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