--- cdli/cdli_files.py 2009/06/22 10:48:35 1.111 +++ cdli/cdli_files.py 2009/06/24 11:13:47 1.112 @@ -794,12 +794,14 @@ class CDLIRoot(Folder): RESPONSE.redirect(ob[0].absolute_url+"/unlock") return "not found" + def getFileObject(self,fileId): """get an object""" - if isinstance(fileId,CDLIFileObject): # support for old baskets - return fileId + logging.debug("getFileObj:"+repr(fileId)) + if isinstance(fileId,CDLIFileObject): # support for old baskets + return fileId x=self.v_files.get(fileId) - #logging.debug("getFileObj:"+repr(fileId)) + return x def getFileObjectLastVersion(self,fileId): @@ -1062,8 +1064,11 @@ class CDLIRoot(Folder): gen - def forceunlock(self,REQUEST=None,user=None): + def forceunlock(self,REQUEST=None,user=None,fid=None): "break all locks" + if fid is not None: + self.getFileObject(fid).forceunlock() + return fid ret=[] for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): @@ -1084,8 +1089,8 @@ class CDLIRoot(Folder): """hole alle gesperrten files""" ret={} - for f in self.ZopeFind(self,obj_metatypes="CDLI file",search_sub=1): - lb = f[1].lockedBy + for nm,f in self.v_files.items(): + lb = str(f.lockedBy) add=False if (lb is not None) and (lb!=""): @@ -1097,7 +1102,7 @@ class CDLIRoot(Folder): if add==True: if not ret.has_key(lb): ret[lb]=[] - ret[lb].append(f[0]) + ret[lb].append(nm) if REQUEST is not None: