Diff for /OSAS/OSA_system/OSAS_addfiles.py between versions 1.24 and 1.53

version 1.24, 2004/04/05 21:54:42 version 1.53, 2010/02/15 19:09:00
Line 1 Line 1
 # Methoden und Classen zum Hinzufuegen von Dokumenten  # Methoden und Classen zum Hinzufuegen von Dokumenten
   
   
 from OSAS_helpers import readArchimedesXML, getISO, getText  from OSAS_helpers import readArchimedesXML, getText
 import os  import os
 import xml.dom.minidom  import xml.dom.minidom
 import re  import re
Line 15  from Globals import InitializeClass Line 15  from Globals import InitializeClass
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 import archive # check if this is necessary  import archive # check if this is necessary
   from Globals import package_home
   
 from xml.sax import make_parser  from xml.sax import make_parser
 from xml.sax.handler import ContentHandler  from xml.sax.handler import ContentHandler
   import sys
   import logging
   import xmlrpclib
   #ersetzt logging
   def logger(txt,method,txt2):
       """logging"""
       logging.info(txt+ txt2)
   
   
   
 def spaces(depth):  def spaces(depth):
     """needed in XMLtoTree"""      """needed in XMLtoTree"""
Line 49  class OSAS_add_Document(Folder): Line 58  class OSAS_add_Document(Folder):
     security.declarePublic('add_Document_config')      security.declarePublic('add_Document_config')
     def add_Document_config(self):      def add_Document_config(self):
         """Main configuration"""          """Main configuration"""
         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addDocument.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addDocument.zpt')).__of__(self)
         return pt()          return pt()
           
     security.declarePublic('change_OSAS_add_Document')      security.declarePublic('change_OSAS_add_Document')
Line 76  class OSAS_add_Document(Folder): Line 85  class OSAS_add_Document(Folder):
   
     def add4(self):      def add4(self):
         """Applet"""          """Applet"""
           
         return OSAS_add.add4(self)          return OSAS_add.add4(self)
   
     def add5(self):      def add5(self):
Line 86  class OSAS_add_Document(Folder): Line 96  class OSAS_add_Document(Folder):
         """write new index.meta file"""          """write new index.meta file"""
         return OSAS_add.add6(self)          return OSAS_add.add6(self)
   
       def addText2(self):
           """add only a text"""
           metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
           metadata['archive-creation-date']=OSAS_add.date(self)
           metadata['creator']=self.REQUEST['creator']
           metadata['description']=self.REQUEST['content_description']
           metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
           #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
           metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
           metadata['content-type']="fulltext document"
           self.reftype=self.REQUEST.SESSION['reftype']
           self.REQUEST.SESSION['add_metadata']=metadata   
           self.add_metadata=metadata
           self.metadata=self.REQUEST.SESSION['metadata']
           self.metadataprint=""
           for tag in self.metadata.keys():
               
               #print str(self.metadata[tag]).decode('utf-8').encode('utf-8')
               self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
   
           newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
           newtemplate.content_type="text/plain"
           renderxml = newtemplate(encoding='utf-8')
           #return renderxml
           metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
           
           f=open(metapath,'w')
   
           f.write(renderxml)
           f.close()
           os.chmod(metapath,0664)
           os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
           
           return OSAS_add.addText2(self)
   
       def addPdf2(self):
           """add only a pdf"""
           metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
           metadata['archive-creation-date']=OSAS_add.date(self)
           metadata['creator']=self.REQUEST['creator']
           metadata['description']=self.REQUEST['content_description']
           metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
           #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
           metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
           metadata['content-type']="fulltext document"
           self.reftype=self.REQUEST.SESSION['reftype']
           self.REQUEST.SESSION['add_metadata']=metadata   
           self.add_metadata=metadata
           self.metadata=self.REQUEST.SESSION['metadata']
           self.metadataprint=""
           for tag in self.metadata.keys():
                   self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
   
           newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
           newtemplate.content_type="text/plain"
           renderxml = newtemplate(encoding='utf-8')
           metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
           
           
           f=open(metapath,'w')
           f.write(renderxml)
           f.close()
           os.chmod(metapath,0664)
           os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
           
           return OSAS_add.addPdf2(self)
   
     def addImages(self,path):      def addImages(self,path):
         """Hinzufügen eines neuen Imagesfolders"""          """Hinzufuegen eines neuen Imagesfolders"""
         return OSAS_add.addImages(self,path)          return OSAS_add.addImages(self,path)
   
     def addImages2(self):      def addImages2(self):
