From 22ca41ccbc02340d9030fbfd5e38064b18dfccb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Fri, 13 Mar 2009 11:46:31 +0000
Subject: [PATCH] bug fixes in order module report: - DateTimeKey does not
 accept None, explitly use a DefaultKey for this - if no organisations are
 member of the selected group, then default_destination_section_uid=[] will be
 used, which is skipped by catalog, use default_destination_section_uid=-1 not
 to match any - if an order with no date was selected, then calling strftime
 failed

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@26019 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../OrderModule_getOrderReportSectionList.xml         |  5 ++++-
 .../erp5_trade/OrderModule_getOrderStatList.xml       | 11 +++++++----
 bt5/erp5_trade/bt/revision                            |  2 +-
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderReportSectionList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderReportSectionList.xml
index 9e3f3a855d..3ab45c44c2 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderReportSectionList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderReportSectionList.xml
@@ -69,13 +69,15 @@ selection_columns = [(\'group_by\', "Group by")]\n
 if from_date is None:\n
   # get the minimum start date in catalog\n
   from Products.ZSQLCatalog.SQLCatalog import Query, NegatedQuery\n
-  kw = {"delivery.start_date" : None}\n
+  kw = {"delivery.start_date" : None, "key":"DefaultKey"}\n
   q = NegatedQuery(Query(**kw))  \n
   select_expression = "MIN(delivery.start_date)"\n
   group_by = "delivery.start_date"\n
   from_date = DateTime(context.portal_catalog(select_expression=select_expression,\n
                                      group_by_expression=group_by,query=q,\n
                                      limit=1)[0][2])\n
+\n
+ \n
 # get period list between given date\n
 interval_list_dict = getIntervalListBetweenDates(from_date=from_date, to_date=to_date,\n
                                             keys={\'year\':aggregation_level=="year",\n
@@ -84,6 +86,7 @@ interval_list_dict = getIntervalListBetweenDates(from_date=from_date, to_date=to
                                                   \'day\':aggregation_level=="day"})\n
 interval_list = interval_list_dict[aggregation_level]\n
 \n
+# FIXME: translate column names\n
 # list columns of the listbox\n
 interval_column_list = []\n
 if group_by == "client":\n
diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderStatList.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderStatList.xml
index 323f552b06..e81f8e5e71 100644
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderStatList.xml
+++ b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/OrderModule_getOrderStatList.xml
@@ -79,10 +79,10 @@ if group not in (\'\', None):\n
   group_uid = category_tool.group.restrictedTraverse(group).getUid()\n
   organisation_uid_list = [x.uid for x in portal.portal_catalog(portal_type="Organisation", default_group_uid=group_uid)]\n
   if report_type == "sale":\n
-    catalog_params[\'default_source_section_uid\'] = organisation_uid_list\n
+    catalog_params[\'default_source_section_uid\'] = organisation_uid_list or -1\n
   elif report_type:\n
-    catalog_params[\'default_destination_section_uid\'] = organisation_uid_list\n
-    \n
+    catalog_params[\'default_destination_section_uid\'] = organisation_uid_list or -1\n
+\n
 # add category params if defined\n
 if incoterm not in (\'\', None):\n
   incoterm_uid = category_tool.incoterm.restrictedTraverse(incoterm).getUid()\n
@@ -117,6 +117,7 @@ elif to_date is not None:\n
   query = Query(range="ngt", **params)\n
 \n
 sort_on_list = [ (\'delivery.destination_section_uid\', \'ASC\'), (\'delivery.start_date\',\'ASC\')]\n
+\n
 result_list = context.portal_catalog.searchResults(limit=None,query=query,\n
                                                    portal_type=doc_portal_type,\n
                                                    simulation_state=simulation_state,\n
@@ -130,7 +131,9 @@ client_dict = {}\n
 product_dict = {}\n
 for result in result_list:\n
   result = result.getObject()\n
-  period = result.getStartDate().strftime(date_format)\n
+  period = result.getStartDate()\n
+  if period is not None:\n
+    period = period.strftime(date_format)\n
   if report_group_by in ("client", "both"):\n
     # client_title -> period -> amount\n
     if report_type == "sale":\n
diff --git a/bt5/erp5_trade/bt/revision b/bt5/erp5_trade/bt/revision
index 5aac26524c..a9ba1259cf 100644
--- a/bt5/erp5_trade/bt/revision
+++ b/bt5/erp5_trade/bt/revision
@@ -1 +1 @@
-606
\ No newline at end of file
+607
\ No newline at end of file
-- 
2.30.9