Diff for /ECHO_content/ECHO_collection.py between versions 1.137 and 1.151

version 1.137, 2004/07/13 13:40:11 version 1.151, 2004/07/23 12:29:14
Line 29  from Products.PageTemplates.ZopePageTemp Line 29  from Products.PageTemplates.ZopePageTemp
 from Globals import Persistent, package_home  from Globals import Persistent, package_home
 from Acquisition import Implicit  from Acquisition import Implicit
 from ECHO_helpers import displayTypes  from ECHO_helpers import displayTypes
   import urllib
   
 try:  try:
     from psycopg import libpq      from psycopg import libpq
Line 46  import xml.dom.minidom Line 46  import xml.dom.minidom
 from ECHO_graphicalOverview import javaHandler,javaScriptMain  from ECHO_graphicalOverview import javaHandler,javaScriptMain
 import ECHO_helpers  import ECHO_helpers
   
   def getRDFDescription(self,linkURL,urn=None,nameDef=None,typeName=None):
           """rdf"""
           
           ret=""
           about="""<RDF:Description RDF:about="%s">"""
           name="""<ECHONAVIGATION:name>%s</ECHONAVIGATION:name>"""
           link="""<ECHONAVIGATION:link xlink:href="%s">%s</ECHONAVIGATION:link>"""
           clickable="""<ECHONAVIGATION:linkClickable>%s</ECHONAVIGATION:linkClickable>"""
           #link="""<ECHONAVIGATION:link RDF:about="%s"/>"""
           type="""<ECHONAVIGATION:type>%s</ECHONAVIGATION:type>"""
               #xlink="""<ECHONAVIGATION:xlink xlink:href="%s"/>"""    
           if not urn:
               #urn="urn:"+re.sub('/',':',self.absolute_url())
               urn=self.absolute_url()
           about2=about%urn
           if not nameDef:
               if hasattr(self,'label') and not (self.label==""):
                   name2=name%self.label
               elif not self.title=="":
                   name2=name%self.title
               else:
                   name2=name%self.getId()
   
               name2=re.sub('&','&amp;',name2)
           else:
               name2=name%nameDef
   
           linkURL=re.sub('http:','',linkURL)
           linkURL2=re.sub('&','&amp;',linkURL)
           link2=link%(("http:"+linkURL2),("http:"+urllib.quote(linkURL)))
           clickable2=clickable%"true"
   
           if not typeName:
               type2=type%self.meta_type
           else:
               type2=type%typeName
           
           #ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n"+clickable2+"\n</RDF:Description>"
           ret=about2+"\n"+name2+"\n"+type2+"\n"+clickable2+"\n</RDF:Description>"
           return ret
       
 def getCopyrightsFromForm(self,argv):  def getCopyrightsFromForm(self,argv):
     medias={}      medias={}
     partners={}      partners={}
Line 186  class BrowserCheck: Line 227  class BrowserCheck:
   
   
                   
 def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):  def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,xmlfrag=None):
     """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          #print dom,tag,value
Line 204  def writeMetadata(url,metadict,project=N Line 245  def writeMetadata(url,metadict,project=N
         node.appendChild(nodetext)          node.appendChild(nodetext)
         metanode.appendChild(node)          metanode.appendChild(node)
   
                   if xmlfrag:
           geturl="""<?xml version="1.0" ?>
                              <resource type="MPIWG">
                  <meta>
                   <bib type="Book">
                           </bib>
                   </meta>
                   </resource>"""
           dom=xml.dom.minidom.parseString(geturl)
       else:
     try:      try:
         geturl=""          geturl=""
         for line in urllib.urlopen(url).readlines():          for line in urllib.urlopen(url).readlines():
Line 219  def writeMetadata(url,metadict,project=N Line 269  def writeMetadata(url,metadict,project=N
     except:      except:
         return (None,"Cannot parse: "+url+"<br>"+geturl)          return (None,"Cannot parse: "+url+"<br>"+geturl)
   
       
   
     metanodes=dom.getElementsByTagName('bib')      metanodes=dom.getElementsByTagName('bib')
   
     if not metanodes:      if not metanodes:
Line 477  def manage_addECHO_layoutTemplate(self, Line 529  def manage_addECHO_layoutTemplate(self,
     REQUEST.RESPONSE.redirect(u+'/manage_main')      REQUEST.RESPONSE.redirect(u+'/manage_main')
     return ''      return ''
   
   
   
 class ECHO_resource(Folder,Persistent):  class ECHO_resource(Folder,Persistent):
     """ECHO Ressource"""      """ECHO Ressource"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
