version 1.3, 2003/10/01 08:20:47
|
version 1.16, 2004/03/25 09:57:47
|
Line 1
|
Line 1
|
# Classes for displaying, browsing and organizing the archive |
""" Classes for displaying, browsing and organizing the archive |
|
20040303 Needs configuration for rescaling thumbs |
|
|
|
""" |
|
|
import addFolder |
import addFolder |
from OFS.Folder import Folder |
from OFS.Folder import Folder |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
|
from AccessControl import ClassSecurityInfo |
|
from Globals import InitializeClass |
|
|
class OSAS_ShowOnline(SimpleItem): |
class OSAS_ShowOnline(SimpleItem): |
|
security=ClassSecurityInfo() |
|
|
"""OnlineBrowser""" |
"""OnlineBrowser""" |
def __init__(self,id): |
def __init__(self,id): |
"""initialize a new instance""" |
"""initialize a new instance""" |
Line 14 class OSAS_ShowOnline(SimpleItem):
|
Line 21 class OSAS_ShowOnline(SimpleItem):
|
|
|
meta_type="OSAS_ShowOnline" |
meta_type="OSAS_ShowOnline" |
|
|
|
security.declareProtected('View','index_html') |
def index_html(self): |
def index_html(self): |
"""main view""" |
"""main view""" |
pt=PageTemplateFile('products/OSA_system/OSAS_ViewFiles.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_ViewFiles.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def getfilesystem2(self,start,reload=0): |
def getfilesystem2(self,start,reload=0): |
Line 52 class OSAS_ShowOnline(SimpleItem):
|
Line 60 class OSAS_ShowOnline(SimpleItem):
|
self.tree(path).toggle(path,file) |
self.tree(path).toggle(path,file) |
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) |
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) |
|
|
|
InitializeClass(OSAS_ShowOnline) |
|
|
def manage_AddOSAS_ShowOnlineForm(self): |
def manage_AddOSAS_ShowOnlineForm(self): |
"""interface for adding the OSAS_root""" |
"""interface for adding the OSAS_root""" |
pt=PageTemplateFile('products/OSA_system/AddOSAS_ShowOnline.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_ShowOnline.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): |
def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): |
Line 67 def manage_AddOSAS_ShowOnline(self,id,RE
|
Line 77 def manage_AddOSAS_ShowOnline(self,id,RE
|
|
|
class OSAS_StoreOnline(SimpleItem): |
class OSAS_StoreOnline(SimpleItem): |
"""Webfrontend für das Storagesystem""" |
"""Webfrontend für das Storagesystem""" |
|
security=ClassSecurityInfo() |
|
|
def __init__(self,id): |
def __init__(self,id): |
"""initialize a new instance""" |
"""initialize a new instance""" |
self.id = id |
self.id = id |
|
|
meta_type="OSAS_StoreOnline" |
meta_type="OSAS_StoreOnline" |
|
|
|
security.declareProtected('View','index_html') |
def index_html(self): |
def index_html(self): |
"""main view""" |
"""main view""" |
pt=PageTemplateFile('products/OSA_system/OSAS_StoreFiles.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_StoreFiles.zpt').__of__(self) |
return pt() |
return pt() |
|
|
|
def readContexts(self,path): |
|
"""Zeige Contexte""" |
|
if os.path.exists(path+"/index.meta"): |
|
|
|
return readContexts(path) |
|
|
|
else: |
|
|
|
return [] |
|
|
|
def rescaleThumbs(self,path): |
|
"""rescale thumbs of images in path""" |
|
|
|
os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 --replace >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path'])) |
|
|
|
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
|
#return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) |
|
pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_scaled.zpt').__of__(self) |
|
return pt() |
|
|
|
|
def getfilesystem2(self,start,reload=0): |
def getfilesystem2(self,start,reload=0): |
"""load filesystem""" |
"""load filesystem""" |
|
|
Line 116 class OSAS_StoreOnline(SimpleItem):
|
Line 150 class OSAS_StoreOnline(SimpleItem):
|
return isFolder(self,path) |
return isFolder(self,path) |
|
|
def isScannedDocument(self,path): |
def isScannedDocument(self,path): |
"""Test ob Eintrag ein Folder ist""" |
"""Test ob Eintrag ein Scanned Document ist""" |
return isScannedDocument(self,path) |
return isScannedDocument(self,path) |
|
|
def isFullText(self,path,folder_name): |
def isFullText(self,path,folder_name): |
"""Test ob Eintrag ein Folder ist""" |
"""Test ob Eintrag ein Folder ist""" |
return isFullText(path,folder_name) |
return isFullText(path,folder_name) |
|
|
|
def date(self): |
|
return strftime("%d.%m.%Y",localtime()) |
|
|
def addFolderForm(self,path): |
def addFolderForm(self,path): |
"""add a new path""" |
"""add a new path""" |
pt=PageTemplateFile('products/OSA_system/OSAS_addFolder.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addFolder.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def date(self): |
|
return strftime("%d.%m.%Y",localtime()) |
|
|
|
def addFolder(self,path,folder_name,description,archive_creation_date,creator): |
def addFolder(self,path,folder_name,description,archive_creation_date,creator): |
"""add the folder to the filesystem and write the metadata files""" |
"""add the folder to the filesystem and write the metadata files""" |
Line 142 class OSAS_StoreOnline(SimpleItem):
|
Line 177 class OSAS_StoreOnline(SimpleItem):
|
indexmeta=dom.toxml() |
indexmeta=dom.toxml() |
except: |
except: |
indexmeta="" |
indexmeta="" |
|
|
self.REQUEST.SESSION['indexmeta']=indexmeta |
self.REQUEST.SESSION['indexmeta']=indexmeta |
self.REQUEST.SESSION['path']=path |
self.REQUEST.SESSION['path']=path |
newtemplate=PageTemplateFile('products/OSA_system/editindex').__of__(self) |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/editindex').__of__(self) |
return newtemplate() |
return newtemplate() |
|
|
def EditIndex2(self): |
def EditIndex2(self): |
Line 165 class OSAS_StoreOnline(SimpleItem):
|
Line 201 class OSAS_StoreOnline(SimpleItem):
|
|
|
def add_metafile(self): |
def add_metafile(self): |
"""nothing""" |
"""nothing""" |
pt=PageTemplateFile('products/OSA_system/OSAS_addmetadata.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addmetadata.zpt').__of__(self) |
return pt() |
return pt() |
|
|
|
InitializeClass(OSAS_StoreOnline) |
|
|
def manage_AddOSAS_StoreOnlineForm(self): |
def manage_AddOSAS_StoreOnlineForm(self): |
"""interface for adding the OSAS_root""" |
"""interface for adding the OSAS_root""" |
pt=PageTemplateFile('products/OSA_system/AddOSAS_StoreOnline.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_StoreOnline.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None): |
def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None): |
Line 183 def manage_AddOSAS_StoreOnline(self,id,R
|
Line 221 def manage_AddOSAS_StoreOnline(self,id,R
|
|
|
|
|
|
|
|
def readContexts(path): |
|
"""ReadContext from index.meta""" |
|
dom=xml.dom.minidom.parse(path+"/index.meta") |
|
nodes=dom.getElementsByTagName('context') |
|
ret=[] |
|
|
|
|
|
for node in nodes: |
|
try: |
|
link=getText(node.getElementsByTagName('link')[0].childNodes) |
|
name=getText(node.getElementsByTagName('name')[0].childNodes) |
|
ret.append((link,name)) |
|
except: |
|
"""nothing""" |
|
return ret |
|
|
|
|
### Ab hier Baustelle |
### Ab hier Baustelle |
|
|
|
|
Line 195 from AccessControl import ClassSecurityI
|
Line 250 from AccessControl import ClassSecurityI
|
from AccessControl.Role import RoleManager |
from AccessControl.Role import RoleManager |
from Acquisition import Implicit |
from Acquisition import Implicit |
from Globals import Persistent |
from Globals import Persistent |
|
try: |
from time import strptime |
from time import strptime |
|
except: |
|
print "ignoring time.strptime import" |
|
|
from time import strftime |
from time import strftime |
import time |
import time |
import os.path |
import os.path |
Line 326 class filesystem(Implicit, Persistent, R
|
Line 385 class filesystem(Implicit, Persistent, R
|
|
|
def archive_the_path(self,path): |
def archive_the_path(self,path): |
"""parse indexmeta and return digilib path""" |
"""parse indexmeta and return digilib path""" |
|
|
try: |
try: |
#f = os.popen("cat "+path+"/index.meta","r") |
#f = os.popen("cat "+path+"/index.meta","r") |
f =file(path+"/index.meta","r") |
f =file(path+"/index.meta","r") |
Line 334 class filesystem(Implicit, Persistent, R
|
Line 394 class filesystem(Implicit, Persistent, R
|
|
|
try: |
try: |
dom = xml.dom.minidom.parseString(lines) |
dom = xml.dom.minidom.parseString(lines) |
|
if dom.getElementsByTagName("content-type"): |
if getText(dom.getElementsByTagName("content-type")[0].childNodes)=="folder": |
if getText(dom.getElementsByTagName("content-type")[0].childNodes)=="folder": |
"""folder nicht archivieren""" |
"""folder nicht archivieren""" |
return 0 |
return 0 |
else: |
|
archive_storage_date=getText(dom.getElementsByTagName("archive-storage-date")[0].childNodes) |
archive_storage_date=getText(dom.getElementsByTagName("archive-storage-date")[0].childNodes) |
|
|
if archive_storage_date=="": |
if archive_storage_date=="": |
Line 426 class filesystem2(Implicit, Persistent,
|
Line 487 class filesystem2(Implicit, Persistent,
|
|
|
def getfs(self,start): |
def getfs(self,start): |
"""load filessystem""" |
"""load filessystem""" |
|
|
f = os.popen("find "+ start+" -name '*' ","r") |
f = os.popen("find "+ start+" -name '*' ","r") |
lines = f.readlines() |
lines = f.readlines() |
|
|
Line 561 class browse(Implicit, Persistent, RoleM
|
Line 623 class browse(Implicit, Persistent, RoleM
|
|
|
def getfs(start): |
def getfs(start): |
"""return filesystem""" |
"""return filesystem""" |
|
|
|
|
f = os.popen("find "+ start+" -name '*'","r") |
f = os.popen("find "+ start+" -name '*'","r") |
lines = f.readlines() |
lines = f.readlines() |
return lines |
return lines |
Line 831 def getBib(nodelist):
|
Line 895 def getBib(nodelist):
|
return rc+"</table>" |
return rc+"</table>" |
|
|
def getMetafile(path): |
def getMetafile(path): |
"""get index.meta""" |
"""get index.meta and translate it to an HTML""" |
html=[] |
html=[] |
if not os.path.exists(path+"/index.meta"): |
if not os.path.exists(path+"/index.meta"): |
|
|
Line 840 def getMetafile(path):
|
Line 904 def getMetafile(path):
|
f = os.popen("cat "+path+"/index.meta","r") |
f = os.popen("cat "+path+"/index.meta","r") |
lines = f.read() |
lines = f.read() |
dom = xml.dom.minidom.parseString(lines) |
dom = xml.dom.minidom.parseString(lines) |
|
try: |
name=getText(dom.getElementsByTagName("name")[0].childNodes) |
name=getText(dom.getElementsByTagName("name")[0].childNodes) |
|
except: |
|
name="NOT_DEFINED!!!" |
|
try: |
creator=getText(dom.getElementsByTagName("creator")[0].childNodes) |
creator=getText(dom.getElementsByTagName("creator")[0].childNodes) |
|
except: |
|
creator="NOT_DEFINED!!!" |
|
|
|
try: |
creation_date=getText(dom.getElementsByTagName("archive-creation-date")[0].childNodes) |
creation_date=getText(dom.getElementsByTagName("archive-creation-date")[0].childNodes) |
|
except: |
|
creation_date="NOT_DEFINED!!!" |
|
|
|
try: |
description=getText(dom.getElementsByTagName("description")[0].childNodes) |
description=getText(dom.getElementsByTagName("description")[0].childNodes) |
|
except: |
|
description="NOT_DEFINED!!!" |
|
|
try: |
try: |
type=getText(dom.getElementsByTagName("content-type")[0].childNodes) |
type=getText(dom.getElementsByTagName("content-type")[0].childNodes) |
except: |
except: |