--- cdli/cdli_files.py 2006/02/17 12:10:39 1.7 +++ cdli/cdli_files.py 2006/03/15 14:56:48 1.9 @@ -20,13 +20,13 @@ class Basket_old(Folder): def getObjUrl(self,objId): """getUrl""" - founds=self.CDLICatalog.search({'path':objId}) + founds=self.CDLICatalog.search({'title':objId}) if len(founds)>0: return founds[0].getObject().absolute_url() else: #assume version number splitted=objId.split("_") - founds=self.CDLICatalog.search({'path':splitted[1]}) + founds=self.CDLICatalog.search({'title':splitted[1]}) return founds[0].getObject().absolute_url()+'/'+objId def storeAllLink(self,results): @@ -142,7 +142,7 @@ class BasketObject_old(Folder): """addObjects""" for id in ids: - founds=self.CDLICatalog.search({'path':id}) + founds=self.CDLICatalog.search({'title':id}) for found in founds: if found.getObject() not in self.contents: tm=self.contents[0:] @@ -247,9 +247,10 @@ class CDLIBasketContainer(OrderedFolder) """contains the baskets""" - + security=ClassSecurityInfo() meta_type="CDLIBasketContainer" + def getBasketIdfromName(self,basketname): """get id from name""" @@ -258,8 +259,13 @@ class CDLIBasketContainer(OrderedFolder) return basket[0] else: None + + security.declareProtected('manage','uploadBasket_html') + def uploadBasket_html(self,basketId='0'): """upload an atf file, html form""" + + basketId=str(basketId) if not basketId=='0': basketName=getattr(self.basketContainer,basketId).title @@ -273,6 +279,9 @@ class CDLIBasketContainer(OrderedFolder) def index_html(self): """stanadard ansicht""" + + + ext=self.ZopeFind(self,obj_ids=["index.html"]) if ext: return ext[0][1]() @@ -661,7 +670,7 @@ class CDLIBasketVersion(SimpleItem): else: #assume version number splitted=objId.split("_") - founds=self.CDLICatalog.search({'path':splitted[1]}) + founds=self.CDLICatalog.search({'title':splitted[1]}) return founds[0].getObject().absolute_url()+'/'+objId def manage_addCDLIBasketVersion(self,user,comment="",basketContent=[],RESPONSE=None): @@ -735,10 +744,18 @@ class CDLIFile(versionedFile,CatalogAwar meta_type="CDLI file" default_catalog='CDLICatalog' - def isContainedInBaskets(self): - """check is this file is part of any basket""" - - return [x.getObject() for x in self.CDLIBasketCatalog.search({'getFileNamesInLastVersion':self.getId()})] + + + def isContainedInBaskets(self,context=None): + """check is this file is part of any basket + @param context: (optional) necessessary if CDLIBasketCatalog is not an (inherited) attribute of self, context.CDLIBasketCatalog + has to exist. + """ + + if not context: + context=self + + return [x.getObject() for x in context.CDLIBasketCatalog.search({'getFileNamesInLastVersion':self.getId()})] def addCDLIFileObjectForm(self): @@ -759,7 +776,7 @@ class CDLIFile(versionedFile,CatalogAwar except: pass - author=self.REQUEST['author'] + author=self.REQUEST.SESSION['author'] if changeName=="yes": filename=file.filename @@ -862,7 +879,7 @@ class CDLIFileFolder(versionedFileFolder ret=[] searchStr=" OR ".join(ids) - founds=self.CDLICatalog.search({'path':searchStr}) + founds=self.CDLICatalog.search({'title':searchStr}) for found in founds: lastVersion=found.getObject().getLastVersion() @@ -884,6 +901,12 @@ class CDLIFileFolder(versionedFileFolder errors=[] newPs=[] basketNameFromFile, numberOfFiles=splitatf(upload,dir) + + if basketId == '0': + basketObj=self.basketContainer.getActiveBasket() + if basketObj: + basketId=basketObj.getId() + if basketId == '0': basketNameFromId="" basketLen=0 @@ -934,10 +957,13 @@ class CDLIFileFolder(versionedFileFolder uploadFns=[] for fn in uploadFns: - founds=self.CDLICatalog.search({'path':fn}) + print "UP:",fn + founds=self.CDLICatalog.search({'title':fn}) + print " -----",founds if len(founds)>0: - self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER']) - founds[0].getObject().manage_addCDLIFileObject('',comment,self.REQUEST['author'],file=file(os.path.join(self.REQUEST.SESSION['tmpdir'],fn))) + self.REQUEST.SESSION['author']=str(self.REQUEST['AUTHENTICATED_USER']) + print "-------- author:",self.REQUEST.SESSION['author'] + founds[0].getObject().manage_addCDLIFileObject('',comment,self.REQUEST.SESSION['author'],file=file(os.path.join(self.REQUEST.SESSION['tmpdir'],fn))) @@ -957,16 +983,19 @@ class CDLIFileFolder(versionedFileFolder unlockFns.append(x) for fn in unlockFns: - founds=self.CDLICatalog.search({'path':fn}) + founds=self.CDLICatalog.search({'title':fn}) if len(founds)>0: - self.REQUEST['author']=str(self.REQUEST['AUTHENTICATED_USER']) + self.REQUEST.SESSION['author']=str(self.REQUEST['AUTHENTICATED_USER']) founds[0].getObject().lockedBy="" if not (basketname ==''): basketId=self.basketFolder.getBasketIdfromName(basketname) - basket=getattr(self.basketFolder,basketId) + if not basketId: # create new basket + ob=self.basketContainer.addBasket(basketname) + basketId=ob.getId() + basket=getattr(self.basketFolder,str(basketId)) ids=os.listdir(self.REQUEST.SESSION['tmpdir']) basket.addObjects(ids,deleteOld=True)