Line 486  class ECHO_resource(Folder,Persistent): Line 540  class ECHO_resource(Folder,Persistent):
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
       security.declareProtected('View','index_html')
   
       def showRDF(self):
           """showrdf"""
               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+=self.getRDF(urn="echo:collectionroot")+"\n"
   
           ret+="""</RDF:RDF>"""
               return ret 
   
       def getRDF(self,urn=None):
           """rdf"""
           ret=getRDFDescription(self,self.link,urn=urn)
           return ret+self.createSubElementRDF(urn=urn) 
   
   
       def createSubElementRDF(self,urn=None):
           """rdf list"""
           if not urn:
               urn=self.absolute_url()
           ret=""
   
           rettemp="""<RDF:Seq RDF:about="%s">\n"""%urn
           flag=0
           
           li="""<RDF:li RDF:resource="%s" />\n"""
           if not ('<error>' in self.getFullTextXML(noredirect='Yes')):
               nurn=self.absolute_url()+'/getFullTextXML'
               rettemp+=li%nurn
               flag=1
           if not ('<error>' in self.getImageView(noredirect='Yes')):
               nurn=self.absolute_url()+'/getImageView'
               rettemp+=li%nurn
               flag=1
   
   
           if not ('<error>' in self.showMetaDataXML()):
               nurn=self.absolute_url()+'/showMetaDataXML'
               rettemp+=li%nurn
               flag=1
               
           rettemp+="</RDF:Seq>"
   
           if flag==1:
               ret+=rettemp
               
           if not ('<error>' in self.getFullTextXML(noredirect='Yes')):
                       nurn=self.absolute_url()+'/getFullTextXML'  
               ret+=getRDFDescription(self,self.absolute_url()+'/getFullTextXML',urn=nurn,nameDef="Fulltext",typeName="ECHO_fulltext")
   
           if not ('<error>' in self.getImageView(noredirect='Yes')):
                       nurn=self.absolute_url()+'/getImageView'
               ret+=getRDFDescription(self,self.absolute_url()+'/getImageView',urn=nurn,nameDef="Image View",typeName="ECHO_imageview")
               
           if not ('<error>' in self.showMetaDataXML()):
                       nurn=self.absolute_url()+'/showMetaDataXML'
               ret+=getRDFDescription(self,self.absolute_url()+'/showMetaDataXML',urn=nurn,nameDef="Metadata",typeName="ECHO_metaData")
   
           return ret
           
     def getAccessRightSelectorHTML(self,outlook="select"):      def getAccessRightSelectorHTML(self,outlook="select"):
         """htmlselector"""          """htmlselector"""
         values=['free','mpiwg']          values=['free','mpiwg']
Line 503  class ECHO_resource(Folder,Persistent): Line 618  class ECHO_resource(Folder,Persistent):
         else:          else:
             ret=""              ret=""
             for value in values:              for value in values:
                 print                  
                 if value==self.getAccessRightMD():                  if value==self.getAccessRightMD():
                     ret+="""<input type="radio" name="%s" value="%s" checked>%s"""%(self.getId(),value,value)                      ret+="""<input type="radio" name="%s" value="%s" checked>%s"""%(self.getId(),value,value)
                 else:                  else:
Line 650  class ECHO_resource(Folder,Persistent): Line 765  class ECHO_resource(Folder,Persistent):
   
         path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server          path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server
         path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server          path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server
           path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server
           path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server
         path=re.sub('/index.meta','',path)           path=re.sub('/index.meta','',path) 
   
   
