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>