From 772a708df8768b4e71329fc7ee1858d3f7e181a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bartek=20G=C3=B3rny?= <bartek@gorny.edu.pl>
Date: Tue, 21 Nov 2006 14:21:02 +0000
Subject: [PATCH] rewrote getting properties from content

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@11401 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5OOo/Document/OOoDocument.py | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/product/ERP5OOo/Document/OOoDocument.py b/product/ERP5OOo/Document/OOoDocument.py
index f3ee39a6d1..32c7f7b87b 100644
--- a/product/ERP5OOo/Document/OOoDocument.py
+++ b/product/ERP5OOo/Document/OOoDocument.py
@@ -106,8 +106,6 @@ class OOoDocument(DMSFile, CachingMixin):
                     , PropertySheet.OOoDocument
                     )
 
-  # regexp for finding attrs in content
-  rx_atr=re.compile('([\w]+)###([\w/]+)')
   # regexps for stripping xml from docs
   rx_strip=re.compile('<[^>]*?>',re.DOTALL|re.MULTILINE)
   rx_compr=re.compile('\s+')
@@ -246,24 +244,14 @@ class OOoDocument(DMSFile, CachingMixin):
     return s
 
   security.declareProtected(Permissions.ModifyPortalContent,'setPropertyListFromContent')
-  def setPropertyListFromContent(self,data):
-    cs=cStringIO.StringIO()
-    cs.write(self._unpackData(data))
-    try:
-      z=zipfile.ZipFile(cs)
-    except zipfile.BadZipfile:
-      cs.close()
-      return
-    s=z.read('content.xml')
-    cs.close()
-    z.close()
-    atrs=dict(self.rx_atr.findall(s))
+  def setPropertyListFromContent(self):
+    '''docstring'''
+    atrs=self.Document_getPropertyListFromContent(self,self.getTextContent(),self.getPortalType())
     doctype=atrs.get('doctype','None')
-    if doctype!=self.getPortalType():
+    if doctype!='None' and doctype!=self.getPortalType():
       raise Exception('portal type mismatch - content gave %s, I have %s' % (doctype,self.getPortalType()))
     for a in atrs:
-      if a not in ('author','doctype'):
-        self.setProperty(a,atrs[a])
+      self.setProperty(a,atrs[a])
 
   security.declarePrivate('_setMetaData')
   def _setMetaData(self,meta):
@@ -465,7 +453,6 @@ class OOoDocument(DMSFile, CachingMixin):
 
   # BG copied from File in case
   index_html = CMFFile.index_html
-  PUT = CMFFile.PUT
   security.declareProtected('FTP access', 'manage_FTPget', 'manage_FTPstat', 'manage_FTPlist')
   manage_FTPget = CMFFile.manage_FTPget
   manage_FTPlist = CMFFile.manage_FTPlist
-- 
2.30.9