[Erp5-report] r25171 - in /erp5/trunk/bt5/erp5_trade: SkinTemplateItem/portal_skins/erp5_tr...

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Jan 19 13:07:25 CET 2009


Author: jerome
Date: Mon Jan 19 13:07:19 2009
New Revision: 25171

URL: http://svn.erp5.org?rev=25171&view=rev
Log:
improve scripts to guess the best trade condition:
- applicable trade conditions are sorted to apply preferably trade conditions that define more properties
- categories are only taken into account if they are actually set on the trade condition

Modified:
    erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_applyPurchaseTradeCondition.xml
    erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_applySaleTradeCondition.xml
    erp5/trunk/bt5/erp5_trade/bt/revision

Modified: erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_applyPurchaseTradeCondition.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_applyPurchaseTradeCondition.xml?rev=25171&r1=25170&r2=25171&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_applyPurchaseTradeCondition.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_applyPurchaseTradeCondition.xml [utf8] Mon Jan 19 13:07:19 2009
@@ -65,10 +65,12 @@
 trade_condition_list = order.getSpecialiseValueList(\n
     portal_type=trade_condition_portal_type)\n
 \n
-tested_base_category_list = [\n
-  \'source_section\', \'destination_section\',\n
-  \'source\', \'destination\',\n
-]\n
+tested_base_category_list = [ ]\n
+for base_category in (\'destination_section\', \'destination\',\n
+                      \'source_section\', \'source\', ):\n
+  if context.getProperty(base_category):\n
+    tested_base_category_list.append(base_category)\n
+\n
 count = len(tested_base_category_list)\n
 \n
 # if no date is defined, use today\'s date to retrieve predicate that define start_date_range_min/max\n
@@ -77,27 +79,42 @@
 else:\n
   predicate_context = order\n
 \n
+def rank_method(trade_condition):\n
+  rank = 0\n
+  if trade_condition.getSourceSection():\n
+    rank += 10\n
+  if trade_condition.getSource():\n
+    rank += 10\n
+  if trade_condition.getDestinationSection():\n
+    rank += 1\n
+  if trade_condition.getDestination():\n
+    rank += 1\n
+  rank += len(trade_condition.getSpecialiseList())\n
+  return rank\n
+\n
+def sort_method(a, b):\n
+  return -cmp(rank_method(a), rank_method(b))\n
+\n
 while count > 0 and len(trade_condition_list) == 0:\n
   trade_condition_list = context.portal_domains.searchPredicateList(\n
       predicate_context, portal_type=trade_condition_portal_type,\n
-      tested_base_category_list=tested_base_category_list[:count])\n
+      tested_base_category_list=tested_base_category_list[:count],\n
+      sort_method=sort_method)\n
   count -= 1\n
 \n
 if len(trade_condition_list ) == 0 :\n
