--- cdli/cdli_files.py 2009/06/04 05:56:16 1.106 +++ cdli/cdli_files.py 2009/06/21 11:28:37 1.110 @@ -25,6 +25,7 @@ import copy import codecs import sys from BTrees.IOBTree import IOBTree +from BTrees.OOBTree import OOBTree import cdliSplitter from sets import Set import md5 @@ -720,6 +721,19 @@ class CDLIRoot(Folder): splitter = {'words':cdliSplitter.wordSplitter(), 'graphemes':cdliSplitter.graphemeSplitter()} + def redirect(self,RESPONSE,url): + """mache ein redirect mit einem angehaengten time stamp um ein reload zu erzwingen""" + + timeStamp=time.time() + + if url.find("?")>-1: #giebt es schon parameter + addStr="&time=%s" + else: + addStr="?time=%s" + + RESPONSE.setHeader('Last-Modified',email.Utils.formatdate().split("-")[0]+'GMT') + logging.error(email.Utils.formatdate()+' GMT') + RESPONSE.redirect(url+addStr%timeStamp) def unicodify(self,txt): return unicodify(txt) @@ -755,7 +769,9 @@ class CDLIRoot(Folder): """view an Object""" ob = self.CDLICatalog({'title':id}) if len(ob)>0: - RESPONSE.redirect(ob[0].getLastVersion().absolute_url()) + logging.info("objekt:"+repr(ob[0])) + #RESPONSE.redirect(ob[0].getLastVersion().absolute_url()) + RESPONSE.redirect(ob[0].absolute_url+"/download") return "not found" def addCDLIFileObjectForm(self,id,RESPONSE): """view an Object""" @@ -780,8 +796,10 @@ class CDLIRoot(Folder): def getFileObject(self,fileId): """get an object""" + if isinstance(fileId,CDLIFileObject): # support for old baskets + return fileId x=self.v_files.get(fileId) - #logging.debug(x) + #logging.debug("getFileObj:"+repr(fileId)) return x def getFileObjectLastVersion(self,fileId): @@ -1029,17 +1047,21 @@ class CDLIRoot(Folder): def changeUserForPObjectFromFile(self,user,fname): """aendere user fuer alle p in fiele""" - pns = file(fname,"r") - for p in pns.readline(): - f = getattr(self, self.file_catalog).search({'textid':pnum}) - pObj=f.getObject() - lv=pObj.getContentObject() - logging.info("author:"+lv.author) - + pns = file(os.path.join(package_home(globals()),'inputs',fname),"r") + for p in pns.readlines(): + p=p.lstrip().rstrip() + logging.info(str(p+".atf")) + pObj=self.getFileObject(p+".atf") + if pObj is not None: + logging.info(pObj) + lv=pObj.getContentObject() + logging.info("author:"+lv.author) + lv.author=user + lv.versionComment="XXXXXXX" - + gen def forceunlock(self,REQUEST=None,user=None): "break all locks" ret=[]