[Erp5-report] r18459 - in /erp5/trunk/products/ERP5OOo: Document/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Dec 21 10:11:14 CET 2007
Author: yusei
Date: Fri Dec 21 10:11:14 2007
New Revision: 18459
URL: http://svn.erp5.org?rev=18459&view=rev
Log:
Refactored dms ingestion system.
Modified:
erp5/trunk/products/ERP5OOo/Document/OOoDocument.py
erp5/trunk/products/ERP5OOo/tests/testDms.py
Modified: erp5/trunk/products/ERP5OOo/Document/OOoDocument.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/Document/OOoDocument.py?rev=18459&r1=18458&r2=18459&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/Document/OOoDocument.py (original)
+++ erp5/trunk/products/ERP5OOo/Document/OOoDocument.py Fri Dec 21 10:11:14 2007
@@ -38,7 +38,9 @@
from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
from Products.ERP5Type.Cache import CachingMethod
from Products.ERP5.Document.File import File
-from Products.ERP5.Document.Document import ConversionCacheMixin, ConversionError
+from Products.ERP5.Document.Document import ConversionCacheMixin
+from Products.ERP5.Document.Document import ConversionError
+from Products.ERP5.Document.Document import NotConvertedError
from Products.ERP5.Document.File import _unpackData
from zLOG import LOG, ERROR
@@ -139,6 +141,13 @@
rx_strip = re.compile('<[^>]*?>', re.DOTALL|re.MULTILINE)
rx_compr = re.compile('\s+')
+ security.declareProtected(Permissions.ModifyPortalContent, 'isSupportBaseDataConversion')
+ def isSupportBaseDataConversion(self):
+ """
+ OOoDocument is needed to conversion to base format.
+ """
+ return True
+
def _setFile(self, data, precondition=None):
File._setFile(self, data, precondition=precondition)
if self.hasBaseData():
@@ -170,7 +179,7 @@
return File.index_html(self, REQUEST, RESPONSE)
# Make sure file is converted to base format
if not self.hasBaseData():
- self.convertToBaseFormat()
+ raise NotConvertedError
# Else try to convert the document and return it
mime, result = self.convert(format=format, display=display, **kw)
if not mime:
@@ -215,7 +224,7 @@
to provide an extensive list of conversion formats.
"""
if not self.hasBaseData():
- self.convertToBaseFormat()
+ raise NotConvertedError
def cached_getTargetFormatItemList(content_type):
server_proxy = self._mkProxy()
@@ -288,7 +297,7 @@
Communicates with server to convert a file
"""
if not self.hasBaseData():
- self.convertToBaseFormat()
+ raise NotConvertedError
if format == 'text-content':
# Extract text from the ODF file
cs = cStringIO.StringIO()
@@ -333,7 +342,8 @@
is_html = 0
original_format = format
if format == 'base-data':
- if not self.hasBaseData(): self.convertToBaseFormat()
+ if not self.hasBaseData():
+ raise NotConvertedError
return self.getBaseContentType(), self.getBaseData()
if format == 'pdf':
format_list = [x for x in self.getTargetFormatList()
@@ -360,7 +370,7 @@
raise ConversionError("OOoDocument: target format %s is not supported" % format)
# Check if we have already a base conversion
if not self.hasBaseData():
- self.convertToBaseFormat()
+ raise NotConvertedError
# Return converted file
if display is None or original_format not in STANDARD_IMAGE_FORMAT_LIST:
has_format = self.hasConversion(format=format)
@@ -482,24 +492,26 @@
security.declareProtected(Permissions.ModifyPortalContent,
'updateBaseMetadata')
- def updateBaseMetadata(self, *arg, **kw):
+ def updateBaseMetadata(self, **kw):
"""
Updates metadata information in the converted OOo document
based on the values provided by the user. This is implemented
through the invocation of the conversion server.
"""
- data = self.getBaseData()
- if data in ('', None):
- raise ValueError, "OOoDocument: BaseData is empty. Document is not converted yet."
+ if not self.hasBaseData():
+ raise NotConvertedError
+
+ self.clearConversionCache()
server_proxy = self._mkProxy()
response_code, response_dict, response_message = \
server_proxy.run_setmetadata(self.getId(),
- enc(_unpackData(data)),
+ enc(_unpackData(self.getBaseData())),
kw)
if response_code == 200:
# successful meta data extraction
self._setBaseData(dec(response_dict['data']))
+ self.updateFileMetadata() # record in workflow history # XXX must put appropriate comments.
else:
# Explicitly raise the exception!
raise ConversionError("OOoDocument: error getting document metadata %s:%s"
Modified: erp5/trunk/products/ERP5OOo/tests/testDms.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testDms.py?rev=18459&r1=18458&r2=18459&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testDms.py (original)
+++ erp5/trunk/products/ERP5OOo/tests/testDms.py Fri Dec 21 10:11:14 2007
@@ -444,6 +444,8 @@
doc.edit(file=makeFileUpload('import_data_list.ods'))
doc.publish()
get_transaction().commit()
+ self.tic()
+ get_transaction().commit()
uf = self.portal.acl_users
uf._doAddUser('member_user2', 'secret', ['Member'], [])
More information about the Erp5-report
mailing list