[Erp5-report] r18458 - in /erp5/trunk/products/ERP5: Document/ Tool/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Dec 21 10:10:25 CET 2007
Author: yusei
Date: Fri Dec 21 10:10:23 2007
New Revision: 18458
URL: http://svn.erp5.org?rev=18458&view=rev
Log:
Refactored dms ingestion system.
Modified:
erp5/trunk/products/ERP5/Document/Document.py
erp5/trunk/products/ERP5/Tool/ContributionTool.py
Modified: erp5/trunk/products/ERP5/Document/Document.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Document.py?rev=18458&r1=18457&r2=18458&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Document.py (original)
+++ erp5/trunk/products/ERP5/Document/Document.py Fri Dec 21 10:10:23 2007
@@ -97,6 +97,8 @@
pass
class ConversionError(Exception):pass
+
+class NotConvertedError(Exception):pass
class ConversionCacheMixin:
"""
@@ -921,7 +923,7 @@
returns properties which should be set on the document
"""
if not self.hasBaseData():
- self.convertToBaseFormat()
+ raise NotConvertedError
method = self._getTypeBasedMethod('getPropertyDictFromContent',
fallback_script_id='Document_getPropertyDictFromContent')
return method()
@@ -1165,26 +1167,15 @@
Use accessors (getBaseData, setBaseData, hasBaseData, etc.)
"""
try:
- msg = self._convertToBaseFormat() # Call implemetation method
+ message = self._convertToBaseFormat() # Call implemetation method
self.clearConversionCache() # Conversion cache is now invalid
- if msg is None:
- msg = 'Converted to %s.' % self.getBaseContentType()
- self.convertFile(comment=msg) # Invoke workflow method
- except NotImplementedError:# we don't do any workflow action if nothing has been done
- msg = ''
- except ConversionError, e:
- msg = 'Problem: %s' % (str(e) or 'undefined.')
- #self.processFile(comment=msg)
- raise ConversionError, msg
- except Fault, e:
- msg = 'Problem: %s' % (repr(e) or 'undefined.')
- #self.processFile(comment=msg)
- raise Fault, msg
- except socket.error, e:
- msg = 'Problem: %s' % (repr(e) or 'undefined.')
- #self.processFile(comment=msg)
- raise socket.error, msg
- return msg
+ if message is None:
+ # XXX Need to translate.
+ message = 'Converted to %s.' % self.getBaseContentType()
+ self.convertFile(comment=message) # Invoke workflow method
+ except NotImplementedError:
+ message = ''
+ return message
def _convertToBaseFormat(self):
"""
@@ -1203,6 +1194,14 @@
links (in combindation with populate).
"""
raise NotImplementedError
+
+ security.declareProtected(Permissions.ModifyPortalContent, 'isSupportBaseDataConversion')
+ def isSupportBaseDataConversion(self):
+ """
+ This is a public interface to check a document that is support conversion
+ to base format and can be overridden in subclasses.
+ """
+ return False
def convertFile(self, **kw):
"""
Modified: erp5/trunk/products/ERP5/Tool/ContributionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/ContributionTool.py?rev=18458&r1=18457&r2=18458&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/ContributionTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/ContributionTool.py Fri Dec 21 10:10:23 2007
@@ -458,7 +458,14 @@
# If we need to discoverMetadata synchronously, it must
# be for user interface and should thus be handled by
# ZODB scripts
- document.activate().discoverMetadata(file_name=name, user_login=user_login)
+
+ # XXX converting state is for only document which is necessary to
+ # convert base format.
+ portal_workflow = self.getPortalObject().portal_workflow
+ if 'processing_status_workflow' in portal_workflow.getChainFor(document):
+ document.processFile() # move to converting state.
+ document.activate().Document_convertToBaseFormatAndDiscoverMetadata(
+ file_name=name, user_login=user_login)
else:
if document.isExternalDocument():
document = existing_document
More information about the Erp5-report
mailing list