Line 98  class OSAS_add_Document(Folder): Line 174  class OSAS_add_Document(Folder):
           
 def manage_AddOSAS_add_DocumentForm(self):  def manage_AddOSAS_add_DocumentForm(self):
     """interface for adding the OSAS_add_Metadata"""      """interface for adding the OSAS_add_Metadata"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_document.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_document.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_add_Document(self,id,RESPONSE=None):  def manage_AddOSAS_add_Document(self,id,RESPONSE=None):
Line 131  class OSAS_add_Text(Folder): Line 207  class OSAS_add_Text(Folder):
     security.declarePublic('add_Text_config')      security.declarePublic('add_Text_config')
     def add_Text_config(self):      def add_Text_config(self):
         """Main configuration"""          """Main configuration"""
         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addText.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addText.zpt')).__of__(self)
         return pt()          return pt()
           
     security.declarePublic('change_OSAS_add_Text')      security.declarePublic('change_OSAS_add_Text')
Line 141  class OSAS_add_Text(Folder): Line 217  class OSAS_add_Text(Folder):
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
       def addPdf(self,path):
           """Add a pdf"""
           return OSAS_add.addPdf(self,path)
   
       def addPdf2(self):
           """Read the file and store it"""
           return OSAS_add.addPdf2(self)
       
     def addText(self,path):      def addText(self,path):
         """Add a fulltext"""          """Add a fulltext"""
         return OSAS_add.addText(self,path)          return OSAS_add.addText(self,path)
Line 148  class OSAS_add_Text(Folder): Line 232  class OSAS_add_Text(Folder):
     def addText2(self):      def addText2(self):
         """Read the file and store it"""          """Read the file and store it"""
         return OSAS_add.addText2(self)          return OSAS_add.addText2(self)
       
 def manage_AddOSAS_add_TextForm(self):  def manage_AddOSAS_add_TextForm(self):
     """interface for adding the OSAS_add_Metadata"""      """interface for adding the OSAS_add_Metadata"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_text.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_text.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_add_Text(self,id,RESPONSE=None):  def manage_AddOSAS_add_Text(self,id,RESPONSE=None):
Line 172  class OSAS_add_contextData(Folder): Line 257  class OSAS_add_contextData(Folder):
                           
     meta_type='OSAS_add_contextData'          meta_type='OSAS_add_contextData'    
   
     def XmlToTree(self,URL):      def XmlToTree(self,URL,pwstr=None):
         """Collection XML to Tree"""          """Collection XML to Tree"""
                   
           
         class requestHandler(ContentHandler):          class requestHandler(ContentHandler):
             def __init__(self):              def __init__(self):
                 self.depth=0                  self.depth=0
Line 187  class OSAS_add_contextData(Folder): Line 271  class OSAS_add_contextData(Folder):
                     begin=""                      begin=""
                     end=""                      end=""
                     if self.depth==1:                      if self.depth==1:
                         print "hi"  
                         begin="<b>"                          begin="<b>"
                         end="</b>"                          end="</b>"
                                                   
                     self.retStr+=spaces(self.depth)+"<input type='radio' name='collection' value='%s'>%s</input>"%(attrs.get('url'),begin+attrs.get('name')+end)+"<br>\n"                      self.retStr+=spaces(self.depth)+"<input type='radio' name='collection' value='%s'>%s</input>"%(attrs.get('url'),begin+urllib.unquote(attrs.get('name'))+end)+"<br>\n"
   
   
                                           
Line 199  class OSAS_add_contextData(Folder): Line 282  class OSAS_add_contextData(Folder):
                 if name=="element":                  if name=="element":
                     self.depth-=1                      self.depth-=1
   
           if pwstr=="":
               pwstr=None
   
         try:          try:
               if pwstr:
                   URL+="/getCollectionTreeXML?pwstr=%s"%pwstr    
               else:
             URL+="/getCollectionTreeXML"              URL+="/getCollectionTreeXML"
             parser=make_parser()              parser=make_parser()
             curHandler=requestHandler()              curHandler=requestHandler()
