--- cdli/cdli_files.py 2006/10/16 13:21:23 1.50 +++ cdli/cdli_files.py 2006/12/22 11:56:08 1.53 @@ -21,7 +21,7 @@ from ZPublisher.HTTPRequest import HTTPR from ZPublisher.HTTPResponse import HTTPResponse from ZPublisher.BaseRequest import RequestContainer import threading - +from BTrees.OOBTree import OOBTree class BasketContent(SimpleItem): """classe fuer den Inhalt eines Baskets""" @@ -691,16 +691,18 @@ class CDLIBasketContainer(OrderedFolder) self.id=id self.title=title + def getBasketsId(self): """get all baskets als klartext""" - ret="" + + ret="" baskets=self.ZopeFind(self,obj_metatypes=['CDLIBasket']) for basket in baskets: com,user,time,values = basket[1].getContentIds() ret+= "BASKET:"+com+"\t"+user+"\t"+time+"\n" for x in values: ret+= x[0]+"\t"+x[1]+"\n" - return ret + return ret def getBaskets(self,sortField='title'): """get all baskets files""" @@ -1005,11 +1007,14 @@ class CDLIBasket(Folder,CatalogAware): return added + + + def getContentIds(self): """print basket content""" ret=[] lv=self.getLastVersion() - for obj in lv.content.getContent(): + for obj in lv.content.getContent(): ret.append((obj[0].getId(),obj[1].getId())) @@ -1302,7 +1307,12 @@ class CDLIFileObject(CatalogAware,extVer return True security.declarePublic('view') - + + def getFormattedData(self): + """fromat text""" + data=self.getData() + return re.sub("\s\#lem"," #lem",data) #remove return vor #lem + def view(self): """view file""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','viewCDLIFile.zpt')).__of__(self) @@ -1384,6 +1394,17 @@ class CDLIFile(extVersionedFile,CatalogA default_catalog='CDLICatalog' #security.declarePublic('history') + def getLastVersionData(self): + """get last version data""" + return self.getLastVersion().getData() + + def getLastVersionFormattedData(self): + """get last version data""" + return self.getLastVersion().getFormattedData() + + #security.declarePublic('history') + + def history(self): """history""" @@ -1840,6 +1861,66 @@ class CDLIRoot(Folder): meta_type="CDLIRoot" downloadCounterBaskets=0# counts the current basket downloads if counter > 10 no downloads are possible + + def showInLineIndex(self): + """get the index for debug purposes""" + print "show" + for x in self.lineIndex.iterkeys(): + print "word:",x + for y in self.lineIndex[x].iterkeys(): + print "doc",y,self.lineIndex[x][y] + + return self.lineIndex + + def searchInLineIndexDocs(self,word): + """search occurences""" + return list(self.lineIndex.get(word.upper()).keys()) + + def getLinesFromIndex(self,word,doc): + """get lines""" + return self.lineIndex[word][doc] + + def cleanInLineIndex(self): + """delete InlineIndex""" + for x in list(self.lineIndex.keys()): + del(self.lineIndex[x]) + print [x for x in self.lineIndex.keys()] + + return "ok" + + def storeInLineIndex(self,key,value): + """store in index""" + + if (not hasattr(self,'lineIndex')) or (type(self.lineIndex) is DictType): + self.lineIndex=OOBTree() + li=self.lineIndex + + if li.has_key(key): + + if li[key].has_key(value[0]) and (not (value[1] in li[key][value[0]])): + li[key][value[0]].append(value[1]) # add it if now in the array + else: + li[key][value[0]]=[value[1]] # new array for lines + + else: + + li[key]=OOBTree()# new btree for lines + li[key][value[0]]=[value[1]] + + + self.lineIndex=li + + get_transaction().commit() + + + def showFile(self,fileId): + """show a file""" + f=self.CDLICatalog({'title':fileId}) + if not f: + return "" + + return f[0].getObject().getLastVersionFormattedData() + def URLquote(self,str): """quote url""" return urllib.quote(str)