version 1.106, 2009/06/04 05:56:16
|
version 1.112, 2009/06/24 11:13:47
|
Line 25 import copy
|
Line 25 import copy
|
import codecs |
import codecs |
import sys |
import sys |
from BTrees.IOBTree import IOBTree |
from BTrees.IOBTree import IOBTree |
|
from BTrees.OOBTree import OOBTree |
import cdliSplitter |
import cdliSplitter |
from sets import Set |
from sets import Set |
import md5 |
import md5 |
Line 342 def splitatf(fh,dir=None,ext=None):
|
Line 343 def splitatf(fh,dir=None,ext=None):
|
for lineTmp in iter: |
for lineTmp in iter: |
lineTmp=lineTmp.replace(codecs.BOM_UTF8,'') # make sure that all BOM are removed.. |
lineTmp=lineTmp.replace(codecs.BOM_UTF8,'') # make sure that all BOM are removed.. |
for line in lineTmp.split("\r"): |
for line in lineTmp.split("\r"): |
#logging.log("Deal with: %s"%line) |
#logging.info("Deal with: %s"%line) |
if ext: |
if ext: |
i+=1 |
i+=1 |
if (i%100)==0: |
if (i%100)==0: |
Line 720 class CDLIRoot(Folder):
|
Line 721 class CDLIRoot(Folder):
|
splitter = {'words':cdliSplitter.wordSplitter(), |
splitter = {'words':cdliSplitter.wordSplitter(), |
'graphemes':cdliSplitter.graphemeSplitter()} |
'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): |
def unicodify(self,txt): |
return unicodify(txt) |
return unicodify(txt) |
Line 755 class CDLIRoot(Folder):
|
Line 769 class CDLIRoot(Folder):
|
"""view an Object""" |
"""view an Object""" |
ob = self.CDLICatalog({'title':id}) |
ob = self.CDLICatalog({'title':id}) |
if len(ob)>0: |
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" |
return "not found" |
def addCDLIFileObjectForm(self,id,RESPONSE): |
def addCDLIFileObjectForm(self,id,RESPONSE): |
"""view an Object""" |
"""view an Object""" |
Line 778 class CDLIRoot(Folder):
|
Line 794 class CDLIRoot(Folder):
|
RESPONSE.redirect(ob[0].absolute_url+"/unlock") |
RESPONSE.redirect(ob[0].absolute_url+"/unlock") |
return "not found" |
return "not found" |
|
|
|
|
def getFileObject(self,fileId): |
def getFileObject(self,fileId): |
"""get an object""" |
"""get an object""" |
|
logging.debug("getFileObj:"+repr(fileId)) |
|
if isinstance(fileId,CDLIFileObject): # support for old baskets |
|
return fileId |
x=self.v_files.get(fileId) |
x=self.v_files.get(fileId) |
#logging.debug(x) |
|
return x |
return x |
|
|
def getFileObjectLastVersion(self,fileId): |
def getFileObjectLastVersion(self,fileId): |
Line 1029 class CDLIRoot(Folder):
|
Line 1049 class CDLIRoot(Folder):
|
|
|
def changeUserForPObjectFromFile(self,user,fname): |
def changeUserForPObjectFromFile(self,user,fname): |
"""aendere user fuer alle p in fiele""" |
"""aendere user fuer alle p in fiele""" |
pns = file(fname,"r") |
pns = file(os.path.join(package_home(globals()),'inputs',fname),"r") |
for p in pns.readline(): |
for p in pns.readlines(): |
f = getattr(self, self.file_catalog).search({'textid':pnum}) |
p=p.lstrip().rstrip() |
pObj=f.getObject() |
logging.info(str(p+".atf")) |
|
pObj=self.getFileObject(p+".atf") |
|
if pObj is not None: |
|
logging.info(pObj) |
lv=pObj.getContentObject() |
lv=pObj.getContentObject() |
logging.info("author:"+lv.author) |
logging.info("author:"+lv.author) |
|
lv.author=user |
|
lv.versionComment="XXXXXXX" |
|
|
|
|
|
|
|
gen |
|
def forceunlock(self,REQUEST=None,user=None,fid=None): |
def forceunlock(self,REQUEST=None,user=None): |
|
"break all locks" |
"break all locks" |
|
if fid is not None: |
|
self.getFileObject(fid).forceunlock() |
|
return fid |
ret=[] |
ret=[] |
|
|
for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): |
for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): |
Line 1062 class CDLIRoot(Folder):
|
Line 1089 class CDLIRoot(Folder):
|
"""hole alle gesperrten files""" |
"""hole alle gesperrten files""" |
ret={} |
ret={} |
|
|
for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): |
for nm,f in self.v_files.items(): |
lb = f[1].lockedBy |
lb = str(f.lockedBy) |
add=False |
add=False |
if (lb is not None) and (lb!=""): |
if (lb is not None) and (lb!=""): |
|
|
Line 1075 class CDLIRoot(Folder):
|
Line 1102 class CDLIRoot(Folder):
|
if add==True: |
if add==True: |
if not ret.has_key(lb): |
if not ret.has_key(lb): |
ret[lb]=[] |
ret[lb]=[] |
ret[lb].append(f[0]) |
ret[lb].append(nm) |
|
|
|
|
if REQUEST is not None: |
if REQUEST is not None: |