Line 710  class ECHO_resource(Folder,Persistent): Line 826  class ECHO_resource(Folder,Persistent):
         path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server          path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server
         path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server          path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server
   
           path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server
           path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server
   
         return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()          return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
   
Line 765  class ECHO_resource(Folder,Persistent): Line 883  class ECHO_resource(Folder,Persistent):
             else:              else:
                 return "<error>no fulltext available</error>"                  return "<error>no fulltext available</error>"
   
   
       def getImageView(self,noredirect=None):
           """getImages; give Imageviewr  and <error></error> if somthing goes wrong."""
           try:
               fh=urllib.urlopen(self.metalink)
               dom=xml.dom.minidom.parse(fh)
               texttools=dom.getElementsByTagName('texttool')
               text=texttools[0].getElementsByTagName('image')
               imagetemp=getText(text[0].childNodes)
               
               text=dom.getElementsByTagName('archive-path')
               archivepath=getText(text[0].childNodes)
               archivepath=re.sub('/mpiwg/online/','',archivepath) 
               imageurl="http://echo.mpiwg-berlin.mpg.de/zogilib?fn="+archivepath+"/"+imagetemp
               if not noredirect:
                               self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')  
                   self.REQUEST.RESPONSE.redirect(imageurl)
               else:
                   return imageurl
           except:
   
               if not noredirect:
                   self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
                   self.REQUEST.RESPONSE.write("<error>no fulltext available</error>")
               else:
                   return "<error>no images available</error>"
   
       
     def getCopyrightsHTML(self):      def getCopyrightsHTML(self):
         """gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus"""          """gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus"""
                   
Line 775  class ECHO_resource(Folder,Persistent): Line 921  class ECHO_resource(Folder,Persistent):
             return "ERROR"              return "ERROR"
         ret=[]          ret=[]
                   
         for copyright in obj.getCopyrights():          for copyright in obj.getCopyrights(): #copyright - media / partner / copyrightID
                           
             link="copyrightTypes/"+copyright[2]+'/copyright.html'  
                           
             try:              try:
                   if hasattr(self.copyrightTypes,copyright[2]):
                 copyrightTypeObj=getattr(self.copyrightTypes,copyright[2])                  copyrightTypeObj=getattr(self.copyrightTypes,copyright[2])
                        link="copyrightTypes/"+copyright[2]+'/copyright.html'
                   else:
                        copyrightTypeObj=getattr(obj,copyright[2])
                        link="copyrightModel/"+copyright[2]+'/copyright.html'
                        
                 label=copyrightTypeObj.label                  label=copyrightTypeObj.label
                 url=copyrightTypeObj.url                  url=getattr(copyrightTypeObj, 'url', '')
                                   
                 if url!='':                  if url!='':
                      ret.append((url,copyright[0],copyright[1],copyright[2],label))                       ret.append((url,copyright[0],copyright[1],copyright[2],label))
Line 996  class ECHO_resource(Folder,Persistent): Line 1147  class ECHO_resource(Folder,Persistent):
         except:          except:
             return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate)              return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate)
   
       def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
           """schreibe md"""
           
           try:
               
               return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,xmlfrag="yes")
           except:
               return "<error> no metadata stored</error>"
       
     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 1469  class ECHO_collection(Folder, Persistent Line 1629  class ECHO_collection(Folder, Persistent
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
   
       def getRDF(self,urn=None):
           """rdf of the collection"""
           
           contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
   
           ret=getRDFDescription(self,self.absolute_url(),urn=urn)
           
           if not urn:
               urn=self.absolute_url()
               
           li="""<RDF:li RDF:resource="%s" />\n"""
   
           
           for content in contents:
               ret+=content[1].getRDF()+"\n"
               
           ret+="""<RDF:Seq RDF:about="%s">\n"""%urn
           for content in contents:
               nurn=content[1].absolute_url()
               ret+=li%nurn
           return ret+"</RDF:Seq>"
           
          
       def showRDF(self):
           """showrdf"""
               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+=self.getRDF(urn="echo:collectionroot")+"\n"
   
           ret+="""</RDF:RDF>"""
           
               return ret 
   
        
     def changeLabels(self):      def changeLabels(self):
         """change form"""          """change form"""
         pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self)          pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self)