Line 208  class OSAS_add_contextData(Folder): Line 296  class OSAS_add_contextData(Folder):
   
             parser.parse(urllib.urlopen(URL))              parser.parse(urllib.urlopen(URL))
             return curHandler.retStr              return curHandler.retStr
   
         except:          except:
               return URL
             return urllib.urlopen(URL).read()              return urllib.urlopen(URL).read()
                   
         
     def __init__(self,id,collection):      def __init__(self,id,collection):
         self.id=id          self.id=id
         self.collection=collection          self.collection=collection
Line 226  class OSAS_add_contextData(Folder): Line 317  class OSAS_add_contextData(Folder):
                                   
             def startElement(self,name,attrs):              def startElement(self,name,attrs):
                 if name=="partner":                  if name=="partner":
                     self.ret.append((attrs.get('id'),attrs.get('title')))                      self.ret.append((attrs.get('id'),attrs.get('title').encode('utf-8')))
   
   
         URL+="/getPartnersXML"          URL+="/getPartnersXML"
               
         try:  
               
             parser=make_parser()              parser=make_parser()
             curHandler=requestHandler()              curHandler=requestHandler()
             parser.setContentHandler(curHandler)              parser.setContentHandler(curHandler)
               
             parser.parse(urllib.urlopen(URL))              parser.parse(urllib.urlopen(URL))
           try:    
                     
             return curHandler.ret              return curHandler.ret
         except:          except:
             return [("",urllib.urlopen(URL).read())]                  return [("",URL)]
   
           
     def addContextData(self,path):      def addContextData(self,path):
         """Hinzufügen zu einer Sammlung"""          """Hinzufuegen zu einer Sammlung"""
           
           server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
           if path[0]=="/": #strip leading slash
           urlpath=path[1:]
       else:
           urlpath=path
         try:          try:
             urllib.urlopen(self.REQUEST['SERVER_URL']+path+"/index.meta")              urllib.urlopen(server+"/"+urlpath+"/index.meta")
                           
         except:          except:
             return self.REQUEST['SERVER_URL']+path+"/index.meta file has to exist!"              logger("OSAS_addfiles (addContextData)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
               return server+"/"+urlpath+"/index.meta file has to exist!"
   
         links=[(path,'standard storage')]          # old version for foxridge storage viewer
           #links=[(path,'storage server view')]
           # libcoll viewer with imagepath: needs pageimg directory
           links=[('http://libcoll.mpiwg-berlin.mpg.de/libview?mode=imagepath&url=%s/pageimg'%path,'libcoll standard viewer (pageimg)')]
           # libcoll viewer with texttool: needs texttool tag
           links+=[('http://libcoll.mpiwg-berlin.mpg.de/libview?mode=texttool&url=%s/index.meta'%path,'libcoll standard viewer (texttool)')]
                   
         links+=OSAS_show.readContexts(path) # auslesen von contexten für den link          links+=OSAS_show.readContexts(path) # auslesen von contexten fuer den link
         #print "LINK",links          #print "LINK",links
         #return links          #return links
         self.REQUEST.SESSION['links']=links          self.REQUEST.SESSION['links']=links
         pt=PageTemplateFile('Products/OSA_system/zpt/contextDataMain.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','contextDataMain.zpt')).__of__(self)
         return pt()          return pt()
           
           
     def addContextData2(self,path,collection,context,link,label,description,content_type,responsible,weight,credits=None):      def addContextData2(self,path,collection,link,label,description,content_type,responsible,weight,credits=None):
         """Hinzufuegen der Resource"""          """Hinzufuegen der Resource"""
         splitted=path.split("/")          splitted=path.split("/")
         #print "BLU"          #print "BLU"
         id=splitted[len(splitted)-1]          id=splitted[len(splitted)-1]
         title=splitted[len(splitted)-1]          title=splitted[len(splitted)-1]
         metalink=self.REQUEST['SERVER_URL']+path+"/index.meta"          server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
           if path[0]=="/": #strip leading slash
           urlpath=path[1:]
       else:
           urlpath=path
   
   
           metalink=server+"/"+urlpath+"/index.meta"
                   
         #link=TOBEDONE"          #link=TOBEDONE"
         """Hinzufügen der Ressource"""          """Hinzufuegen der Ressource"""
   
         params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'content_type':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})          params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'contentType':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})
   
         retStr=urllib.urlopen(collection+"/addResource",params).read()          server=xmlrpclib.ServerProxy(collection,allow_none=True)   
         if not retStr:          try:
             return "An Error occured adding the resource\n"              #retStr=urllib.urlopen(collection+"/addResource",params).read()
   
         urllib.urlopen(collection+"/"+id+"/ECHO_getResourceMD").read()              retStr=server.addResource(id,title,label,description,content_type,responsible,link,metalink,weight,credits)
         #exec("collection_object=self"+collection)  
                   
           except:
               return "An Error occured adding the resource A\n", collection,params,str(sys.exc_info()[0]),str(sys.exc_info()[1])
   
           #print "added"
           logging.debug("Add an resource:"+repr(retStr))
           if not retStr:
               return "An Error occured adding the resource B\n", collection,params
                   
         #ECHO_collection.manage_addECHO_resource(collection_object,id,title,label,description,content_type,responsible,link,metalink,credits,weight,RESPONSE=None)          #print collection+"/"+id+"/copyIndex_meta2echo_resource"
         #print "HI5"          #TODO: fehler falls generate label oder title nicht funktioniert abfangen, bei ECHO geht das z.B. manchmal nicht.
           #server=xmlrpclib.ServerProxy(collection+"/"+id,allow_none=True)
           #server2=getattr(server,id)
           #server2.copyIndex_meta2echo_resource()
           #urllib.urlopen(collection+"/"+id+"/copyIndex_meta2echo_resource").read()
           #print "copy2res"
       #try:
               #urllib.urlopen(collection+"/"+id+"/generate_label").read()
      #         server2.generate_label()
         #  except:
       #        logger("OSAS_addfiles (addContextData2,label not generated)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
         #try:          #try:
         #    getattr(collection_object,id).ECHO_getResourceMD()              #urllib.urlopen(collection+"/"+id+"/generate_title").read()
      #         server2.generate_title()
         #except:          #except:
         #    """nothing"""      #    logger("OSAS_addfiles (addContextData2,title not generated)", logging.INFO,"%s (%s)"%sys.exc_info()[0:2])
         #return "BLUByy"              
   
         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)          return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
                   
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
Line 299  class OSAS_add_contextData(Folder): Line 424  class OSAS_add_contextData(Folder):
             
     def add_contextData_config(self):      def add_contextData_config(self):
         """Main configuration"""          """Main configuration"""
         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_add_contextData.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_add_contextData.zpt')).__of__(self)
         return pt()          return pt()
           
           
     def change_OSAS_add_contextData(self,collection,RESPONSE=None):      def change_OSAS_add_contextData(self,collection,serverUrl,pwstr=None,RESPONSE=None):
         """Change"""          """Change"""
           self.pwstr=pwstr
         self.collection=collection          self.collection=collection
           self.serverUrl=serverUrl
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
                           
 def manage_AddOSAS_add_contextDataForm(self):  def manage_AddOSAS_add_contextDataForm(self):
     """interface for adding the OSAS_add_Metadata"""      """interface for adding the OSAS_add_Metadata"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_contextData.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_contextData.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):  def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):
Line 325  def manage_AddOSAS_add_contextData(self, Line 452  def manage_AddOSAS_add_contextData(self,
 InitializeClass(OSAS_add_contextData)  InitializeClass(OSAS_add_contextData)
   
 class OSAS_add_Presentation(Folder):  class OSAS_add_Presentation(Folder):
     """Hinzufügen der Presentationsinformationen"""      """Hinzufuegen der Presentationsinformationen"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
   
     def __init__(self,id):      def __init__(self,id):
