From ec466d3e0a3edc913e983c1a24b89bf75222f3af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Calonne?= <aurel@nexedi.com>
Date: Fri, 3 Jul 2009 12:27:20 +0000
Subject: [PATCH] - optmize the retrieval of checkbook - add a reference field
 so that user can filter checkbook in fast input

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@27906 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../CheckbookDelivery_fastInputForm.xml       |   7 +-
 .../your_reference.xml                        | 269 ++++++++++++++++++
 .../Delivery_getCheckbookList.xml             |  36 +--
 .../ListBox_listCheckbook.xml                 |  12 +-
 bt5/erp5_banking_check/bt/revision            |   2 +-
 5 files changed, 302 insertions(+), 24 deletions(-)
 create mode 100644 bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm/your_reference.xml

diff --git a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm.xml b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm.xml
index 9f760ebe1e..71eea20348 100644
--- a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm.xml
+++ b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm.xml
@@ -52,6 +52,10 @@
             <key> <string>action</string> </key>
             <value> <string>Delivery_saveCheckbookFastInputLine</string> </value>
         </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value> <string>None</string> </value>
+        </item>
         <item>
             <key> <string>encoding</string> </key>
             <value> <string>UTF-8</string> </value>
@@ -103,6 +107,7 @@
                     <value>
                       <list>
                         <string>your_fast_input_type</string>
+                        <string>your_reference</string>
                       </list>
                     </value>
                 </item>
@@ -149,7 +154,7 @@
         </item>
         <item>
             <key> <string>update_action</string> </key>
-            <value> <string></string> </value>
+            <value> <string>CheckbookDelivery_fastInputForm</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm/your_reference.xml b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm/your_reference.xml
new file mode 100644
index 0000000000..1835c2dc9b
--- /dev/null
+++ b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckbookDelivery_fastInputForm/your_reference.xml
@@ -0,0 +1,269 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <global name="StringField" module="Products.Formulator.StandardFields"/>
+        <tuple/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>your_reference</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>Too much input was given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <int>20</int> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Bank Account Reference</string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/Delivery_getCheckbookList.xml b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/Delivery_getCheckbookList.xml
index 62e7c69ae2..6db6dc890f 100644
--- a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/Delivery_getCheckbookList.xml
+++ b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/Delivery_getCheckbookList.xml
@@ -95,14 +95,16 @@ if listbox is None:\n
   listbox = []\n
   if node is not None or disable_node:\n
     getCurrentTrackingList = context.portal_simulation.getCurrentTrackingList\n
-    #context.log(\'Delivery_viewCheckbookInputDialog\', getCurrentTrackingList(at_date=at_date, node=node,src__=1,where_expression="item_catalog.portal_type=\'Check\' or item_catalog.portal_type=\'Checkbook\'"))\n
-    #return [x.path for x in  getCurrentTrackingList(at_date=at_date, node=node)]\n
+#     context.log(\'Delivery_viewCheckbookInputDialog\', getCurrentTrackingList(at_date=at_date, node=node,src__=1,where_expression="item_catalog.portal_type=\'Check\' or item_catalog.portal_type=\'Checkbook\'"))\n
     if disable_node:\n
       node=None\n
-    current_tracking_list = [x.getObject() for x in getCurrentTrackingList(\n
-                               to_date=at_date, node=node,\n
-                               where_expression="item_catalog.portal_type=\'Check\' or item_catalog.portal_type=\'Checkbook\'")]\n
+\n
+    current_tracking_list = getCurrentTrackingList(to_date=at_date,\n
+                                                   node=node,\n
+                                                   where_expression="item_catalog.portal_type=\'Check\' or item_catalog.portal_type=\'Checkbook\'")\n
+\n
     for item in current_tracking_list:\n
+      item = item.getObject()\n
       exclude=0\n
       if model_filter_dict is not None:\n
         resource = item.getResourceValue()\n
