version 1.85, 2008/12/10 13:37:03
|
version 1.94, 2010/10/11 13:15:00
|
Line 17 from types import *
|
Line 17 from types import *
|
from Globals import package_home |
from Globals import package_home |
import transaction |
import transaction |
import Acquisition |
import Acquisition |
|
import re |
|
import logging |
|
|
from Products.ECHO_content.ECHO_collection import * |
from Products.ECHO_content.ECHO_collection import * |
from vlp_xmlhelpers import * |
from vlp_xmlhelpers import * |
Line 163 def manage_addSendMailForm(self, id, toA
|
Line 165 def manage_addSendMailForm(self, id, toA
|
|
|
|
|
class VLP_collectionFolder(Folder): |
class VLP_collectionFolder(Folder): |
"""klasse fŸr folder innheralb der collection""" |
"""klasse fuer folder innerhalb der collection""" |
meta_type="VLP_collectionFolder" |
meta_type="VLP_collectionFolder" |
|
|
class VLP_essay(Folder): |
class VLP_essay(Folder): |
Line 308 class VLP_essay(Folder):
|
Line 310 class VLP_essay(Folder):
|
#txt=pages[int(pagenum)-1][1].data.decode('utf-8') |
#txt=pages[int(pagenum)-1][1].data.decode('utf-8') |
txt=pages[int(pagenum)-1][1].data |
txt=pages[int(pagenum)-1][1].data |
#print txt.encode('utf-8') |
#print txt.encode('utf-8') |
return self.xml2html(makeXML(txt),quote="no") |
tmp =makeXML(txt) |
|
logging.debug(txt) |
|
return self.xml2html(tmp,quote="no") |
else: |
else: |
return self.xml2html(makeXML(pages[int(pagenum)-1][1]()),quote="no") |
return self.xml2html(makeXML(pages[int(pagenum)-1][1]()),quote="no") |
|
|
Line 486 def manage_addVLP_subCollection(self,id,
|
Line 490 def manage_addVLP_subCollection(self,id,
|
from zope.publisher.interfaces import IPublishTraverse |
from zope.publisher.interfaces import IPublishTraverse |
from zope.interface import implements |
from zope.interface import implements |
from zope.publisher.interfaces import NotFound |
from zope.publisher.interfaces import NotFound |
from zope.app import zapi |
#from zope.app import zapi |
from zope.component import queryMultiAdapter |
from zope.component import queryMultiAdapter |
|
try: |
from ZPublisher.BaseRequest import DefaultPublishTraverse |
from ZPublisher.BaseRequest import DefaultPublishTraverse |
|
except: |
|
pass |
|
|
class VLP_collection(ECHO_collection,Acquisition.Explicit): |
class VLP_collection(ECHO_collection,Acquisition.Explicit): |
"""VLP spezifische Erweiterung der Collection""" |
"""VLP spezifische Erweiterung der Collection""" |
Line 496 class VLP_collection(ECHO_collection,Acq
|
Line 503 class VLP_collection(ECHO_collection,Acq
|
|
|
|
|
implements(IPublishTraverse) |
implements(IPublishTraverse) |
|
|
|
|
|
def foxridgePath2vlp(self,url,mk,RESPONSE=None): |
|
"""convertiert einen pfad zu einer url in vlp""" |
|
litRe = re.match(r".*lit([0-9]*)",url) |
|
logging.debug("foxridgePath2vlp URL:"+repr(url)) |
|
lit = "lit"+litRe.group(1) |
|
splitted=url.split("/") |
|
path=splitted[-1].split(".")[0] |
|
newUrl=lit+"?p=%s&mk=%s"%(path,mk) |
|
|
|
if RESPONSE: |
|
RESPONSE.redirect(newUrl) |
|
return |
|
|
|
return newUrl |
|
|
def findObjFromLitName(self,fileName): |
def findObjFromLitName(self,fileName): |
if not fileName[0:3]=="lit": |
if not fileName[0:3]=="lit": |
logging.error("getOrCreateFolder wrong filename: %s"%fileName) |
logging.error("getOrCreateFolder wrong filename: %s"%fileName) |
Line 524 class VLP_collection(ECHO_collection,Acq
|
Line 548 class VLP_collection(ECHO_collection,Acq
|
|
|
if name.startswith("lit"): #umleitung wenn lit aufgerufen wirk |
if name.startswith("lit"): #umleitung wenn lit aufgerufen wirk |
# umleitung auf den eigentlichen folder nur wenn direkt der Folder litXXX oder dessen index_html methode aufgerufen wird |
# umleitung auf den eigentlichen folder nur wenn direkt der Folder litXXX oder dessen index_html methode aufgerufen wird |
if lastActual.startswith("lit") or (lastActual=="index_html") or (lastActual=="index_meta") or (lastActual=="getTitle") or (lastActual=="getMetaDataLink"): |
if lastActual.startswith("lit") or (lastActual=="index_html") or (lastActual=="index_meta") or (lastActual=="getTitle") or (lastActual=="getMetaDataLink") or (lastActual=="hasTranscription") or (lastActual=="transcription"): |
#obj=self. ZopeFind(self,obj_ids=[name],search_sub=1) |
#obj=self. ZopeFind(self,obj_ids=[name],search_sub=1) |
ob=self.findObjFromLitName(name) |
ob=self.findObjFromLitName(name) |
if not ob: |
if not ob: |
Line 583 class VLP_collection(ECHO_collection,Acq
|
Line 607 class VLP_collection(ECHO_collection,Acq
|
col = foundCol |
col = foundCol |
logging.debug("generateSubCollections: subcollection %s exists (%s)"%(repr(col),found.reference)) |
logging.debug("generateSubCollections: subcollection %s exists (%s)"%(repr(col),found.reference)) |
logging.debug(repr([col.title,found.titlerefdisplay,col.label,found.titlerefdisplay])) |
logging.debug(repr([col.title,found.titlerefdisplay,col.label,found.titlerefdisplay])) |
if (unicodify(col.title) != found.titlerefdisplay) or (unicodify(col.label) != found.titlerefdisplay): |
if (unicodify(col.title) != unicodify(found.titlerefdisplay)) or (unicodify(col.label) != unicodify(found.titlerefdisplay)): |
# subcollection seems to have changed |
# subcollection seems to have changed |
logging.debug("generateSubCollections: subcollection has changed, recreating!") |
logging.debug("generateSubCollections: subcollection has changed, recreating!") |
col.aq_parent.manage_delObjects([col.getId()]) |
col.aq_parent.manage_delObjects([col.getId()]) |
Line 639 class VLP_collection(ECHO_collection,Acq
|
Line 663 class VLP_collection(ECHO_collection,Acq
|
logging.error("getOrCreateFolder wrong filename: %s"%fileName) |
logging.error("getOrCreateFolder wrong filename: %s"%fileName) |
return None |
return None |
|
|
|
try: |
restName="%08d"%int(fileName[3:]) |
restName="%08d"%int(fileName[3:]) |
|
except: |
|
logging.error("getOrCreateFolder wrong filename: %s"%fileName) |
|
return None |
|
|
fs=(restName[0:2],restName[0:4],restName[0:6]) |
fs=(restName[0:2],restName[0:4],restName[0:6]) |
|
|
Line 737 class VLP_collection(ECHO_collection,Acq
|
Line 764 class VLP_collection(ECHO_collection,Acq
|
errorsTXT+="<p>File not created:%s (ERROR: %s %s)</p>\n"%(fileName,error[0],error[1]) |
errorsTXT+="<p>File not created:%s (ERROR: %s %s)</p>\n"%(fileName,error[0],error[1]) |
return errorsTXT |
return errorsTXT |
|
|
def updateCollection(self,forceUpdate=False,RESPONSE=None): |
def updateCollection(self,forceUpdate=True,RESPONSE=None): |
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" |
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" |
|
|
# update subcollections |
# update subcollections |
Line 804 class VLP_resource(ECHO_resource,Cacheab
|
Line 831 class VLP_resource(ECHO_resource,Cacheab
|
|
|
meta_type="VLP_resource" |
meta_type="VLP_resource" |
|
|
|
def _p_resolveConflict(self,oldstate,savedstate,newstate): |
|
logging.debug("updateCollection: Have to resolve conflict!") |
|
return newstate |
|
|
#vlp_basis="/mpiwg/online/permanent/vlp" |
#vlp_basis="/mpiwg/online/permanent/vlp" |
|
|
|
|
Line 828 class VLP_resource(ECHO_resource,Cacheab
|
Line 859 class VLP_resource(ECHO_resource,Cacheab
|
logging.debug(title) |
logging.debug(title) |
return title |
return title |
|
|
|
|
|
|
def getImagePath(self): |
def getImagePath(self): |
"""Pfad zu den Images""" |
"""Pfad zu den Images""" |
path=None |
path=None |
Line 839 class VLP_resource(ECHO_resource,Cacheab
|
Line 872 class VLP_resource(ECHO_resource,Cacheab
|
# workaround in some cases there seem to be no pictures in pages |
# workaround in some cases there seem to be no pictures in pages |
|
|
if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')): |
if os.path.isdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')): |
if len (os.listdir(self.vlp_basis,self.resourceID,'pagesHi')) > len(os.listdir(path)): |
|
|
|
|
pagesHi = os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi')) |
|
if path is None: |
|
return os.path.join(self.vlp_basis,self.resourceID,'pagesHi') |
|
|
|
pages = os.listdir(path) |
|
|
|
if len (pagesHi) > len(pages): |
|
|
|
countHi=0 |
|
for p in pagesHi: |
|
dat,ext = os.path.splitext(p) |
|
if ext.lower() in [".tiff",".tif",".jpg"]: |
|
countHi+=1 |
|
count=0 |
|
for p in pages: |
|
dat,ext = os.path.splitext(p) |
|
if ext.lower() in [".tiff",".tif",".jpg"]: |
|
count+=1 |
|
|
|
if countHi > count: |
|
path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi') |
|
|
|
logging.error("pages < pagesHi: %s"%self.resourceID) |
|
if path is None: |
|
|
|
|
|
if len (os.listdir(os.path.join(self.vlp_basis,self.resourceID,'pagesHi'))) > len(os.listdir(path)): |
|
|
|
|
|
|
path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi') |
path=os.path.join(self.vlp_basis,self.resourceID,'pagesHi') |
logging.error("pages < pagesHi: %s"%self.resourceID) |
logging.error("pages < pagesHi: %s"%self.resourceID) |
else: |
else: |
|
|
logging.error("no images: %s"%self.resourceID) |
logging.error("no images: %s"%self.resourceID) |
return None |
return None |
|
|
|
return path |
|
|
|
|
def transcription(self): |
def transcription(self): |
"""show the rendered transcriptiofile""" |
"""show the rendered transcriptiofile""" |
Line 905 class VLP_resource(ECHO_resource,Cacheab
|
Line 972 class VLP_resource(ECHO_resource,Cacheab
|
|
|
ret+="</text>" |
ret+="</text>" |
re2=ret[0:] |
re2=ret[0:] |
re3=re2.decode('latin-1').encode('utf-8') |
re3=self.unicodify(re2) |
#re3=re2 |
#re3=re2 |
ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText']) |
ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText']) |
|
|
Line 926 class VLP_resource(ECHO_resource,Cacheab
|
Line 993 class VLP_resource(ECHO_resource,Cacheab
|
else: |
else: |
return "no: %s"%self.getId() |
return "no: %s"%self.getId() |
|
|
|
def hasTranscription(self): |
|
"""transcription""" |
|
|
|
if not hasattr(self,'fulltext'): |
|
self.copyTranscriptionFromDB() |
|
if not hasattr(self,'fulltext'): #still not |
|
return False |
|
|
|
return True |
|
|
def resetMetaLink(self,all="no",RESPONSE=None): |
def resetMetaLink(self,all="no",RESPONSE=None): |
"""resets metalink to standard resp. in case of server change it sets to the new server url""" |
"""resets metalink to standard resp. in case of server change it sets to the new server url""" |
if all=="yes": |
if all=="yes": |
Line 1071 class VLP_resource(ECHO_resource,Cacheab
|
Line 1148 class VLP_resource(ECHO_resource,Cacheab
|
ret="%s: %s"%(str[0],name) |
ret="%s: %s"%(str[0],name) |
return ret |
return ret |
|
|
self.imagePath=self.getImagePath(); |
self.imagePathFull=self.getImagePath(); |
if (selfImagePath is None): |
self.imagePath=self.imagePathFull.split("/")[-1] |
|
if (self.imagePath is None): |
return None |
return None |
|
|
temp=[] |
temp=[] |
ret = os.listdir(self.imagePathj); |
ret = os.listdir(self.imagePathFull) |
|
|
ret.sort() |
ret.sort() |
for x in ret: |
for x in ret: |