[Erp5-report] r36971 luke - in /erp5/trunk: bt5/erp5_trade/PortalTypeWorkflowChainTemplateI...

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Jul 8 11:13:47 CEST 2010


Author: luke
Date: Thu Jul  8 11:13:38 2010
New Revision: 36971

URL: http://svn.erp5.org?rev=36971&view=rev
Log:
 - use Interactor instead of Interaction workflow

Fact of reindexing subobjects when object is indexed is not connected with
particular portal type, but with group of objects.

With this interactor it is possible to move away from spaghetti code in
classes which are overriding reindexObject to do only one thing - reindex
subobjects.

Added:
    erp5/trunk/products/ERP5/Interactor/RecursiveReindexInteractor.py
Modified:
    erp5/trunk/bt5/erp5_trade/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml
    erp5/trunk/bt5/erp5_trade/bt/revision
    erp5/trunk/bt5/erp5_trade/bt/template_portal_type_workflow_chain_list

Modified: erp5/trunk/bt5/erp5_trade/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml?rev=36971&r1=36970&r2=36971&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml [utf8] Thu Jul  8 11:13:38 2010
@@ -113,7 +113,7 @@
  </chain>
  <chain>
   <type>Purchase Trade Condition</type>
-  <workflow>edit_workflow, reindex_object_interaction_workflow, validation_workflow</workflow>
+  <workflow>edit_workflow, validation_workflow</workflow>
  </chain>
  <chain>
   <type>Returned Purchase Packing List</type>
@@ -165,7 +165,7 @@
  </chain>
  <chain>
   <type>Sale Trade Condition</type>
-  <workflow>edit_workflow, reindex_object_interaction_workflow, validation_workflow</workflow>
+  <workflow>edit_workflow, validation_workflow</workflow>
  </chain>
  <chain>
   <type>Trade Model Line</type>

Modified: erp5/trunk/bt5/erp5_trade/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/bt/revision?rev=36971&r1=36970&r2=36971&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/bt/revision [utf8] Thu Jul  8 11:13:38 2010
@@ -1 +1 @@
-960
\ No newline at end of file
+961
\ No newline at end of file

Modified: erp5/trunk/bt5/erp5_trade/bt/template_portal_type_workflow_chain_list
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/bt/template_portal_type_workflow_chain_list?rev=36971&r1=36970&r2=36971&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/bt/template_portal_type_workflow_chain_list [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/bt/template_portal_type_workflow_chain_list [utf8] Thu Jul  8 11:13:38 2010
@@ -89,7 +89,6 @@ Purchase Packing List | delivery_simulat
 Purchase Packing List | edit_workflow
 Purchase Packing List | packing_list_workflow
 Purchase Trade Condition | edit_workflow
-Purchase Trade Condition | reindex_object_interaction_workflow
 Purchase Trade Condition | validation_workflow
 Returned Purchase Packing List Cell | delivery_movement_causality_interaction_workflow
 Returned Purchase Packing List Cell | delivery_movement_simulation_interaction_workflow
@@ -152,7 +151,6 @@ Sale Packing List | edit_workflow
 Sale Packing List | packing_list_container_workflow
 Sale Packing List | packing_list_workflow
 Sale Trade Condition | edit_workflow
-Sale Trade Condition | reindex_object_interaction_workflow
 Sale Trade Condition | validation_workflow
 Trade Model Line | edit_workflow
 Trade Model Line | trade_model_line_interaction_workflow
\ No newline at end of file

Added: erp5/trunk/products/ERP5/Interactor/RecursiveReindexInteractor.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Interactor/RecursiveReindexInteractor.py?rev=36971&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/Interactor/RecursiveReindexInteractor.py (added)
+++ erp5/trunk/products/ERP5/Interactor/RecursiveReindexInteractor.py [utf8] Thu Jul  8 11:13:38 2010
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved.
+#                    Lukasz Nowak <luke at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsibility of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# guarantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+
+from Products.ERP5Type.Interactor.Interactor import Interactor
+
+class RecursiveReindexInteractor(Interactor):
+  """
+  This interactor invokes reindex on Inventory document when its
+  subdocuments are modified.
+  """
+  def install(self):
+    from Products.ERP5Type.Document.TradeCondition import TradeCondition
+    self.on(TradeCondition.reindexObject).doAfter(self.recursiveReindexObject)
+
+  def recursiveReindexObject(self, method_call_object, *args, **kw):
+    """
+      Reindex content inside
+    """
+    method_call_object.instance.recursiveReindexObject(
+        **method_call_object.kw)




More information about the Erp5-report mailing list