Diff for /ECHO_content/ECHO_collection.py between versions 1.131 and 1.133

version 1.131, 2004/06/28 14:42:32 version 1.133, 2004/07/01 15:11:04
Line 184  class BrowserCheck: Line 184  class BrowserCheck:
     self.isIEMac = self.isIE and self.isMac      self.isIEMac = self.isIE and self.isMac
   
   
   
           
 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):
     """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):
Line 484  class ECHO_resource(Folder,Persistent): Line 486  class ECHO_resource(Folder,Persistent):
   
     getSubCols = ECHO_helpers.getSubCols      getSubCols = ECHO_helpers.getSubCols
   
       def getAccessRightSelectorHTML(self,outlook="select"):
           """htmlselector"""
           values=['free','mpiwg']
           
           if outlook=="select":
               ret="""<select name="%s">"""%self.getId()
   
               for value in values:
                   if value==self.getAccessRightMD():
                       ret+="<option selected>%s</option>"%value
                   else:
                       ret+="<option>%s</option>"%value
               return ret+"</select>"
   
           else:
               ret=""
               for value in values:
                   print
                   if value==self.getAccessRightMD():
                       ret+="""<input type="radio" name="%s" value="%s" checked>%s"""%(self.getId(),value,value)
                   else:
                       ret+="""<input type="radio" name="%s" value="%s">%s"""%(self.getId(),value,value)
               return ret
   
   
       
       def getAccessRightMD(self):
           """set accessright"""
           url=self.metalink
   
           try:
               geturl=""
               for line in urllib.urlopen(url).readlines():
                   geturl=geturl+line
   
   
           except:
               return (None,"Cannot open: "+url)
   
           try:
               dom=xml.dom.minidom.parseString(geturl)
               root=dom.getElementsByTagName('resource')[0]
           except:
               return (None,"Cannot parse: "+url+"<br>"+geturl)
   
           internal=dom.getElementsByTagName('internal')
           if internal:
               institution=dom.getElementsByTagName('institution')
               return getText(institution[0].childNodes)
           
           free=dom.getElementsByTagName('free')
           if free:
               return "free"
   
           return "free" #default free
   
       def changeAccessRightMD(self,accessright,RESPONSE=None):
           """change the rights"""
           
           params="accessright=%s"%accessright
   
   
           #print urllib.urlopen(self.absolute_url()+'/setAccessRightXML'+'?'+params).read()
   
           
           urllib.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/setAccessRightXML'+urllib.quote('?'+params))).read()
   
         
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
           
       def setAccessRightXML(self,accessright):
           """set accessright"""
           url=self.metalink
   
           try:
               geturl=""
               for line in urllib.urlopen(url).readlines():
                   geturl=geturl+line 
   
   
           except:
               return (None,"Cannot open: "+url)
   
           try:
               dom=xml.dom.minidom.parseString(geturl)
               root=dom.getElementsByTagName('resource')[0]
           except:
               return (None,"Cannot parse: "+url+"<br>"+geturl)
   
           metanodes=dom.getElementsByTagName('access-conditions')
   
           if not metanodes:
               nodenew=dom.createElement('access-conditions')
               root.appendChild(nodenew)
               metanode=nodenew
           else:
               metanode=metanodes[0]
   
           accesses=metanode.getElementsByTagName('access')
   
           if not accesses:
               nodenew2=dom.createElement('access')
               metanode.appendChild(nodenew2)
               metanode2=nodenew2
           else:
               metanode2=accesses[0]
   
           internal=metanode.getElementsByTagName('internal')
   
           if internal:
               metanode2.removeChild(internal[0]).unlink()
   
           free=metanode.getElementsByTagName('free')
           
           if free:
               metanode2.removeChild(internal[0]).unlink()
   
   
           if accessright=='free':
               nodenew3=dom.createElement('free')
               metanode2.appendChild(nodenew3)
           elif accessright=='mpiwg':
               nodenew3=dom.createElement('internal')
               nodenew4=dom.createElement('institution')
               metanodetext=dom.createTextNode('mpiwg')
               nodenew4.appendChild(metanodetext)
               nodenew3.appendChild(nodenew4)
               metanode2.appendChild(nodenew3)
   
           return dom.toxml().encode('utf-8')
   
     def setStartPageForm(self):      def setStartPageForm(self):
         """Form for changing the startpage"""          """Form for changing the startpage"""
   
Line 554  class ECHO_resource(Folder,Persistent): Line 689  class ECHO_resource(Folder,Persistent):
         paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate']          paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate']
   
                   
         writeMetadata(self.metalink,self.metaDataHash,project,None,xslt,thumbtemplate,topbar,digiLibTemplate)          #writeMetadata(self.metalink,self.metaDataHash,project,None,xslt,thumbtemplate,topbar,digiLibTemplate)
   
         params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate)          params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate)
   
Line 753  class ECHO_resource(Folder,Persistent): Line 888  class ECHO_resource(Folder,Persistent):
         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.metaDataHash[data_neu]=getattr(self,data)[0:]              self.meta
                           DataHash[data_neu]=getattr(self,data)[0:]
   
           
         pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self)          pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self)
Line 1077  class ECHO_resource(Folder,Persistent): Line 1213  class ECHO_resource(Folder,Persistent):
         if RESPONSE:          if RESPONSE:
             return RESPONSE.redirect('manage_main')              return RESPONSE.redirect('manage_main')
                   
     def ECHO_getResourceMD(self,template="yes"):      def ECHO_getResourceMD(self,template="yes",back=None):
         """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)
   
               if back:
               self.REQUEST.SESSION['back']=back
   
         if not error=="": #Fehler beim Auslesen des Metafiles          if not error=="": #Fehler beim Auslesen des Metafiles
         return "ERROR:",error          return "ERROR:",error
