[Erp5-report] r25274 - in /erp5/trunk/products/CMFActivity: ./ Activity/ skins/activity/ te...
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Jan 22 16:45:16 CET 2009
Author: vincent
Date: Thu Jan 22 16:45:12 2009
New Revision: 25274
URL: http://svn.erp5.org?rev=25274&view=rev
Log:
Implement ActiveProcess.hasActivity . It was present, but required data was never present in the table. Now that SQL{Dict|Queue}.hasActivity don't use "**kw" any more, it causes errors.
Modified:
erp5/trunk/products/CMFActivity/ActiveProcess.py
erp5/trunk/products/CMFActivity/Activity/SQLDict.py
erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
erp5/trunk/products/CMFActivity/ActivityTool.py
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_hasMessage.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_hasMessage.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_readMessageList.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
erp5/trunk/products/CMFActivity/tests/testCMFActivity.py
Modified: erp5/trunk/products/CMFActivity/ActiveProcess.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/ActiveProcess.py?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/ActiveProcess.py [utf8] (original)
+++ erp5/trunk/products/CMFActivity/ActiveProcess.py [utf8] Thu Jan 22 16:45:12 2009
@@ -138,7 +138,7 @@
"""
activity_tool = getattr(self, 'portal_activities', None)
if activity_tool is None: return 0 # Do nothing if no portal_activities
- return activity_tool.hasActivity(None, active_process = self, **kw)
+ return activity_tool.hasActivity(None, active_process_uid = self.getUid(), **kw)
security.declareProtected( CMFCorePermissions.View, 'hasErrorActivity' )
def hasErrorActivity(self, **kw):
Modified: erp5/trunk/products/CMFActivity/Activity/SQLDict.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLDict.py?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLDict.py [utf8] (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLDict.py [utf8] Thu Jan 22 16:45:12 2009
@@ -71,6 +71,7 @@
if len(registered_message_list) > 0:
#LOG('SQLDict prepareQueueMessageList', 0, 'registered_message_list = %r' % (registered_message_list,))
path_list = ['/'.join(message.object_path) for message in registered_message_list]
+ active_process_uid_list = [message.active_process_uid for message in registered_message_list]
method_id_list = [message.method_id for message in registered_message_list]
priority_list = [message.activity_kw.get('priority', 1) for message in registered_message_list]
dumped_message_list = [self.dumpMessage(message) for message in registered_message_list]
@@ -84,6 +85,7 @@
id_count=len(registered_message_list), store=0)
activity_tool.SQLDict_writeMessageList( uid_list = uid_list,
path_list = path_list,
+ active_process_uid_list=active_process_uid_list,
method_id_list = method_id_list,
priority_list = priority_list,
message_list = dumped_message_list,
@@ -509,16 +511,13 @@
get_transaction().commit()
return not len(message_uid_priority_list)
- def hasActivity(self, activity_tool, object, method_id=None, only_valid=None):
+ def hasActivity(self, activity_tool, object, method_id=None, only_valid=None, active_process_uid=None):
hasMessage = getattr(activity_tool, 'SQLDict_hasMessage', None)
if hasMessage is not None:
- if object is not None:
- my_object_path = '/'.join(object.getPhysicalPath())
- result = hasMessage(path=my_object_path, method_id=method_id, only_valid=only_valid)
- if len(result) > 0:
- return result[0].message_count > 0
- else:
- return 1 # Default behaviour if no object specified is to return 1 until active_process implemented
+ my_object_path = '/'.join(object.getPhysicalPath())
+ result = hasMessage(path=my_object_path, method_id=method_id, only_valid=only_valid, active_process_uid=active_process_uid)
+ if len(result) > 0:
+ return result[0].message_count > 0
return 0
def flush(self, activity_tool, object_path, invoke=0, method_id=None, commit=0, **kw):
Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py [utf8] (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py [utf8] Thu Jan 22 16:45:12 2009
@@ -70,6 +70,7 @@
id_group='portal_activity_queue', id_count=len(registered_message_list),
store=0)
path_list = ['/'.join(m.object_path) for m in registered_message_list]
+ active_process_uid_list = [m.active_process_uid for m in registered_message_list]
method_id_list = [m.method_id for m in registered_message_list]
priority_list = [m.activity_kw.get('priority', 1) for m in registered_message_list]
date_list = [m.activity_kw.get('at_date', None) for m in registered_message_list]
@@ -78,6 +79,7 @@
message_list = [self.dumpMessage(m) for m in registered_message_list]
activity_tool.SQLQueue_writeMessageList(uid_list=uid_list,
path_list=path_list,
+ active_process_uid_list=active_process_uid_list,
method_id_list=method_id_list,
priority_list=priority_list,
message_list=message_list,
@@ -346,16 +348,13 @@
return not len(message_uid_priority_list)
- def hasActivity(self, activity_tool, object, method_id=None, only_valid=None):
+ def hasActivity(self, activity_tool, object, method_id=None, only_valid=None, active_process_uid=None):
hasMessage = getattr(activity_tool, 'SQLQueue_hasMessage', None)
if hasMessage is not None:
- if object is not None:
- my_object_path = '/'.join(object.getPhysicalPath())
- result = hasMessage(path=my_object_path, method_id=method_id, only_valid=only_valid)
- if len(result) > 0:
- return result[0].message_count > 0
- else:
- return 1 # Default behaviour if no object specified is to return 1 until active_process implemented
+ my_object_path = '/'.join(object.getPhysicalPath())
+ result = hasMessage(path=my_object_path, method_id=method_id, only_valid=only_valid, active_process_uid=active_process_uid)
+ if len(result) > 0:
+ return result[0].message_count > 0
return 0
def flush(self, activity_tool, object_path, invoke=0, method_id=None, commit=0, **kw):
Modified: erp5/trunk/products/CMFActivity/ActivityTool.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/ActivityTool.py?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/ActivityTool.py [utf8] (original)
+++ erp5/trunk/products/CMFActivity/ActivityTool.py [utf8] Thu Jan 22 16:45:12 2009
@@ -146,6 +146,9 @@
Message instances are stored in an activity queue, inside the Activity Tool.
"""
+
+ active_process_uid = None
+
def __init__(self, obj, active_process, activity_kw, method_id, args, kw):
if isinstance(obj, str):
self.object_path = tuple(obj.split('/'))
@@ -490,6 +493,11 @@
activity_creation_trace = False
activity_tracking = False
activity_timing_log = False
+
+ def SQLDict_setPriority(self, **kw):
+ real_SQLDict_setPriority = getattr(self.aq_parent, 'SQLDict_setPriority')
+ LOG('ActivityTool', 0, real_SQLDict_setPriority(src__=1, **kw))
+ return real_SQLDict_setPriority(**kw)
def __init__(self):
return Folder.__init__(self, ActivityTool.id)
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_createMessageTable.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -12,6 +12,7 @@
`uid` INT UNSIGNED NOT NULL,
`date` DATETIME NOT NULL,
`path` VARCHAR(255) NOT NULL,
+ `active_process_uid` INT UNSIGNED NULL,
`method_id` VARCHAR(255) NOT NULL,
`processing_node` SMALLINT NOT NULL DEFAULT -1,
`processing` TINYINT NOT NULL DEFAULT 0,
@@ -25,6 +26,7 @@
`message` LONGBLOB NOT NULL,
PRIMARY KEY (`uid`),
KEY (`path`),
+ KEY (`active_process_uid`),
KEY (`method_id`),
KEY `processing_node_processing` (`processing_node`, `processing`),
KEY `processing_node_date` (`processing_node`, `date`),
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_hasMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_hasMessage.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_hasMessage.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_hasMessage.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -9,6 +9,7 @@
</dtml-comment>
<params>path
method_id
+active_process_uid
only_valid</params>
SELECT count(path) as message_count FROM
message
@@ -16,4 +17,4 @@
path = <dtml-sqlvar path type="string">
<dtml-if expr="method_id is not None">AND method_id = <dtml-sqlvar method_id type="string"></dtml-if>
<dtml-if expr="only_valid">AND processing_node > -2</dtml-if>
-
+<dtml-if expr="active_process_uid is not None"> AND active_process_uid = <dtml-sqlvar active_process_uid type="int"> </dtml-if>
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLDict_writeMessageList.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -9,6 +9,7 @@
</dtml-comment>
<params>uid_list
path_list
+active_process_uid_list
method_id_list
message_list
priority_list
@@ -19,13 +20,14 @@
serialization_tag_list
order_validation_text_list</params>
INSERT INTO message
-(uid, path, date, method_id, processing_node, processing, priority, group_method_id, tag, serialization_tag, order_validation_text, message)
+(uid, path, active_process_uid, date, method_id, processing_node, processing, priority, group_method_id, tag, serialization_tag, order_validation_text, message)
VALUES
<dtml-in prefix="loop" expr="_.range(_.len(path_list))">
<dtml-if sequence-start><dtml-else>,</dtml-if>
(
<dtml-sqlvar expr="uid_list[loop_item]" type="int">,
<dtml-sqlvar expr="path_list[loop_item]" type="string">,
+ <dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>,
<dtml-if expr="date_list is not None"><dtml-if expr="date_list[loop_item] is not None"><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if><dtml-else>UTC_TIMESTAMP()</dtml-if>,
<dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
<dtml-if expr="processing_node_list is not None"><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -12,6 +12,7 @@
`uid` INT UNSIGNED NOT NULL,
`date` DATETIME NOT NULL,
`path` VARCHAR(255) NOT NULL,
+ `active_process_uid` INT UNSIGNED NULL,
`method_id` VARCHAR(255) NOT NULL,
`processing_node` SMALLINT NOT NULL DEFAULT -1,
`processing` TINYINT NOT NULL DEFAULT 0,
@@ -22,6 +23,7 @@
`message` LONGBLOB NOT NULL,
PRIMARY KEY (`uid`),
KEY (`path`),
+ KEY (`active_process_uid`),
KEY (`method_id`),
KEY `processing_node_processing` (`processing_node`, `processing`),
KEY `processing_node_date` (`processing_node`, `date`),
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_hasMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_hasMessage.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_hasMessage.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_hasMessage.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -9,11 +9,12 @@
</dtml-comment>
<params>path
method_id
+active_process_uid
only_valid</params>
SELECT count(path) as message_count FROM
message_queue
WHERE
path = <dtml-sqlvar path type="string">
-<dtml-if expr="method_id is not None">AND method_id = <dtml-sqlvar method_id type="string"></dtml-if>
-<dtml-if expr="only_valid">AND processing_node > -2</dtml-if>
-
+<dtml-if expr="method_id is not None"> AND method_id = <dtml-sqlvar method_id type="string"> </dtml-if>
+<dtml-if expr="only_valid"> AND processing_node > -2 </dtml-if>
+<dtml-if expr="active_process_uid is not None"> AND active_process_uid = <dtml-sqlvar active_process_uid type="int"> </dtml-if>
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_readMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_readMessageList.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_readMessageList.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_readMessageList.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -19,7 +19,7 @@
message_queue
WHERE
1 = 1
-<dtml-if expr="not(include_processing)"> AND processing = 0 </dtml-if>
+AND processing = 0
<dtml-if expr="processing_node is not None"> AND processing_node = <dtml-sqlvar processing_node type="int"> </dtml-if>
<dtml-if expr="path is not None">AND path = <dtml-sqlvar path type="string"></dtml-if>
<dtml-if expr="method_id is not None">AND method_id = <dtml-sqlvar method_id type="string"></dtml-if>
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql [utf8] (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql [utf8] Thu Jan 22 16:45:12 2009
@@ -9,6 +9,7 @@
</dtml-comment>
<params>uid_list
path_list
+active_process_uid_list
method_id_list
message_list
priority_list
@@ -18,13 +19,14 @@
serialization_tag_list
</params>
INSERT INTO message_queue
-(uid, path, date, method_id, processing_node, processing, priority, tag, serialization_tag, message)
+(uid, path, active_process_uid, date, method_id, processing_node, processing, priority, tag, serialization_tag, message)
VALUES
<dtml-in prefix="loop" expr="_.range(_.len(path_list))">
<dtml-if sequence-start><dtml-else>,</dtml-if>
(
<dtml-sqlvar expr="uid_list[loop_item]" type="int">,
<dtml-sqlvar expr="path_list[loop_item]" type="string">,
+ <dtml-sqlvar expr="active_process_uid_list[loop_item]" type="int" optional>,
<dtml-if expr="date_list is not None"><dtml-if expr="date_list[loop_item] is not None"><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if><dtml-else>UTC_TIMESTAMP()</dtml-if>,
<dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
<dtml-if expr="processing_node_list is not None"><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
Modified: erp5/trunk/products/CMFActivity/tests/testCMFActivity.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/tests/testCMFActivity.py?rev=25274&r1=25273&r2=25274&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/tests/testCMFActivity.py [utf8] (original)
+++ erp5/trunk/products/CMFActivity/tests/testCMFActivity.py [utf8] Thu Jan 22 16:45:12 2009
@@ -1949,6 +1949,7 @@
uid_list=[0], # This uid is never automaticaly assigned (starts at 1)
date_list=[DateTime().Date()],
path_list=[path],
+ active_process_uid=[None],
method_id_list=[method_id],
message_list=[pickled_message],
priority_list=[1],
More information about the Erp5-report
mailing list