-  redirect_url = \'%s/%s?%s\' % ( context.absolute_url(), form_id,\n
-      \'portal_status_message=\' + Base_translateString(\'No trade condition.\'))\n
+  message = Base_translateString(\'No trade condition.\')\n
 else :\n
   # if more than one trade condition is found, simply apply the first one\n
   trade_condition=trade_condition_list[0].getObject()\n
 \n
   order.Order_applyTradeCondition(trade_condition, force=force)\n
 \n
-  redirect_url = \'%s/%s?%s\' % (context.absolute_url(), form_id,\n
-      \'portal_status_message=\' + Base_translateString(\'Order updated.\'))\n
-\n
-if batch_mode:\n
-  return\n
-context.REQUEST[ \'RESPONSE\' ].redirect( redirect_url.replace(\' \', \'+\') )\n
+  message = Base_translateString(\'Order updated.\')\n
+\n
+if not batch_mode:\n
+  return context.Base_redirect(form_id,\n
+           keep_items=dict(portal_status_message=message))\n
 
 
 ]]></string> </value>
@@ -110,7 +127,7 @@
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>form_id, batch_mode=0, force=1</string> </value>
+            <value> <string>form_id=\'view\', batch_mode=0, force=1</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -146,15 +163,20 @@
                             <string>trade_condition_portal_type</string>
                             <string>trade_condition_list</string>
                             <string>tested_base_category_list</string>
+                            <string>_getiter_</string>
+                            <string>base_category</string>
                             <string>len</string>
                             <string>count</string>
                             <string>None</string>
                             <string>DateTime</string>
                             <string>predicate_context</string>
+                            <string>rank_method</string>
+                            <string>sort_method</string>
                             <string>_getitem_</string>
                             <string>_inplacevar_</string>
-                            <string>redirect_url</string>
+                            <string>message</string>
                             <string>trade_condition</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
@@ -167,6 +189,7 @@
             <key> <string>func_defaults</string> </key>
             <value>
               <tuple>
+                <string>view</string>
                 <int>0</int>
                 <int>1</int>
               </tuple>

Modified: erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_applySaleTradeCondition.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_applySaleTradeCondition.xml?rev=25171&r1=25170&r2=25171&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_applySaleTradeCondition.xml [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/SaleOrder_applySaleTradeCondition.xml [utf8] Mon Jan 19 13:07:19 2009
@@ -65,10 +65,12 @@
 trade_condition_list = order.getSpecialiseValueList(\n
     portal_type=trade_condition_portal_type)\n
 \n
-tested_base_category_list = [\n
-  \'destination_section\', \'source_section\',\n
-  \'destination\', \'source\',\n
-]\n
+tested_base_category_list = [ ]\n
+for base_category in (\'source_section\', \'source\',\n
+                      \'destination_section\', \'destination\', ):\n
+  if context.getProperty(base_category):\n
+    tested_base_category_list.append(base_category)\n
+\n
 count = len(tested_base_category_list)\n
 \n
 # if no date is defined, use today\'s date to retrieve predicate that define start_date_range_min/max\n
@@ -77,15 +79,31 @@
 else:\n
   predicate_context = order\n
 \n
+def rank_method(trade_condition):\n
+  rank = 0\n
+  if trade_condition.getDestinationSection():\n
+    rank += 10\n
+  if trade_condition.getDestination():\n
+    rank += 10\n
+  if trade_condition.getSourceSection():\n
+    rank += 1\n
+  if trade_condition.getSource():\n
+    rank += 1\n
+  rank += len(trade_condition.getSpecialiseList())\n
+  return rank\n
+\n
+def sort_method(a, b):\n
+  return -cmp(rank_method(a), rank_method(b))\n
+\n
 while count > 0 and len(trade_condition_list) == 0:\n
   trade_condition_list = context.portal_domains.searchPredicateList(\n
       predicate_context, portal_type=trade_condition_portal_type,\n
-      tested_base_category_list=tested_base_category_list[:count])\n
+      tested_base_category_list=tested_base_category_list[:count],\n
+      sort_method=sort_method)\n
   count -= 1\n
 \n
-if len(trade_condition_list ) == 0 :\n
-  redirect_url = \'%s/%s?%s\' % ( context.absolute_url(), form_id,\n
-      \'portal_status_message=\' + Base_translateString(\'No trade condition.\'))\n
+if len(trade_condition_list ) == 0:\n
+  message = Base_translateString(\'No trade condition.\')\n
 else :\n
   # if more than one trade condition is found, simply apply the first one\n
   trade_condition=trade_condition_list[0].getObject()\n
@@ -95,12 +113,11 @@
   if hasattr(order, \'getReceivedDate\') and order.getReceivedDate() is None:\n
     context.setReceivedDate(DateTime())\n
 \n
-  redirect_url = \'%s/%s?%s\' % (context.absolute_url(), form_id,\n
-      \'portal_status_message=\' + Base_translateString(\'Order updated.\'))\n
-\n
-if batch_mode:\n
-  return\n
-context.REQUEST[ \'RESPONSE\' ].redirect( redirect_url.replace(\' \', \'+\') )\n
+  message = Base_translateString(\'Order updated.\')\n
+\n
+if not batch_mode:\n
+  return context.Base_redirect(form_id,\n
+          keep_items=dict(portal_status_message=message))\n
 
 
 ]]></string> </value>
@@ -113,7 +130,7 @@
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>form_id, batch_mode=0, force=1</string> </value>
+            <value> <string>form_id=\'view\', batch_mode=0, force=1</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -149,16 +166,21 @@
                             <string>trade_condition_portal_type</string>
                             <string>trade_condition_list</string>
                             <string>tested_base_category_list</string>
+                            <string>_getiter_</string>
+                            <string>base_category</string>
                             <string>len</string>
                             <string>count</string>
                             <string>None</string>
                             <string>DateTime</string>
                             <string>predicate_context</string>
+                            <string>rank_method</string>
+                            <string>sort_method</string>
                             <string>_getitem_</string>
                             <string>_inplacevar_</string>
-                            <string>redirect_url</string>
+                            <string>message</string>
                             <string>trade_condition</string>
                             <string>hasattr</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
@@ -171,6 +193,7 @@
             <key> <string>func_defaults</string> </key>
             <value>
               <tuple>
+                <string>view</string>
                 <int>0</int>
                 <int>1</int>
               </tuple>

Modified: erp5/trunk/bt5/erp5_trade/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/bt/revision?rev=25171&r1=25170&r2=25171&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/bt/revision [utf8] (original)
+++ erp5/trunk/bt5/erp5_trade/bt/revision [utf8] Mon Jan 19 13:07:19 2009
@@ -1,1 +1,1 @@
-564
+566




More information about the Erp5-report mailing list