--- ECHO_content/VLPExtension.py 2008/12/17 12:12:27 1.88 +++ ECHO_content/VLPExtension.py 2010/09/14 12:44:57 1.93 @@ -17,6 +17,8 @@ from types import * from Globals import package_home import transaction import Acquisition +import re +import logging from Products.ECHO_content.ECHO_collection import * from vlp_xmlhelpers import * @@ -163,7 +165,7 @@ def manage_addSendMailForm(self, id, toA class VLP_collectionFolder(Folder): - """klasse fŸr folder innheralb der collection""" + """klasse fuer folder innerhalb der collection""" meta_type="VLP_collectionFolder" class VLP_essay(Folder): @@ -486,7 +488,7 @@ def manage_addVLP_subCollection(self,id, from zope.publisher.interfaces import IPublishTraverse from zope.interface import implements from zope.publisher.interfaces import NotFound -from zope.app import zapi +#from zope.app import zapi from zope.component import queryMultiAdapter try: from ZPublisher.BaseRequest import DefaultPublishTraverse @@ -499,6 +501,23 @@ class VLP_collection(ECHO_collection,Acq 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): if not fileName[0:3]=="lit": logging.error("getOrCreateFolder wrong filename: %s"%fileName) @@ -527,7 +546,7 @@ class VLP_collection(ECHO_collection,Acq 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 - 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) ob=self.findObjFromLitName(name) if not ob: @@ -642,8 +661,11 @@ class VLP_collection(ECHO_collection,Acq logging.error("getOrCreateFolder wrong filename: %s"%fileName) return None - - restName="%08d"%int(fileName[3:]) + try: + 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]) @@ -835,6 +857,8 @@ class VLP_resource(ECHO_resource,Cacheab logging.debug(title) return title + + def getImagePath(self): """Pfad zu den Images""" path=None @@ -874,13 +898,13 @@ class VLP_resource(ECHO_resource,Cacheab if path is None: - if len (os.listdir(self.vlp_basis,self.resourceID,'pagesHi')) > len(os.listdir(path)): + 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') logging.error("pages < pagesHi: %s"%self.resourceID) - else: + else: logging.error("no images: %s"%self.resourceID) return None @@ -946,7 +970,7 @@ class VLP_resource(ECHO_resource,Cacheab ret+="" re2=ret[0:] - re3=re2.decode('latin-1').encode('utf-8') + re3=self.unicodify(re2) #re3=re2 ft=self.ZopeFind(self,obj_metatypes=['ECHO_fullText']) @@ -967,6 +991,16 @@ class VLP_resource(ECHO_resource,Cacheab else: 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): """resets metalink to standard resp. in case of server change it sets to the new server url""" if all=="yes":