Line 343  class OSAS_add_Presentation(Folder): Line 470  class OSAS_add_Presentation(Folder):
     security.declarePublic('add_Presentation_config')      security.declarePublic('add_Presentation_config')
     def add_Presentation_config(self):      def add_Presentation_config(self):
         """Main configuration"""          """Main configuration"""
         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addPresentation.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addPresentation.zpt')).__of__(self)
         return pt()          return pt()
           
     security.declarePublic('change_OSAS_add_Presentation')      security.declarePublic('change_OSAS_add_Presentation')
Line 354  class OSAS_add_Presentation(Folder): Line 481  class OSAS_add_Presentation(Folder):
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
     def addPresentation(self,path):      def addPresentation(self,path):
         """Hinzufügen der Presenationsinformation"""          """Hinzufuegen der Presenationsinformation"""
         return OSAS_add.addPresentation(self,path)          return OSAS_add.addPresentation(self,path)
   
     def addPresentation2(self):      def addPresentation2(self):
Line 363  class OSAS_add_Presentation(Folder): Line 490  class OSAS_add_Presentation(Folder):
           
 def manage_AddOSAS_add_PresentationForm(self):  def manage_AddOSAS_add_PresentationForm(self):
     """interface for adding the OSAS_add_Metadata"""      """interface for adding the OSAS_add_Metadata"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_presentation.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_presentation.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):  def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):
Line 377  def manage_AddOSAS_add_Presentation(self Line 504  def manage_AddOSAS_add_Presentation(self
 InitializeClass(OSAS_add_Presentation)  InitializeClass(OSAS_add_Presentation)
   
 class OSAS_combineTextImage(Folder):  class OSAS_combineTextImage(Folder):
     """Hinzufüge der Combine Text und Image"""      """Hinzufuege der Combine Text und Image"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
   
     def __init__(self,id):      def __init__(self,id):
