[Erp5-report] r20047 - in /erp5/trunk/products/CMFActivity: Activity/ skins/activity/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Mar 19 16:27:45 CET 2008


Author: vincent
Date: Wed Mar 19 16:27:44 2008
New Revision: 20047

URL: http://svn.erp5.org?rev=20047&view=rev
Log:
Implement prepareQueueMessageList and SQLQueue_writeMessageList for SQLQueue. 

Added:
    erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
Removed:
    erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
Modified:
    erp5/trunk/products/CMFActivity/Activity/SQLQueue.py

Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=20047&r1=20046&r2=20047&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Wed Mar 19 16:27:44 2008
@@ -61,26 +61,28 @@
     and provide sequentiality. Should not create conflict
     because use of OOBTree.
   """
-  def prepareQueueMessage(self, activity_tool, m):
-    if m.is_registered:
-      id_tool = activity_tool.getPortalObject().portal_ids
-      uid = id_tool.generateNewLengthId(id_group='portal_activity_queue', store=0)
-      path = '/'.join(m.object_path)
-      method_id = m.method_id
-      priority = m.activity_kw.get('priority', 1)
-      date = m.activity_kw.get('at_date', None)
-      if date is None:
-        date = self.getNow(activity_tool)
-      tag = m.activity_kw.get('tag', '')
-      serialization_tag = m.activity_kw.get('serialization_tag', '')
-      activity_tool.SQLQueue_writeMessage(uid=uid,
-                                          path=path,
-                                          method_id=method_id,
-                                          priority=priority,
-                                          message=self.dumpMessage(m),
-                                          date=date,
-                                          tag=tag,
-                                          serialization_tag=serialization_tag)
+
+  def prepareQueueMessageList(self, activity_tool, message_list):
+    registered_message_list = [m for m in message_list if m.is_registered]
+    if len(registered_message_list):
+      uid_list = activity_tool.getPortalObject().portal_ids.generateNewLengthIdList(
+        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]
+      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]
+      tag_list = [m.activity_kw.get('tag', '') for m in registered_message_list]
+      serialization_tag_list = [m.activity_kw.get('serialization_tag', '') for m in registered_message_list]
+      message_list = [self.dumpMessage(m) for m in registered_message_list]
+      activity_tool.SQLQueue_writeMessageList(uid_list=uid_list,
+                                              path_list=path_list,
+                                              method_id_list=method_id_list,
+                                              priority_list=priority_list,
+                                              message_list=message_list,
+                                              date_list=date_list,
+                                              tag_list=tag_list,
+                                              serialization_tag_list=serialization_tag_list)
 
   def prepareDeleteMessage(self, activity_tool, m):
     # Erase all messages in a single transaction

Removed: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql?rev=20046&view=auto
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql (removed)
@@ -1,33 +1,0 @@
-<dtml-comment>
-title:
-connection_id:cmf_activity_sql_connection
-max_rows:1000
-max_cache:100
-cache_time:0
-class_name:
-class_file:
-</dtml-comment>
-<params>uid
-path
-method_id
-message
-priority
-processing_node
-date
-tag
-serialization_tag
-</params>
-INSERT INTO message_queue
-SET
-  uid = <dtml-sqlvar uid type="int">,
-  path = <dtml-sqlvar path type="string">,
-  date = <dtml-if date><dtml-sqlvar date type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if>,
-  method_id = <dtml-sqlvar method_id type="string">,
-<dtml-if processing_node>
-  processing_node = <dtml-sqlvar processing_node type="int">,
-</dtml-if>
-  processing = 0,
-  priority = <dtml-sqlvar priority type="int">,
-  tag = <dtml-sqlvar tag type="string">,
-  serialization_tag = <dtml-sqlvar serialization_tag type="string">,
-  message = <dtml-sqlvar message type="string">

Added: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql?rev=20047&view=auto
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql (added)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql Wed Mar 19 16:27:44 2008
@@ -1,0 +1,37 @@
+<dtml-comment>
+title:
+connection_id:cmf_activity_sql_connection
+max_rows:1000
+max_cache:100
+cache_time:0
+class_name:
+class_file:
+</dtml-comment>
+<params>uid_list
+path_list
+method_id_list
+message_list
+priority_list
+processing_node_list
+date_list
+tag_list
+serialization_tag_list
+</params>
+INSERT INTO message_queue
+(uid, path, 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-if date><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if>,
+  <dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
+  <dtml-if processing_node_list><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
+  0,
+  <dtml-sqlvar expr="priority_list[loop_item]" type="int">,
+  <dtml-sqlvar expr="tag_list[loop_item]" type="string">,
+  <dtml-sqlvar expr="serialization_tag_list[loop_item]" type="string">,
+  <dtml-sqlvar expr="message_list[loop_item]" type="string">
+)
+</dtml-in>




More information about the Erp5-report mailing list