Line 2171  class ECHO_group(ECHO_collection): Line 2365  class ECHO_group(ECHO_collection):
         )          )
           
     security.declareProtected('View','index_html')      security.declareProtected('View','index_html')
   
       def showRDF(self):
           """showrdf"""
               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+=self.getRDF(urn="echo:collectionroot")+"\n"
   
           ret+="""</RDF:RDF>"""
           
               return ret 
   
       def getRDF(self,urn=None):
           """rdf of the collection"""
           contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
   
           ret=getRDFDescription(self,self.absolute_url(),urn=urn)
   
           
           if not urn:
               urn=self.absolute_url()
           li="""<RDF:li RDF:resource="%s" />\n"""
           
           
           for content in contents:
               ret+=content[1].getRDF()+"\n"
               
           ret+="""<RDF:Seq RDF:about="%s">\n"""%urn
           for content in contents:
               nurn=content[1].absolute_url()
               ret+=li%nurn
           return ret+"</RDF:Seq>"
           
     def index_html(self):      def index_html(self):
         """standard page"""          """standard page"""
         displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes)          displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes)
Line 2387  class ECHO_root(Folder,Persistent,Implic Line 2613  class ECHO_root(Folder,Persistent,Implic
           
     meta_type="ECHO_root"      meta_type="ECHO_root"
   
       def showRDF(self):
           """showrdf"""
               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+=self.getRDF(urn="echo:collectionroot")+"\n"
   
           ret+="""</RDF:RDF>"""
               return ret
   
       def getRDF(self,urn=None):
           """rdf of the collection"""
   
           contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
   
           ret=getRDFDescription(self,self.absolute_url(),urn=urn)
           
           li="""<RDF:li RDF:resource="%s" />\n"""
   
           
           for content in contents:
               ret+=content[1].getRDF()+"\n"
               
           ret+="""<RDF:Seq RDF:about="%s">\n"""%urn
           for content in contents:
               nurn=content[1].absolute_url()
               ret+=li%nurn
           return ret+"</RDF:Seq>"
           
   
     def showContent(self,path):      def showContent(self,path):
         """return content/html"""          """return content/html"""
                   
Line 2487  class ECHO_root(Folder,Persistent,Implic Line 2742  class ECHO_root(Folder,Persistent,Implic
      return retStr       return retStr
   
   
     def copyrightTypeSelector_HTML(self,selected=None,first=None):      def copyrightTypeSelector_HTML(self, object=None, selected=None,first=None):
          """give type selector"""           """give type selector"""
   
      if not first:       if not first:
Line 2508  class ECHO_root(Folder,Persistent,Implic Line 2763  class ECHO_root(Folder,Persistent,Implic
                  retStr+="""<option selected value="%s">%s\n"""%(copyrightType[0],copyrightType[0])                   retStr+="""<option selected value="%s">%s\n"""%(copyrightType[0],copyrightType[0])
              else:                               else:                
                  retStr+="""<option value="%s">%s\n"""%(copyrightType[0],copyrightType[0])                   retStr+="""<option value="%s">%s\n"""%(copyrightType[0],copyrightType[0])
            
            for copyrightTypeSelf in self.ZopeFind(object,obj_metatypes=["ECHO_copyrightType"],search_sub=1):
                    retStr+="""<option value="%s">%s\n"""%(copyrightTypeSelf[0],copyrightTypeSelf[0])
                    
      except:       except:
          """nothing"""           """nothing"""
            
      return retStr       return retStr
   
     def partnerSelector_HTML(self,selected=None):      def partnerSelector_HTML(self,selected=None):

Removed from v.1.137  
changed lines
  Added in v.1.151


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