Annotation of ImageArchive/ImageArchive.py, revision 1.1

1.1     ! dwinter     1: from OFS.Folder import Folder
        !             2: from OFS.SimpleItem import SimpleItem
        !             3: from Globals import Persistent
        !             4: from Acquisition import Implicit
        !             5: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
        !             6: from Products.PageTemplates.PageTemplate import PageTemplate
        !             7: import re
        !             8: import os
        !             9: import os.path
        !            10: import urllib
        !            11: import xml.dom.minidom
        !            12: 
        !            13: def getText(nodelist):
        !            14:     
        !            15:     rc = ""
        !            16:     for node in nodelist:
        !            17:     
        !            18:        if node.nodeType == node.TEXT_NODE:
        !            19:            rc = rc + node.data
        !            20:     return rc
        !            21: 
        !            22: 
        !            23: class ImageDigilib(SimpleItem,Persistent,Implicit):
        !            24:     """Anzeige object fuer digilib"""
        !            25:     meta_type="ImageDigilib"
        !            26: 
        !            27:     def __init__(self,id,filename):
        !            28:         self.id=id
        !            29:         self.title=filename
        !            30:         self.filename=filename
        !            31: 
        !            32:     def uploadImage(self,fileupload,path_name):
        !            33:         """upload an Image from an Requast"""
        !            34:         #path_name=self.ImageStoragePath
        !            35:         filename=path_name+"/"+fileupload.filename
        !            36:         filedata=fileupload.read()
        !            37:         f=open(filename,"w")
        !            38:         f.write(filedata)
        !            39:         f.close()
        !            40:         os.chmod(filename,0644)
        !            41: 
        !            42:     def download(self):
        !            43:         """download"""
        !            44:         path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&mo=file"
        !            45:         #self.REQUEST.SESSION['string']="<img src=\"%s\">"% path
        !            46:         #pt=PageTemplateFile('Products/ImageArchive/thumb.zpt').__of__(self)
        !            47:         return self.REQUEST.RESPONSE.redirect(path)
        !            48:     
        !            49:     def thumb(self):
        !            50:         """show thumb"""
        !            51:         if not os.path.exists("/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+self.filename):
        !            52:             #image=urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&dw=150").read()
        !            53:             #f=open("/mpiwg/temp/online/scaled/small/"+self.ImageViewerPath+"/"+self.filename,"w")
        !            54:             #f.write(image)
        !            55:             #f.close()
        !            56:             os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/small 150 &"% self.ImageViewerPath)
        !            57:             
        !            58:         
        !            59:         #path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?fn="+self.ImageViewerPath+"/"+self.filename+"&dw=100&dh=100"
        !            60:         path="/thumbs"+self.ImageViewerPath+"/"+self.filename
        !            61:         self.REQUEST.SESSION['string']="<img src=\"%s\">"% path
        !            62:         pt=PageTemplateFile('Products/ImageArchive/thumb.zpt').__of__(self)
        !            63:         return pt()
        !            64:     
        !            65:     def index_html(self):
        !            66:         """show image"""
        !            67:         path="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/digilib.jsp?fn="+self.ImageViewerPath+"/"+self.filename
        !            68:         #self.REQUEST.SESSION['string']="<img src=\"%s\">"% path
        !            69:         #pt=PageTemplateFile('Products/ImageArchive/thumb.zpt').__of__(self)
        !            70:         return self.REQUEST.RESPONSE.redirect(path)
        !            71: 
        !            72:     
        !            73: def manage_AddImageDigilibForm(self):
        !            74:     """Nothing yet"""
        !            75:     pt=PageTemplateFile('Products/ImageArchive/AddImageDigilibForm.zpt').__of__(self)
        !            76:     return pt()
        !            77:     
        !            78: def manage_AddImageDigilib(self,id,fileupload,RESPONSE=None):
        !            79:     """Add ImageCollection"""
        !            80:     #fileupload=self.REQUEST['fileupload']
        !            81:     newObj=ImageDigilib(id,fileupload.filename)
        !            82:     
        !            83:     self._setObject(id,newObj)
        !            84:     getattr(self,id).uploadImage(fileupload,self.ImageStoragePath)
        !            85:     
        !            86:     if RESPONSE is not None:
        !            87:         RESPONSE.redirect('manage_main')
        !            88: 
        !            89:                  
        !            90: class ImageCollection(Folder, Persistent, Implicit):
        !            91:     """Sammelordner für Bilder"""
        !            92:     meta_type="ImageCollection"
        !            93: 
        !            94:     def __init__(self,id,title,ImageStoragePath,ImageViewerPath):
        !            95:         self.id=id
        !            96:         self.title=title
        !            97:         self.ImageStoragePath=ImageStoragePath
        !            98:         self.ImageViewerPath=ImageViewerPath
        !            99: 
        !           100: 
        !           101:     manage_options = Folder.manage_options+(
        !           102:         {'label':'Main Config','action':'ImageCollection_config'},
        !           103:         {'label':'Import','action':'ImportFiles'},
        !           104:         )
        !           105: 
        !           106:     def xmlinput(self,url):
        !           107:         """Anzeige von ausgewaehlten thumbs"""
        !           108:         #return url
        !           109:         xmldoc=urllib.urlopen(url).read()
        !           110:         
        !           111:         dom=xml.dom.minidom.parseString(xmldoc)
        !           112:         
        !           113:         images=dom.getElementsByTagName('imagename')
        !           114:         rc=[]
        !           115:         for image in images:
        !           116:             text=getText(image.childNodes)
        !           117:             if not text=="":
        !           118:                 rc.append(str(text))
        !           119: 
        !           120:         self.REQUEST.SESSION['filenames']=rc
        !           121:         pt=PageTemplateFile('Products/ImageArchive/overview_selected.zpt').__of__(self)
        !           122:         return pt()        
        !           123: 
        !           124:     
        !           125:     def addImage(self):
        !           126:         """Add an Image"""
        !           127:         pt=PageTemplateFile('Products/ImageArchive/addImage.zpt').__of__(self)
        !           128:         return pt()
        !           129:     
        !           130:     def addImage2(self,fileupload,RESPONSE=None):
        !           131:         """Add"""
        !           132:         #print "FU",fileupload
        !           133:         manage_AddImageDigilib(self,fileupload.filename,fileupload)
        !           134:         return RESPONSE.redirect(self.REQUEST['URL1']+'/'+fileupload.filename)
        !           135:         #return  self.REQUEST['URL1']+'/'+fileupload.filename
        !           136:     
        !           137:     def ImportFiles(self,RESPONSE=None):
        !           138:         """Import the existing files of a folder"""
        !           139:         files=os.listdir(self.ImageStoragePath)
        !           140:         ret=""
        !           141:         #print self.__dict__
        !           142:         for file in files:
        !           143:             if self.__dict__.has_key(file):
        !           144:                 
        !           145:                 ret=ret+"<br>"+file+" already exists!"
        !           146:             else:
        !           147:                 ret=ret+"<br>"+file+" created!"
        !           148:                 newObj=ImageDigilib(file,file)
        !           149:                 #print newObj,file
        !           150:                 #print newObj
        !           151:                 self._setObject(file,newObj)
        !           152:         #print ret
        !           153:         pt=PageTemplateFile('Products/ImageArchive/out.zpt',ret).__of__(self)
        !           154:         RESPONSE.redirect('manage_main')
        !           155:         
        !           156:     def ImageCollection_config(self):
        !           157:         """Nothing yet"""
        !           158:         pt=PageTemplateFile('Products/ImageArchive/ChangeImageCollectionForm.zpt').__of__(self)
        !           159:         return pt()
        !           160: 
        !           161:     def ChangeImageCollection(self,title,ImageStoragePath,ImageViewerPath,RESPONSE=None):
        !           162:         """Change"""
        !           163:         self.title=title
        !           164:         self.ImageStoragePath=ImageStoragePath
        !           165:         self.ImageViewerPath=ImageViewerPath
        !           166: 
        !           167:         if RESPONSE is not None:
        !           168:             RESPONSE.redirect('manage_main')
        !           169: 
        !           170:     def show_selected_thumbs(self):
        !           171:         #ids=[]
        !           172:         
        !           173:         return self.REQUEST.SESSION['filenames']
        !           174: 
        !           175:     def show_thumbs(self):
        !           176:         ids=[]
        !           177:         for entry in self.__dict__:
        !           178:             #print entry
        !           179:             if hasattr(getattr(self,entry),'thumb'):
        !           180:                 ids.append(entry)
        !           181:         #print ids
        !           182:         return ids
        !           183: 
        !           184:     def thumblistSelected(self):
        !           185:         """main template collection"""
        !           186:         pt=PageTemplateFile('Products/ImageArchive/thumbselected.zpt').__of__(self)
        !           187:         return pt()
        !           188: 
        !           189:     def thumblist(self):
        !           190:         """main template collection"""
        !           191:         pt=PageTemplateFile('Products/ImageArchive/thumbs.zpt').__of__(self)
        !           192:         return pt()
        !           193: 
        !           194:     def navig_html(self):
        !           195:         """navigation"""
        !           196:         pt=PageTemplateFile('Products/ImageArchive/navigation.zpt').__of__(self)
        !           197:         return pt()
        !           198: 
        !           199: 
        !           200:     def index_html(self):
        !           201:         """main template collection"""
        !           202:         if self.REQUEST.has_key('filename'):
        !           203:             filen=self.REQUEST['filename']
        !           204:         else:
        !           205:             filen=""
        !           206:         self.REQUEST.SESSION['filename']=filen
        !           207:         pt=PageTemplateFile('Products/ImageArchive/overview.zpt').__of__(self)
        !           208:         return pt()
        !           209:     
        !           210: def manage_AddImageCollectionForm(self):
        !           211:     """Nothing yet"""
        !           212:     pt=PageTemplateFile('Products/ImageArchive/AddImageCollectionForm.zpt').__of__(self)
        !           213:     return pt()
        !           214:     
        !           215: def manage_AddImageCollection(self,id,title,ImageStoragePath,ImageViewerPath,RESPONSE=None):
        !           216:     """Add ImageCollection"""
        !           217:     newObj=ImageCollection(id,title,ImageStoragePath,ImageViewerPath)
        !           218:     self._setObject(id,newObj)
        !           219:     
        !           220:     if RESPONSE is not None:
        !           221:         RESPONSE.redirect('manage_main')
        !           222: 
        !           223: 

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