--- cdli/cdli_files.py 2006/06/15 20:08:44 1.24 +++ cdli/cdli_files.py 2006/06/15 22:02:40 1.25 @@ -233,7 +233,8 @@ class uploadATFThread(Thread): """upload an atf file""" #TODO: add comments #TODO: finish uploadATF - self.result="

I am loading your file...

" + self.result="

I got your file, start now to split it into single atf-files!

" + #make sure that id is a string and not an integer basketId=str(basketId) @@ -250,7 +251,7 @@ class uploadATFThread(Thread): psNotInCatalog=[] # files not in the catalog #split the uploadedd atf file - basketNameFromFile, numberOfFiles=splitatf(upload,dir) + basketNameFromFile, numberOfFiles=splitatf(upload,dir,ext=self) #find basketId if not set @@ -269,12 +270,13 @@ class uploadATFThread(Thread): basketLen=getattr(ctx2.basketContainer,basketId).getLastVersion().numberOfItems() - self.result+="

I got the files

I am checking now the files

" + self.result+="""

I got the files

< + p>I am computing the differences to the exisiting files

""" #start to check the files for fn in os.listdir(dir): - self.result+="

check:%s

"%fn + self.result+="

process:%s

"%fn # check if file is in the catalog #TODO: checkCatalog is not implemented yet @@ -1052,10 +1054,11 @@ def manage_addCDLIBasketVersion(self,use else: return ob -class CDLIFileObject(versionedFileObject): +class CDLIFileObject(versionedFileObject,CatalogAware): """CDLI file object""" meta_type="CDLI File Object" + default_catalog='CDLIObjectsCatalog' security=ClassSecurityInfo() @@ -1230,11 +1233,19 @@ def manage_addCDLIFile(self,id,title,loc -def splitatf(fh,dir=None): +def splitatf(fh,dir=None,ext=None): """split it""" ret=None nf=None + i=0 for line in fh.readlines(): + if ext: + i+=1 + if (i%100)==0: + ext.result+="." + if i==10000: + i=0 + ext.result+="
" #check if basket name is in the first line if line.find("#atf basket")>=0: ret=line.replace('#atf basket ','') @@ -1265,6 +1276,8 @@ class CDLIFileFolder(versionedFileFolder filesMetaType=['CDLI file'] folderMetaType=['CDLI Folder'] default_catalog='CDLICatalog' + defaultFileCatalog=default_catalog #wenn dieses definiert ist, wird beim hinzufŸgen einer neuen version eines files dieser catalog neuiniziert + tmpStore2={} def setTemp(self,name,value): """set tmp""" @@ -1310,7 +1323,7 @@ class CDLIFileFolder(versionedFileFolder - def findObjectsFromList(self,start=None,upload=None,list=None,basketName=None,numberOfObjects=None,RESPONSE=None): + def findObjectsFromList(self,display=False,start=None,upload=None,list=None,basketName=None,numberOfObjects=None,RESPONSE=None): """findObjectsFromList (, TAB oder LINE separated)""" @@ -1347,9 +1360,18 @@ class CDLIFileFolder(versionedFileFolder ret+=self.CDLICatalog({'title':fileId}) #TODO: get rid of one of these.. - self.REQUEST.SESSION['fileIds']=[x.getObject().getId() for x in ret]#store fieldIds in session for further usage + ids=[x.getObject().getId() for x in ret] + self.REQUEST.SESSION['fileIds']=ids#store fieldIds in session for further usage self.REQUEST.SESSION['searchList']=self.REQUEST.SESSION['fileIds'] - return ret + + if display: + pt=getattr(self,'filelist.html') + + return pt(search=ids) + else: + return ret + + if start: RESPONSE.redirect("filelist.html?start:int="+str(start)) @@ -1471,6 +1493,28 @@ class CDLIRoot(Folder): meta_type="CDLIRoot" + def getChangesByAuthor(self,author): + """getChangesByAuthor""" + zcat=self.CDLICatalog + return zcat({'lastEditor':author, + 'sort_on':'getTime', + 'sort_order':'descending', + 'sort_limit':n})[:n ] + + def getLastChanges(self,n=100): + """get the last n changes""" + n=int(n) + zcat=self.CDLICatalog + return zcat({'sort_on':'getLastChangeDate', + 'sort_order':'descending', + 'sort_limit':n})[:n ] + + + def getLastChanges_html(self,n=100): + """get the last n changes""" + list = [x.getId for x in self.getLastChanges(n)] + return self.cdli_main.findObjectsFromList(list=list,display=True) + def refreshTxt(self,txt="",threadName=None): """txt fuer refresh"""