--- cdli/cdli_files.py 2009/08/31 14:06:42 1.113 +++ cdli/cdli_files.py 2010/03/19 14:01:41 1.115 @@ -90,7 +90,7 @@ class CDLIFileObject(CatalogAware,extVer def getPNumber(self): """get the pnumber""" try: - txt=re.match("&[Pp](\d*)\s*=([^\r\n]*)",self.getData()[0:]) + txt=re.match("&[PpSs](\d*)\s*=([^\r\n]*)",self.getData()[0:]) except: txt=self.getData()[0:] @@ -104,7 +104,7 @@ class CDLIFileObject(CatalogAware,extVer def getDesignation(self): """get the designation out of the file""" try: - txt=re.match("&[Pp](\d*)\s*=([^\r\n]*)",self.getData()[0:]) + txt=re.match("&[PpSs](\d*)\s*=([^\r\n]*)",self.getData()[0:]) except: txt=self.getData()[0:] @@ -318,8 +318,8 @@ def checkFile(filename,data,folder): # first check the file name fn=filename.split(".") # no extension - if not fn[0][0]=="P": - return False,"P missing in the filename" + if not (fn[0][0]=="P" or fn[0][0]=="S"): + return False,"P/S missing in the filename" elif len(fn[0])!=7: return False,"P number has not the right length 6" elif not checkUTF8(data): @@ -857,8 +857,17 @@ class CDLIRoot(Folder): self.v_files_lastVersion.update({obj.getId():obj.getLastVersion()}) self.v_file_ids.add(obj.getId()) - logging.debug("update:"+obj.getId()+"XXX"+repr(obj)) + #change everthing around to make it persistent... + tmp = self.v_files + self.v_files=tmp + tmp2=self.v_file_ids + self.v_file_ids=tmp2 + + self.CDLICache.cleanCache() #be sure that the cache is clean + logging.debug("update:"+obj.getId()+"XXX"+repr(obj)) + + def deleteFromBTree(self,objId): """delete an obj""" self.v_files.pop(objId) @@ -991,7 +1000,7 @@ class CDLIRoot(Folder): if line.lstrip().startswith('#lem:'): continue # ignore p-num line - if line.startswith('&P'): + if line.startswith('&P') or line.startswith('&S'): continue # ignore version lines if line.startswith('#version'): @@ -1082,9 +1091,6 @@ class CDLIRoot(Folder): lv.author=user lv.versionComment="XXXXXXX" - - - gen def forceunlock(self,REQUEST=None,user=None,fid=None): "break all locks" if fid is not None: @@ -1308,9 +1314,6 @@ class CDLIRoot(Folder): def uploadATFfinally(self,procedure='',comment="",basketname='',unlock=None,repeat=None,RESPONSE=None): """nowupload the files""" - - - threadName=repeat if not threadName or threadName=="": thread=uploadATFfinallyThread() @@ -1373,12 +1376,8 @@ class CDLIRoot(Folder): logging.error("uploadATFfinally - cannot update Object %s Error: %s %s"%(ob[1],sys.exc_info()[0],sys.exc_info()[1])) for x in stObj.returnValue['newPs']: - ob=self.CDLICatalog.search({'title':x}) - try: - self.cdliRoot.updateOrAddToFileBTree(ob[0].getObject()) - except: - - logging.error("uploadATFfinally - cannot update Object %s Error: %s %s"%(x,sys.exc_info()[0],sys.exc_info()[1])) + obj=self.getFileObject(x) #updates the object in the cache + logging.debug("Got:"+repr(obj)) if RESPONSE is not None: RESPONSE.redirect(self.absolute_url())