@@ -133,18 +135,18 @@ if listbox is None:\n
           item_dict[\'internal_bank_account_number\'] = \'\'\n
           destination_payment_value = item.getDestinationPaymentValue()\n
           if destination_payment_value is not None:\n
-            item_dict[\'internal_bank_account_number\'] = destination_payment_value.getInternalBankAccountNumber()\n
+            internal_bank_account_number = destination_payment_value.getInternalBankAccountNumber()\n
+            if reference is not None and reference != internal_bank_account_number:\n
+              continue\n
+            item_dict[\'internal_bank_account_number\'] = internal_bank_account_number\n
+            item_dict[\'account_owner\'] = item.getDestinationPaymentTitle()\n
+          item_dict[\'recept_date\'] = item.getStartDate()\n
           item_dict[\'selection\'] = 0\n
           item_dict[\'uid\'] = \'new_%s\' %(item.getUid(),)\n
 \n
           listbox.append(item_dict)\n
 \n
 return listbox\n
-#context.Base_updateDialogForm(listbox=listbox\n
-#                              )\n
-#return context.asContext(context=None\n
-#                         , portal_type=context.getPortalType()\n
-#                         ).CheckbookDelivery_fastInputForm(**kw)\n
 </string> </value>
         </item>
         <item>
@@ -167,7 +169,7 @@ return listbox\n
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>listbox=None, item_portal_type_list=None,destination_payment=None,model_filter_dict=None,batch_mode=0,simulation_state=None,disable_node=0,at_date=None,**kw</string> </value>
+            <value> <string>listbox=None, item_portal_type_list=None,destination_payment=None,model_filter_dict=None,batch_mode=0,simulation_state=None,disable_node=0,at_date=None,reference=None,**kw</string> </value>
         </item>
         <item>
             <key> <string>_proxy_roles</string> </key>
@@ -195,7 +197,7 @@ return listbox\n
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>8</int> </value>
+                        <value> <int>9</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
@@ -209,6 +211,7 @@ return listbox\n
                             <string>simulation_state</string>
                             <string>disable_node</string>
                             <string>at_date</string>
+                            <string>reference</string>
                             <string>kw</string>
                             <string>DateTime</string>
                             <string>Dummy</string>
@@ -220,11 +223,8 @@ return listbox\n
                             <string>context</string>
                             <string>item_list</string>
                             <string>getCurrentTrackingList</string>
-                            <string>append</string>
-                            <string>$append0</string>
-                            <string>_getiter_</string>
-                            <string>x</string>
                             <string>current_tracking_list</string>
+                            <string>_getiter_</string>
                             <string>item</string>
                             <string>exclude</string>
                             <string>resource</string>
@@ -234,6 +234,7 @@ return listbox\n
                             <string>item_dict</string>
                             <string>_write_</string>
                             <string>destination_payment_value</string>
+                            <string>internal_bank_account_number</string>
                           </tuple>
                         </value>
                     </item>
@@ -254,6 +255,7 @@ return listbox\n
                 <none/>
                 <int>0</int>
                 <none/>
+                <none/>
               </tuple>
             </value>
         </item>
diff --git a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/ListBox_listCheckbook.xml b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/ListBox_listCheckbook.xml
index 8c00a7f639..060d9f1ae6 100644
--- a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/ListBox_listCheckbook.xml
+++ b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/ListBox_listCheckbook.xml
@@ -86,8 +86,9 @@ fast_input_type = getattr(request, \'your_fast_input_type\', None)\n
 if fast_input_type is None:\n
   fast_input_type = getattr(request, \'field_your_fast_input_type\')\n
 \n
-context.log(\'ListBox_listCheckbook, fast_input_type\', fast_input_type)\n
-\n
+reference = getattr(request, \'your_reference\', None)\n
+if reference is None:\n
+  reference = getattr(request, \'field_your_reference\', None)\n
 \n
 disable_node = 0\n
 at_date = context.getStartDate()\n
@@ -111,8 +112,6 @@ elif fast_input_type == \'checkbook_usual_cash_transfer\':\n
   model_filter_dict[\'fixed_price\']=1\n
   item_portal_type_list = (\'Check\',)\n
 \n
-\n
-\n
 listbox = context.Delivery_getCheckbookList(\n
                     item_portal_type_list=item_portal_type_list,\n
                     destination_payment=destination_payment,\n
@@ -120,9 +119,11 @@ listbox = context.Delivery_getCheckbookList(\n
                     simulation_state=simulation_state,\n
                     disable_node=disable_node,\n
                     at_date=at_date,\n
-                    node=node)\n
+                    node=node,\n
+                    reference=reference)\n
 \n
 context.Base_updateDialogForm(listbox=listbox)\n
+\n
 return context.ListBox_initializeFastInput()\n
 </string> </value>
         </item>
@@ -190,6 +191,7 @@ return context.ListBox_initializeFastInput()\n
                             <string>model_filter_dict</string>
                             <string>getattr</string>
                             <string>fast_input_type</string>
+                            <string>reference</string>
                             <string>disable_node</string>
                             <string>at_date</string>
                             <string>_write_</string>
diff --git a/bt5/erp5_banking_check/bt/revision b/bt5/erp5_banking_check/bt/revision
index 26f5507e83..3cf63f91e6 100644
--- a/bt5/erp5_banking_check/bt/revision
+++ b/bt5/erp5_banking_check/bt/revision
@@ -1 +1 @@
-423
\ No newline at end of file
+425
\ No newline at end of file
-- 
2.30.9