Line 1147  class ECHO_resource(Folder,Persistent): Line 1284  class ECHO_resource(Folder,Persistent):
   
   
     security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination      security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination
   
     def generate_label(self):      def generate_label(self):
         """Erzeugt_standard_Label aus Template"""          """Erzeugt_standard_Label aus Template"""
         pt=getattr(self,"label_template_"+self.contentType.lower())          pt=getattr(self,"label_template_"+self.contentType.lower())
Line 1155  class ECHO_resource(Folder,Persistent): Line 1293  class ECHO_resource(Folder,Persistent):
         return pt()          return pt()
   
     security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination      security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination
   
     def generate_title(self,RESPONSE=None):      def generate_title(self,RESPONSE=None):
         """Erzeugt_standard_Label aus Template"""          """Erzeugt_standard_Label aus Template"""
         pt=getattr(self,"label_template_"+self.contentType.lower())          pt=getattr(self,"label_template_"+self.contentType.lower())
Line 1313  class ECHO_collection(Folder, Persistent Line 1452  class ECHO_collection(Folder, Persistent
   
     path="/mpiwg/online/permanent/shipbuilding"      path="/mpiwg/online/permanent/shipbuilding"
           
       def changeLabels(self):
           """change form"""
           pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self)
           pt.content_type="text/html"
           return pt()
   
       def changeTitles(self):
           """change form"""
           pt=PageTemplateFile('Products/ECHO_content/zpt/changeTitleForm').__of__(self)
           pt.content_type="text/html"
           return pt()
   
       def changeAccessRightsCollection(self):
           """change"""
           ret=""
           argv=self.REQUEST.form
           
           resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])
           for resource in resources:
              
               try:
                   ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                   resource[1].changeAccessRightMD(argv[resource[1].getId()])
               except:
                   """not"""
           return ret
   
       def changeLabelsInCollection(self):
           """change all lables of a collection"""
           ret=""
           argv=self.REQUEST.form
           
           resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])
           for resource in resources:
              
               try:
                   ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                               resource[1].label=argv[resource[1].getId()][0:]
               except:
                   """not"""
           return ret
   
       def changeTitlesInCollection(self):
           """change all lables of a collection"""
           ret=""
           argv=self.REQUEST.form
           
           resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])
           for resource in resources:
              
               try:
                   ret+=resource[1].getId()+"   "+argv[resource[1].getId()]+"</br>"
                               resource[1].title=argv[resource[1].getId()][0:]
               except:
                   """not"""
           return ret
           
     def updateCollection(self,RESPONSE=None):      def updateCollection(self,RESPONSE=None):
         """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""          """liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""
         files=os.listdir(self.path)          files=os.listdir(self.path)
Line 1670  class ECHO_collection(Folder, Persistent Line 1866  class ECHO_collection(Folder, Persistent
           
     security.declarePublic('ECHO_rerenderLinksMD')      security.declarePublic('ECHO_rerenderLinksMD')
   
     def ECHO_rerenderLinksMD(self,obj=None):      def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']):
         """Rerender all Links"""          """Rerender all Links"""
     ret=""      ret=""
           
Line 1683  class ECHO_collection(Folder, Persistent Line 1879  class ECHO_collection(Folder, Persistent
         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")
                                   if "title" in types:
                 entry[1].generate_title()                  entry[1].generate_title()
                                   if "label" in types:
                 entry[1].generate_label()                  entry[1].generate_label()
                 ret+="OK:"+entry[0]+"-- "+entry[1].getLabel().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"<br>"                  ret+="OK:"+entry[0]+"-- "+entry[1].getTitle().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"<br>"
             except:              except:
                 ret+="Error:"+entry[0]+"<br>"                  ret+="Error:"+entry[0]+"<br>"
   
Line 1732  class ECHO_collection(Folder, Persistent Line 1930  class ECHO_collection(Folder, Persistent
   
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
         {'label':'Main Config','action':'ECHO_collection_config'},          {'label':'Main Config','action':'ECHO_collection_config'},
         {'label':'Rerender Links','action':'ECHO_rerenderLinksMD'},          {'label':'Change Labels','action':'changeLabels'},
           {'label':'Change Titles','action':'changeTitles'},
           {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMD'},
         {'label':'Graphics','action':'ECHO_graphicEntry'},          {'label':'Graphics','action':'ECHO_graphicEntry'},
     {'label':'create resources from XML','action':'createRessourcesFromXMLForm'},      {'label':'create resources from XML','action':'createRessourcesFromXMLForm'},
         {'label':'Change Viewer Templates','action':'changeViewerTemplateSetsForm'},          {'label':'Change Viewer Templates','action':'changeViewerTemplateSetsForm'},

Removed from v.1.131  
changed lines
  Added in v.1.133


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