Line 395  class OSAS_combineTextImage(Folder): Line 522  class OSAS_combineTextImage(Folder):
     security.declarePublic('combineTextImage_config')      security.declarePublic('combineTextImage_config')
     def combineTextImage_config(self):      def combineTextImage_config(self):
         """Main configuration"""          """Main configuration"""
         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_combineTextImage.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_combineTextImage.zpt')).__of__(self)
         return pt()          return pt()
           
     security.declarePublic('change_OSAS_combineTextImage')      security.declarePublic('change_OSAS_combineTextImage')
Line 407  class OSAS_combineTextImage(Folder): Line 534  class OSAS_combineTextImage(Folder):
                           
     security.declarePublic('combineTextImage')      security.declarePublic('combineTextImage')
     def combineTextImage(self,path):      def combineTextImage(self,path):
         """Hinzufügen der Presenationsinformation"""          """Hinzufuegen der Presenationsinformation"""
         """gibt input formular zur erstellung des texttools meta tag aus"""          """gibt input formular zur erstellung des texttools meta tag aus"""
     files = os.listdir(path)      files = os.listdir(path)
           
Line 435  class OSAS_combineTextImage(Folder): Line 562  class OSAS_combineTextImage(Folder):
     except:      except:
         filelanguage=""          filelanguage=""
                                   
     self.REQUEST.SESSION['isolist']=getISO()          self.REQUEST.SESSION['isolist']=OSAS_add.getISO()
     tmp=getISO().keys()          
           tmp=self.REQUEST.SESSION['isolist'].keys()
     tmp.sort()      tmp.sort()
     self.REQUEST.SESSION['isolistsort']=tmp      self.REQUEST.SESSION['isolistsort']=tmp
     self.REQUEST.SESSION['path']=path      self.REQUEST.SESSION['path']=path
Line 446  class OSAS_combineTextImage(Folder): Line 574  class OSAS_combineTextImage(Folder):
     self.REQUEST.SESSION['filelanguage']=filelanguage      self.REQUEST.SESSION['filelanguage']=filelanguage
     self.REQUEST.SESSION['externxml']=externxml      self.REQUEST.SESSION['externxml']=externxml
   
     newtemplate=PageTemplateFile('Products/OSA_system/zpt/ImageandText').__of__(self)          newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ImageandText')).__of__(self)
     return newtemplate()      return newtemplate()
           
     def getProjects(self,obj_ids=None):      def getViewerTemplateSets(self,obj_ids=None):
         """Get the Project title for configuration"""          """Get the ViewerTemplateSet title for configuration"""
         ret=[]          ret=[]
         print "HI"          viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
   
         try:          try:
             projects=self.ZopeFind(self.projects,obj_metatypes=['OSAS_project'],obj_ids=obj_ids)#assumes projects folder somewhere in the hierarchie.              viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
             print "pr"              
             for project in projects:              for viewerTemplateSet in viewerTemplateSets:
                 ret.append((project[1].title,project[0],project[1]))                  ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1]))
             print ret              
             return ret              return ret
                   
         except:          except:
             return [('no Projectfolders','')]              return [('no ViewerTemplateSetfolders','')]
   
     def getTextToolsField(self,path,name,default=''):      def getTextToolsField(self,path,name,default=''):
         """Lese Textoolsfelder aus index.meta im path aus"""          """Lese Textoolsfelder aus index.meta im path aus"""
