Diff for /OSAS/OSA_system/OSAS_addfiles.py between versions 1.17 and 1.21

version 1.17, 2004/03/03 13:02:54 version 1.21, 2004/04/02 07:57:25
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
   import os
 import xml.dom.minidom  import xml.dom.minidom
 from Products.ECHO_content import ECHO_collection  
 import urllib  import urllib
 import OSAS_add  import OSAS_add
 import OSAS_show  import OSAS_show
Line 11  from AccessControl import ClassSecurityI Line 14  from AccessControl import ClassSecurityI
 from Globals import InitializeClass  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
   
   
   from xml.sax import make_parser
   from xml.sax.handler import ContentHandler
   
   def spaces(depth):
       """needed in XMLtoTree"""
       tmp=""
       k=0
       while k<2*depth:
           k+=1
           tmp=tmp+"&nbsp;"+"&nbsp;"
       return tmp
   
   
 class OSAS_add_Document(Folder):  class OSAS_add_Document(Folder):
     """Hinzufuegen eines Dokumentes zum Storage"""      """Hinzufuegen eines Dokumentes zum Storage"""
Line 145  def manage_AddOSAS_add_Text(self,id,RESP Line 163  def manage_AddOSAS_add_Text(self,id,RESP
                           
 InitializeClass(OSAS_add_Text)  InitializeClass(OSAS_add_Text)
   
   
 class OSAS_add_contextData(Folder):  class OSAS_add_contextData(Folder):
     """Einfuegen eines Documentes in eine Collection"""      """Einfuegen eines Documentes in eine Collection"""
           
Line 153  class OSAS_add_contextData(Folder): Line 172  class OSAS_add_contextData(Folder):
                           
     meta_type='OSAS_add_contextData'          meta_type='OSAS_add_contextData'    
   
       def XmlToTree(self,URL):
           """Collection XML to Tree"""
           
           
           class requestHandler(ContentHandler):
               def __init__(self):
                   self.depth=0
                   self.retStr=""
                   
               def startElement(self,name,attrs):
                   if name=="element":
                       self.depth+=1
                       self.retStr+=spaces(self.depth)+"<input type='checkbox' name='collection' value='%s'>%s</input>"%(attrs.get('url'),attrs.get('name'))+"<br>\n"
   
   
                       
               def endElement(self,name):
                   if name=="element":
                       self.depth-=1
   
   
           parser=make_parser()
           curHandler=requestHandler()
           parser.setContentHandler(curHandler)
           #return urllib.urlopen(URL).read()
           parser.parse(urllib.urlopen(URL))
           return curHandler.retStr
   
     def __init__(self,id,collection):      def __init__(self,id,collection):
         self.id=id          self.id=id
         self.collection=collection          self.collection=collection
Line 164  class OSAS_add_contextData(Folder): Line 211  class OSAS_add_contextData(Folder):
                 list.append(object)                  list.append(object)
         return list          return list
   
     def printChilds(self,startItem,depth,items,enddepth):  
   
       
       def printChilds(self,startItem,depth,items,enddepth):
           """NOT USED ANYMORE"""
         def spaces(depth):          def spaces(depth):
             tmp=""              tmp=""
             k=0              k=0
Line 191  class OSAS_add_contextData(Folder): Line 240  class OSAS_add_contextData(Folder):
   
         return tmp          return tmp
                                           
   
     def generateTree(self,depth=10):      def generateTree(self,depth=10):
         """Erzeugt HTML-Tree der Collection"""          """Erzeugt HTML-Tree der Collection NOTE USED ANYMORE"""
           
         exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")          exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")
         #print items[0][0]          #print items[0][0]
Line 205  class OSAS_add_contextData(Folder): Line 255  class OSAS_add_contextData(Folder):
         """Zeige Partnerliste"""          """Zeige Partnerliste"""
         exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()")          exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()")
         return items          return items
       
     def addContextData(self,path):      def addContextData(self,path):
         """Hinzufügen zu einer Sammlung"""          """Hinzufügen zu einer Sammlung"""
         try:          try:
Line 223  class OSAS_add_contextData(Folder): Line 274  class OSAS_add_contextData(Folder):
         return pt()          return pt()
           
           
     def addContextData2(self,path,collection,context,science,practice,source_type,period,link,label,description,content_type,responsible,weight,credits=None):      def addContextData2(self,path,collection,context,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"
Line 234  class OSAS_add_contextData(Folder): Line 285  class OSAS_add_contextData(Folder):
         #link=TOBEDONE"          #link=TOBEDONE"
         """Hinzufügen der Ressource"""          """Hinzufügen 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})
   
           retStr=urllib.urlopen(collection+"/addResource",params).read()
           if not retStr:
               return "An Error occured adding the resource\n"
   
           urllib.urlopen(collection+"/"+id+"/ECHO_getResourceMD").read()
           #exec("collection_object=self"+collection)
                   
         exec("collection_object=self"+collection)  
                   
         ECHO_collection.manage_addECHO_resource(collection_object,id,title,label,description,content_type,responsible,link,metalink,credits,weight,RESPONSE=None)          
           #ECHO_collection.manage_addECHO_resource(collection_object,id,title,label,description,content_type,responsible,link,metalink,credits,weight,RESPONSE=None)
         #print "HI5"          #print "HI5"
         try:          #try:
             getattr(collection_object,id).ECHO_getResourceMD()          #    getattr(collection_object,id).ECHO_getResourceMD()
         except:          #except:
             """nothing"""          #    """nothing"""
         #return "BLUByy"          #return "BLUByy"
         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)          return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
                   
Line 331  def manage_AddOSAS_add_Presentation(self Line 390  def manage_AddOSAS_add_Presentation(self
 InitializeClass(OSAS_add_Presentation)  InitializeClass(OSAS_add_Presentation)
   
 class OSAS_combineTextImage(Folder):  class OSAS_combineTextImage(Folder):
     """Hinzufügen der Combine Text und Image"""      """Hinzufüge der Combine Text und Image"""
     security=ClassSecurityInfo()      security=ClassSecurityInfo()
   
     def __init__(self,id):      def __init__(self,id):
Line 362  class OSAS_combineTextImage(Folder): Line 421  class OSAS_combineTextImage(Folder):
     security.declarePublic('combineTextImage')      security.declarePublic('combineTextImage')
     def combineTextImage(self,path):      def combineTextImage(self,path):
         """Hinzufügen der Presenationsinformation"""          """Hinzufügen der Presenationsinformation"""
         return OSAS_add.combineTextImage(self,path)          """gibt input formular zur erstellung des texttools meta tag aus"""
       files = os.listdir(path)
       
       texts=[]
       imagefolders=[]
       presentationfolders=[]
   
       splitted=path.split("/")
       externxml=readArchimedesXML(splitted[len(splitted)-1])
       
       for filename in files:
           #print "FN",filename
           if archive.isdigilib2(path+"/"+filename):
               imagefolders.append(filename)
               
           if archive.isFullText(path,filename):
               #print "HI"
               texts.append(filename)
           if archive.isPresentation(path,filename):
               presentationfolders.append(filename)
       
       dom=xml.dom.minidom.parse(path+"/index.meta")
       try:
           filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
       except:
           filelanguage=""
                   
       self.REQUEST.SESSION['isolist']=getISO()
       tmp=getISO().keys()
       tmp.sort()
       self.REQUEST.SESSION['isolistsort']=tmp
       self.REQUEST.SESSION['path']=path
       self.REQUEST.SESSION['texts']=texts
       self.REQUEST.SESSION['imagefolders']=imagefolders
       self.REQUEST.SESSION['presentationfolders']=presentationfolders
       self.REQUEST.SESSION['filelanguage']=filelanguage
       self.REQUEST.SESSION['externxml']=externxml
   
       newtemplate=PageTemplateFile('Products/OSA_system/zpt/ImageandText').__of__(self)
       return newtemplate()
       
       def getProjects(self,obj_ids=None):
           """Get the Project title for configuration"""
           ret=[]
           print "HI"
           try:
               projects=self.ZopeFind(self.projects,obj_metatypes=['OSAS_project'],obj_ids=obj_ids)#assumes projects folder somewhere in the hierarchie.
               print "pr"
               for project in projects:
                   ret.append((project[1].title,project[0],project[1]))
               print ret
               return ret
           
           except:
               return [('no Projectfolders','')]
   
       def getTextToolsField(self,path,name,default=''):
           """Lese Textoolsfelder aus index.meta im path aus"""
           
           try:
               dom=xml.dom.minidom.parse(path+"/index.meta")
               node=dom.getElementsByTagName('texttool')[0] #getNode
               subnode=node.getElementsByTagName(name)[0]
               print getText(subnode.childNodes)
               return getText(subnode.childNodes)
           except:
               return default
               
   
     def combineTextImage2(self,path):      def combineTextImage2(self,path):
         """Eingabe von Metadateninformationen"""          """Eingabe von Metadateninformationen"""
Line 378  class OSAS_combineTextImage(Folder): Line 504  class OSAS_combineTextImage(Folder):
   
         return pt()          return pt()
   
       def isSelectedProject(self,obj,id):
           """is ausgewählt"""
           
           if self.REQUEST['project']==id:
               return 1
           else:
               return None
   
 def writeToContext(path,link,description):  def writeToContext(path,link,description):
     """Created an additional entry to the index.meta file of path"""      """Created an additional entry to the index.meta file of path"""

Removed from v.1.17  
changed lines
  Added in v.1.21


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