version 1.47, 2005/09/12 16:42:10
|
version 1.61, 2007/07/24 09:11:46
|
Line 17 import urllib
|
Line 17 import urllib
|
import xmlrpclib |
import xmlrpclib |
import vlp_xmlhelpers |
import vlp_xmlhelpers |
import sys |
import sys |
|
import os |
|
from stat import * |
from types import * |
from types import * |
from Globals import package_home |
from Globals import package_home |
|
|
Line 143 def manage_addSendMailForm(self, id, toA
|
Line 145 def manage_addSendMailForm(self, id, toA
|
|
|
|
|
class VLP_essay(Folder): |
class VLP_essay(Folder): |
"""classe für VLP essays""" |
"""classe fr VLP essays""" |
|
|
meta_type="VLP_essay" |
meta_type="VLP_essay" |
|
|
Line 228 class VLP_essay(Folder):
|
Line 230 class VLP_essay(Folder):
|
|
|
pages.sort(sortFind) |
pages.sort(sortFind) |
#print str(pages[int(pagenum)][1]()) |
#print str(pages[int(pagenum)][1]()) |
|
|
if pages[int(pagenum)-1][1].meta_type=='File': |
if pages[int(pagenum)-1][1].meta_type=='File': |
|
|
#return makeXML(str(pages[int(pagenum)-1][1])) |
#return makeXML(str(pages[int(pagenum)-1][1])) |
Line 260 class VLP_essay(Folder):
|
Line 263 class VLP_essay(Folder):
|
retstr=url+"?p="+str(int(pagenum)+1) |
retstr=url+"?p="+str(int(pagenum)+1) |
return retstr |
return retstr |
|
|
|
def lastURL(self,pagenum,url): |
|
# teste ob performance ok, sonst in variable |
|
pages=len(self.ZopeFind(self,obj_metatypes=['DTML Document','File'])) |
|
|
|
return url+"?p="+str(pages) |
|
|
def previousURL(self,pagenum,url): |
def previousURL(self,pagenum,url): |
|
|
if int(pagenum)-1 > 0: |
if int(pagenum)-1 > 0: |
Line 344 class VLP_subcollection(ECHO_collection)
|
Line 353 class VLP_subcollection(ECHO_collection)
|
|
|
meta_type="VLP_subcollection" |
meta_type="VLP_subcollection" |
|
|
|
def getVLPSubcollectionToc(self,type): |
|
|
|
#different ordering depending on the type |
|
if(type == "(Collection)"): |
|
sort= "shortreference" |
|
else: |
|
sort = "startpages" |
|
|
|
#content of journals also displayed if not online |
|
|
|
if (type == "(JournalVolume)"): |
|
online ="" |
|
else: |
|
online ="AND online = 1" |
|
sort=self.collectionSort(type) |
|
|
|
item = [x for x in self.ZSQLSimpleSearch("""SELECT * FROM vl_literature |
|
WHERE volumeid ~ '%s\\\\M' """%self.getId() |
|
+ """ %s AND not referenceType='%s' """%(online,type) |
|
+ """ORDER BY """ + sort)] |
|
|
|
tocItem = [x for x in self.ZSQLSimpleSearch("""SELECT * FROM vl_literature |
|
WHERE reference = '%s' """%self.getId() |
|
+ """AND online = 1 AND referenceType='%s' """%type |
|
+ """ORDER BY """ + sort)] |
|
|
|
|
|
|
|
return tocItem+item |
|
|
def checkForFrontMatter(self,item): |
def checkForFrontMatter(self,item): |
"""Teste ob Frontmatter exists""" |
"""Teste ob Frontmatter exists""" |
if not item==self.getId(): |
if not item==self.getId(): |
Line 393 class VLP_collection(ECHO_collection):
|
Line 432 class VLP_collection(ECHO_collection):
|
|
|
def generateSubCollections(self,errorsTXT=""): |
def generateSubCollections(self,errorsTXT=""): |
"""erzeuge subcollectionen""" |
"""erzeuge subcollectionen""" |
founds=self.ZSQLSimpleSearch("select * from vl_literature where referencetype in ('(Book)','(Collection)','(Journal)')") |
founds=self.ZSQLSimpleSearch("select * from vl_literature where referencetype in ('(Edited Book)','(Book)','(Collection)','(JournalVolume)','(Generic Container)')") |
|
|
self.REQUEST.RESPONSE.write("<h2>Create Subcollections</h2>\n") |
self.REQUEST.RESPONSE.write("<h2>Create Subcollections</h2>\n") |
for found in founds: |
for found in founds: |
|
|
try: |
try: |
foundCol=self.ZopeFind(self,obj_ids=[found.reference]) |
foundCol=self.ZopeFind(self,obj_ids=[found.reference]) |
if foundCol: |
if foundCol: |
Line 419 class VLP_collection(ECHO_collection):
|
Line 459 class VLP_collection(ECHO_collection):
|
self.REQUEST.RESPONSE.write("<p>%s</p>\n"%found.reference) |
self.REQUEST.RESPONSE.write("<p>%s</p>\n"%found.reference) |
except: |
except: |
error=sys.exc_info()[0:2] |
error=sys.exc_info()[0:2] |
RESPONSE.write("(ERROR: %s %s)\n"%error) |
RESPONSE.write("(ERROR (%s): %s %s)\n"%(found.reference,error[0],error[1])) |
errorsTXT+="<p>No subcollection of %s "+"(ERROR: %s %s)</p>"%error |
errorsTXT+="<p>No subcollection of %s "+"(ERROR: %s %s)</p>"%error |
|
|
return errorsTXT |
return errorsTXT |
Line 442 class VLP_collection(ECHO_collection):
|
Line 482 class VLP_collection(ECHO_collection):
|
files=os.listdir(self.vlp_basis) |
files=os.listdir(self.vlp_basis) |
|
|
errorsTXT+="<h3>New Ressources</h3>" |
errorsTXT+="<h3>New Ressources</h3>" |
|
|
for fileName in files: |
for fileName in files: |
|
|
if fileName[0:3]=="lit": |
if fileName[0:3]=="lit": |
Line 459 class VLP_collection(ECHO_collection):
|
Line 500 class VLP_collection(ECHO_collection):
|
genObj.createIndexFile() |
genObj.createIndexFile() |
except: |
except: |
error=sys.exc_info()[0:2] |
error=sys.exc_info()[0:2] |
RESPONSE.write("<p>(ERROR: %s %s)</p>\n"%error) |
RESPONSE.write("<p>(ERROR (%s): %s %s)</p>\n"%(fileName,error[0],error[1])) |
errorsTXT+="<p>No indexfile of %s "+"(ERROR: %s %s)</p>"%error |
errorsTXT+="<p>No indexfile of %s "+"(ERROR: %s %s)</p>"%error |
|
|
|
if genObj.meta_type=="VLP_subcollection": |
|
genObj.pageSizeSum=getattr(genObj,fileName).getPageSizeSum() |
|
else: |
|
genObj.pageSizeSum=genObj.getPageSizeSum() |
|
|
except: |
except: |
error=sys.exc_info()[0:2] |
error=sys.exc_info()[0:2] |
RESPONSE.write("<p>(ERROR: %s %s)</p>\n"%error) |
RESPONSE.write("<p>(ERROR (%s): %s %s)</p>\n"%(fileName,error[0],error[1])) |
errorsTXT+="<p>File not created:%s "+"(ERROR: %s %s)</p>"%error |
errorsTXT+="<p>File not created:%s (ERROR: %s %s)</p>"%(fileName,error[0],error[1]) |
|
|
errorsTXT+=self.generateSubCollections() |
errorsTXT+=self.generateSubCollections() |
errorsTXT+="/n" |
errorsTXT+="\n" |
RESPONSE.write(errorsTXT) |
RESPONSE.write(errorsTXT) |
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
Line 674 class VLP_resource(ECHO_resource,Cacheab
|
Line 721 class VLP_resource(ECHO_resource,Cacheab
|
|
|
return 0 |
return 0 |
|
|
|
def getPageSizeSum(self): |
|
"""generate average page size""" |
|
|
|
#size of hi resolution |
|
files=[] |
|
try: |
|
pathHi=os.path.join(self.vlp_basis,self.resourceID,'pagesHi') |
|
files=os.listdir(pathHi) |
|
hi=0 |
|
for f in files: |
|
hi+=os.stat(os.path.join(pathHi,f))[ST_SIZE] |
|
|
|
except: |
|
hi=0 |
|
|
|
#size of hi resolution |
|
try: |
|
pathHi=os.path.join(self.vlp_basis,self.resourceID,'pagesLo') |
|
files=os.listdir(pathHi) |
|
lo=0 |
|
for f in files: |
|
lo+=os.stat(os.path.join(pathHi,f))[ST_SIZE] |
|
|
|
except: |
|
lo=0 |
|
|
|
|
|
return (hi,lo,len(files)) |
|
|
|
|
|
def getPageWeights(self): |
|
"""average Page sizes in kBytes""" |
|
|
|
res=getattr(self,'pageSizeSum',(0,0,1)) |
|
return (res[0]/(1024*res[2]),res[1]/(1024*res[2])) |
|
|
|
|
|
|
def dir2index(self): |
def dir2index(self): |
"""dir to index""" |
"""dir to index""" |
|
|
excludeNames=['Icon'] |
excludeNames=['Icon',':2eD'] |
|
|
|
|
def calculateName(str): |
def calculateName(str): |
name=os.path.splitext(str[1:])[0] |
name=os.path.splitext(str[1:])[0] |
Line 763 class VLP_resource(ECHO_resource,Cacheab
|
Line 849 class VLP_resource(ECHO_resource,Cacheab
|
def readIndexFile(self,url=None): |
def readIndexFile(self,url=None): |
"""reads the indexfile. presently url not None isn't implemented. In the future url can be defined.""" |
"""reads the indexfile. presently url not None isn't implemented. In the future url can be defined.""" |
if not url: |
if not url: |
url=self.absolute_url()+"/index.xml" |
urlTmp=self.absolute_url()+"/index.xml" |
|
|
if self.ZCacheable_isCachingEnabled(): |
if self.ZCacheable_isCachingEnabled(): |
|
|
result = self.ZCacheable_get(view_name=url) |
result = self.ZCacheable_get(view_name=urlTmp) |
if result is not None: |
if result is not None: |
# Got a cached value. |
# Got a cached value. |
return result |
return result |
|
|
pagelist=[] |
pagelist=[] |
|
|
fh=ECHO_helpers.urlopen(url) |
if not url: |
|
|
|
xmlTxt=getattr(self,'index.xml')() |
|
dom=xml.dom.minidom.parseString(xmlTxt) |
|
else: |
|
fh=ECHO_helpers.urlopen(urlTmp) |
dom=xml.dom.minidom.parse(fh) |
dom=xml.dom.minidom.parse(fh) |
|
|
|
|
Line 784 class VLP_resource(ECHO_resource,Cacheab
|
Line 875 class VLP_resource(ECHO_resource,Cacheab
|
fileName=page.getAttribute('file') |
fileName=page.getAttribute('file') |
pagelist.append((pageNum,text,fileName)) |
pagelist.append((pageNum,text,fileName)) |
|
|
self.ZCacheable_set(pagelist,view_name=url) |
self.ZCacheable_set(pagelist,view_name=urlTmp) |
return pagelist |
return pagelist |
|
|
def getFileName(self): |
def getFileName(self): |