--- versionedFile/versionedFile.py 2005/11/21 20:05:29 1.53 +++ versionedFile/versionedFile.py 2005/12/08 17:12:21 1.55 @@ -7,7 +7,8 @@ from AccessControl import getSecurityMan from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from AccessControl import ClassSecurityInfo - +from difflib import Differ +from pprint import pprint from Products.ZCatalog.CatalogPathAwareness import CatalogAware @@ -632,7 +633,10 @@ class versionedFileObject(File): def lastEditor(self): """last Editor""" if hasattr(self,'author'): - ret=self.author.replace("-","\n") + try: + ret=self.author.replace("-","\n") + except:#old version of versionded file sometimes stored the user object and not only the name the following corrects this + ret=str(self.author).replace("-","\n") ret=ret.replace("\r","\n") return ret @@ -797,6 +801,25 @@ class versionedFile(CatalogAware,Folder) lastVersion.versionNumber=1 return lastVersion + + def diff(self,data): + """differenz between lastversion and data""" + d=Differ() + tmp=self.getLastVersion().data + #print "XX",data,tmp + l=list(d.compare(data.splitlines(1),tmp.splitlines(1))) + + plus=0 + minus=0 + for a in l: + if a[0]=='+': + plus+=1 + if a[0]=='-': + minus+=1 + + + return max([plus,minus]),l + def index_html(self): """main view""" lastVersion=self.getLastVersion()