version 1.73, 2007/03/23 13:58:10
|
version 1.76, 2007/04/23 13:07:10
|
Line 26 import logging
|
Line 26 import logging
|
import transaction |
import transaction |
import copy |
import copy |
import codecs |
import codecs |
|
import sys |
|
|
def generateXMLReturn(hash): |
def generateXMLReturn(hash): |
"""erzeugt das xml file als returnwert fuer uploadATFRPC""" |
"""erzeugt das xml file als returnwert fuer uploadATFRPC""" |
Line 883 class CDLIBasket(Folder,CatalogAware):
|
Line 884 class CDLIBasket(Folder,CatalogAware):
|
meta_type="CDLIBasket" |
meta_type="CDLIBasket" |
default_catalog="CDLIBasketCatalog" |
default_catalog="CDLIBasketCatalog" |
|
|
|
def searchInBasket(self,indexName,searchStr,regExp=False): |
|
"""searchInBasket""" |
|
|
|
lst=self.searchInLineIndexDocs(indexName,searchStr,uniq=True,regExp=regExp) |
|
ret={} |
|
|
|
lv=self.getLastVersion() |
|
|
|
|
|
for obj in lv.content.getContent(): |
|
id=obj[1].getId().split(".")[0] |
|
if id in lst: |
|
|
|
ret[id]=self.showWordInFile(id,searchStr,lineList=self.getLinesFromIndex(indexName,searchStr,id,regExp=regExp),regExp=regExp,indexName=indexName) |
|
|
|
|
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','searchResultsInBasket')).__of__(self) |
|
return pt(result=ret,indexName=indexName,regExp=regExp,word=searchStr) |
|
|
|
|
|
|
|
|
|
def searchInBasket_v1(self,searchStr): |
|
"""search occurences of searchStr in files im basket""" |
|
ret=[] |
|
lv=self.getLastVersion() |
|
logging.info("searching") |
|
for obj in lv.content.getContent(): |
|
txt=obj[0].getData() |
|
for x in txt.split("\n"): |
|
logging.info("search %s"%x) |
|
if re.match(searchStr,x): |
|
ret.append(x) |
|
|
|
return "\n".join(ret) |
|
|
|
|
def getFile(self,obj): |
def getFile(self,obj): |
return obj[1] |
return obj[1] |
Line 1322 class CDLIBasketVersion(Implicit,Persist
|
Line 1359 class CDLIBasketVersion(Implicit,Persist
|
def __init__(self,id,user,comment="",basketContent=[]): |
def __init__(self,id,user,comment="",basketContent=[]): |
""" init a basket version""" |
""" init a basket version""" |
self.id=id |
self.id=id |
self.coment=comment |
self.comment=comment |
self._setObject('content',BasketContent(basketContent)) |
self._setObject('content',BasketContent(basketContent)) |
#self.basketContent=basketContent[0:]a |
#self.basketContent=basketContent[0:]a |
self.user=user |
self.user=user |
Line 2048 class CDLIRoot(Folder):
|
Line 2085 class CDLIRoot(Folder):
|
words=self.findWordRegExp(indexName,searchTerm) # suche nach allen Treffern |
words=self.findWordRegExp(indexName,searchTerm) # suche nach allen Treffern |
logging.info("wd:%s"%words) |
logging.info("wd:%s"%words) |
for word in words: |
for word in words: |
|
|
ret+=self.searchInLineIndexDocs(indexName,word) |
ret+=self.searchInLineIndexDocs(indexName,word) |
|
|
return unique(ret) |
|
|
x= unique(ret) |
|
logging.info("words_done") |
|
return x |
|
|
def showInLineIndex(self): |
def showInLineIndex(self): |
"""get the index for debug purposes""" |
"""get the index for debug purposes""" |
Line 2155 class CDLIRoot(Folder):
|
Line 2196 class CDLIRoot(Folder):
|
transaction.get().commit() |
transaction.get().commit() |
|
|
|
|
def showFile(self,fileId): |
def showFile(self,fileId,wholePage=False): |
"""show a file |
"""show a file |
@param fileId: P-Number of the document to be displayed |
@param fileId: P-Number of the document to be displayed |
""" |
""" |
Line 2163 class CDLIRoot(Folder):
|
Line 2204 class CDLIRoot(Folder):
|
if not f: |
if not f: |
return "" |
return "" |
|
|
|
if wholePage: |
|
logging.info("whole") |
|
return f[0].getObject().getLastVersion().view() |
|
else: |
return f[0].getObject().getLastVersionFormattedData() |
return f[0].getObject().getLastVersionFormattedData() |
|
|
|
|
Line 2170 class CDLIRoot(Folder):
|
Line 2215 class CDLIRoot(Folder):
|
"""get lines with word fromFileId""" |
"""get lines with word fromFileId""" |
|
|
file=self.showFile(fileId) |
file=self.showFile(fileId) |
|
logging.info("regEXP %s"%regExp) |
ret=[] |
ret=[] |
if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen |
if regExp: # wenn regexp dann generiere alle worte aus der list die der regexp entsprechen |
wordlist=self.findWordRegExp(indexName,word) |
wordlist=self.findWordRegExp(indexName,word) |
Line 2180 class CDLIRoot(Folder):
|
Line 2225 class CDLIRoot(Folder):
|
for line in file.split("\n"): |
for line in file.split("\n"): |
found=False |
found=False |
for word in wordlist: |
for word in wordlist: |
|
try: # just a hack because of possible unicode errors in line |
if line.find(word)>-1: |
if line.find(word)>-1: |
if lineList: #liste of moeglichen Zeilennummern |
if lineList: #liste of moeglichen Zeilennummern |
num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile |
num=line.split(".")[0] #Zeilenummer ist alles vor dem . in der Zeile |
Line 2191 class CDLIRoot(Folder):
|
Line 2237 class CDLIRoot(Folder):
|
ret.append(line) |
ret.append(line) |
|
|
break; |
break; |
|
except: |
|
pass |
return ret |
return ret |
|
|
def tagWordInFile(self,fileId,word,lineList=None,regExp=True,indexName=""): |
def tagWordInFile(self,fileId,word,lineList=None,regExp=True,indexName=""): |