Line 471  class OSAS_combineTextImage(Folder): Line 600  class OSAS_combineTextImage(Folder):
             dom=xml.dom.minidom.parse(path+"/index.meta")              dom=xml.dom.minidom.parse(path+"/index.meta")
             node=dom.getElementsByTagName('texttool')[0] #getNode              node=dom.getElementsByTagName('texttool')[0] #getNode
             subnode=node.getElementsByTagName(name)[0]              subnode=node.getElementsByTagName(name)[0]
             print getText(subnode.childNodes)  
               # bei text wird nur der Folder gebraucht
               if name=="text":
                   splitted=getText(subnode.childNodes).split("/")
                   return splitted[len(splitted)-2]
               else:
             return getText(subnode.childNodes)              return getText(subnode.childNodes)
         except:          except:
             return default              return default
Line 479  class OSAS_combineTextImage(Folder): Line 613  class OSAS_combineTextImage(Folder):
   
     def combineTextImage2(self,path):      def combineTextImage2(self,path):
         """Eingabe von Metadateninformationen"""          """Eingabe von Metadateninformationen"""
           
           # correct path
           path=re.sub("//","/",path)
         OSAS_add.combineTextImage2(self,path) # Add images          OSAS_add.combineTextImage2(self,path) # Add images
         splitted=path.split("/")          splitted=path.split("/")
         linkPath=splitted[len(splitted)-1]          linkPath=splitted[len(splitted)-1]
         linkViewerEnvironment="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath          linkViewerEnvironmentImages="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
           linkViewerEnvironmentOnlyText="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=textonly" % linkPath
   
           if self.REQUEST.has_key('image'): # bilder vorhanden
               linkViewerEnvironment=linkViewerEnvironmentImages
           else:
               linkViewerEnvironment=linkViewerEnvironmentOnlyText
               
         self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment          self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
   
         writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")          writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")
                   
         pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_combineTextImageFinal.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImageFinal.zpt')).__of__(self)
   
         return pt()          return pt()
   
     def isSelectedProject(self,obj,id):      def isSelectedViewerTemplateSet(self,obj,id):
         """is ausgewählt"""          """is ausgewaehlt"""
                   
         if self.REQUEST['project']==id:          if self.REQUEST['viewerTemplateSet']==id:
             return 1              return 1
         else:          else:
             return None              return None
Line 511  def writeToContext(path,link,description Line 655  def writeToContext(path,link,description
             nameTag=getText(context.getElementsByTagName('name')[0].childNodes)              nameTag=getText(context.getElementsByTagName('name')[0].childNodes)
             linkTag=getText(context.getElementsByTagName('link')[0].childNodes)              linkTag=getText(context.getElementsByTagName('link')[0].childNodes)
                           
             print "unique",context,nameTag,description,linkTag,link              
             linkTag=re.sub("\:86","",linkTag) # alter port 86 gleich ohne port nummer (hack)              linkTag=re.sub("\:86","",linkTag) # alter port 86 gleich ohne port nummer (hack)
             if (nameTag==description) and (linkTag==link):              if (nameTag==description) and (linkTag==link):
                 node.removeChild(context).unlink()                  node.removeChild(context).unlink()
Line 532  def writeToContext(path,link,description Line 676  def writeToContext(path,link,description
           
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     #print path+"/index.meta"      #print path+"/index.meta"
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml(encoding="UTF-8"))
     writefile.close()      writefile.close()
   
 def manage_AddOSAS_combineTextImageForm(self):  def manage_AddOSAS_combineTextImageForm(self):
     """interface for adding the OSAS_add_Metadata"""      """interface for adding the OSAS_add_Metadata"""
     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_combineTextImage.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImage.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):  def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):

Removed from v.1.24  
changed lines
  Added in v.1.53


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