From d460f60433f1b36cd5650b88ba3d92580ac36037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Wed, 8 Jul 2009 11:35:40 +0000 Subject: [PATCH] add reports for budget consumption git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@28019 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../budget_group_consumption_export.xml | 99 ++++ .../budget_group_consumption_report.xml | 77 +++ .../budget_group_consumption_export.xml | 99 ++++ .../budget_group_consumption_report.xml | 81 +++ ...dule_viewBudgetConsumptionReportDialog.xml | 156 ++++++ .../your_at_date.xml | 87 ++++ .../your_format.xml | 132 +++++ .../your_from_date.xml | 87 ++++ .../your_section_category.xml | 137 +++++ .../your_validation_state.xml | 313 ++++++++++++ .../Budget_getBudgetConsumptionReportData.xml | 354 +++++++++++++ .../Budget_viewBudgetConsumptionReport.xml | 483 ++++++++++++++++++ ...dget_viewBudgetConsumptionReportDialog.xml | 151 ++++++ .../your_format.xml | 132 +++++ ...et_viewBudgetConsumptionReportTemplate.xml | 298 +++++++++++ bt5/erp5_budget/bt/revision | 2 +- bt5/erp5_budget/bt/template_action_path_list | 4 + bt5/erp5_budget/bt/template_local_role_list | 0 .../bt/template_portal_type_role_list | 0 19 files changed, 2691 insertions(+), 1 deletion(-) create mode 100644 bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml create mode 100644 bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml create mode 100644 bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml create mode 100644 bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml create mode 100644 bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml create mode 100644 bt5/erp5_budget/bt/template_local_role_list create mode 100644 bt5/erp5_budget/bt/template_portal_type_role_list diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml new file mode 100644 index 0000000000..a3da4b48e2 --- /dev/null +++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_export.xml @@ -0,0 +1,99 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_exchange</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>budget_group_consumption_export</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>2.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +string:${object_url}/BudgetModule_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format= + +]]></string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>python: getattr(portal.portal_skins, \'erp5_ods_style\', None) is not None</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml new file mode 100644 index 0000000000..375c551953 --- /dev/null +++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget%20Module/budget_group_consumption_report.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_report</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>budget_group_consumption_report</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>2.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/BudgetModule_viewBudgetConsumptionReportDialog?your_portal_skin=ODS</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml new file mode 100644 index 0000000000..b0a6416dea --- /dev/null +++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_export.xml @@ -0,0 +1,99 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_exchange</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>budget_group_consumption_export</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>31.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +string:${object_url}/Budget_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format= + +]]></string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>python: getattr(portal.portal_skins, \'erp5_ods_style\', None) is not None</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml new file mode 100644 index 0000000000..a59959b4cd --- /dev/null +++ b/bt5/erp5_budget/ActionTemplateItem/portal_types/Budget/budget_group_consumption_report.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_report</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>budget_group_consumption_report</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>31.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="Expression" module="Products.CMFCore.Expression"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +string:${object_url}/Budget_viewBudgetConsumptionReportDialog?your_portal_skin=ODS&your_format=calc.pdf + +]]></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml new file mode 100644 index 0000000000..89e1c44bf9 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog.xml @@ -0,0 +1,156 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Budget_viewBudgetConsumptionReport</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>your_section_category</string> + <string>your_from_date</string> + <string>your_at_date</string> + <string>your_format</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>your_validation_state</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>BudgetModule_viewBudgetConsumptionReportDialog</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>BudgetModule_viewBudgetConsumptionReportDialog</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_dialog</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml new file mode 100644 index 0000000000..6d2d91f617 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_at_date.xml @@ -0,0 +1,87 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_at_date</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_at_date</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml new file mode 100644 index 0000000000..be5e86c886 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_format.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>default</string> + <string>items</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_format</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_format</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: context.Base_getConversionFormatItemList(base_content_type=\'application/vnd.oasis.opendocument.spreadsheet\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml new file mode 100644 index 0000000000..9076e2f5a4 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_from_date.xml @@ -0,0 +1,87 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_from_date</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_from_date</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml new file mode 100644 index 0000000000..42ae5f8972 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_section_category.xml @@ -0,0 +1,137 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_section_category</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_section_category</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>preferences/getPreferredAccountingTransactionSectionCategory</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:here.portal_categories.group.getCategoryChildIndentedTitleItemList(base=1)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml new file mode 100644 index 0000000000..15a6e05a32 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/BudgetModule_viewBudgetConsumptionReportDialog/your_validation_state.xml @@ -0,0 +1,313 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="MultiListField" module="Products.Formulator.StandardFields"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_validation_state</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>unknown_selection</string> </key> + <value> <string>You selected an item that was not in the list.</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>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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>view_separator</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> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>view_separator</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> + <list/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Only consider budgets in those states.</string> </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>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>5</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Validation State</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>view_separator</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<br /> + +]]></string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:(\'validated\', )</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:here.Base_getTranslatedWorkflowStateItemList(wf_id=\'budget_workflow\')</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: len(field.get_value(\'items\'))</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml new file mode 100644 index 0000000000..61863c363a --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_getBudgetConsumptionReportData.xml @@ -0,0 +1,354 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +from pprint import pformat\n +portal = context.getPortalObject()\n +request= portal.REQUEST\n +\n +# this report can be called on a budget ...\n +if context.getPortalType() == \'Budget\':\n + defined_group = \'group\'\n + if \'group\' in context.getVariationBaseCategoryList():\n + for category in context.getVariationCategoryList():\n + if category.startswith(\'group/\'):\n + defined_group = category\n + budget_list = (context,)\n +else:\n + # ... or on the budget module, and in this case, all budgets are used\n + defined_group = request[\'section_category\']\n + from_date = request.get(\'from_date\')\n + at_date = request.get(\'at_date\')\n + validation_state = request.get(\'validation_state\', [])\n + \n + budget_list = portal.portal_catalog.searchResults(\n + portal_type=\'Budget\',\n + validation_state=validation_state)\n + if from_date or at_date:\n + new_budget_list = []\n + for budget in budget_list:\n + if from_date and budget.getStartDateRangeMax() < from_date:\n + continue\n + if at_date and budget.getStartDateRangeMin() > at_date:\n + continue\n + new_budget_list.append(budget)\n + budget_list = new_budget_list\n +\n +line_list = []\n +\n +def isVisibleCell(cell):\n + # can this cell be viewed by this user ?\n + for category in cell.getMembershipCriterionCategoryList():\n + if category.startswith(\'group/\'):\n + if not category.startswith(defined_group):\n + return False\n + return True\n +\n +\n +for budget in budget_list:\n + for budget_line in budget.contentValues():\n + total_level_1_initial_budget = 0\n + total_level_1_current_budget = 0\n + total_level_1_engaged_budget = 0\n + total_level_1_consumed_budget = 0\n + total_level_1_available_budget = 0\n + \n + level_1_line_list = [dict(is_level_1=1,\n + title=budget_line.getTitle().decode(\'utf8\'))]\n +\n + variation_axis_list = []\n + for possible_axis in budget_line.getVariationBaseCategoryList():\n + for cell_range in budget_line.getCellRange():\n + if cell_range and cell_range[0].startswith(possible_axis):\n + variation_axis_list.append(possible_axis)\n + break\n + \n + if len(variation_axis_list) == 1:\n + # if there\'s only one dimension, we add a virtual level 2, to keep the\n + # same structure\n + level_2_variation_category_list = [budget_line.getResource(base=1)]\n + level_3_variation_category_list = [x for x in\n + budget_line.getVariationCategoryList() if\n + x.startswith(variation_axis_list[0])]\n + else:\n + level_2_variation_category_list = [x for x in\n + budget_line.getVariationCategoryList() if\n + x.startswith(variation_axis_list[0])]\n + level_3_variation_category_list = [x for x in\n + budget_line.getVariationCategoryList() if\n + x.startswith(variation_axis_list[1])]\n +\n + # we use BudgetLine_asCellRange to get cell names, and have a default value\n + # for "virtual level 2"\n + cell_name_dict = {budget_line.getResource(base=1):\n + budget_line.getTitle().encode(\'utf8\')}\n + for cell_range_list in budget_line.BudgetLine_asCellRange(matrixbox=1):\n + for category, title in cell_range_list:\n + cell_name_dict[category] = title.decode(\'utf8\')\n +\n + for level_2_category in level_2_variation_category_list:\n +\n + total_level_2_initial_budget = 0\n + total_level_2_current_budget = 0\n + total_level_2_engaged_budget = 0\n + total_level_2_consumed_budget = 0\n + total_level_2_available_budget = 0\n + level_2_line_list = [dict(is_level_2=1,\n + title=cell_name_dict[level_2_category])]\n + \n + for level_3_category in level_3_variation_category_list:\n + for cell in budget_line.getCellValueList():\n + if not isVisibleCell(cell):\n + continue\n + if level_2_category in cell.getMembershipCriterionCategoryList() and\\\n + level_3_category in cell.getMembershipCriterionCategoryList():\n +\n + initial_budget = cell.getQuantity()\n + current_budget = cell.getCurrentBalance()\n + engaged_budget = cell.getEngagedBudget()\n + consumed_budget = cell.getConsumedBudget()\n + available_budget = cell.getAvailableBudget()\n + \n + total_level_2_initial_budget += initial_budget\n + total_level_2_current_budget += current_budget\n + total_level_2_engaged_budget += engaged_budget\n + total_level_2_consumed_budget += consumed_budget\n + total_level_2_available_budget += available_budget\n +\n + consumed_ratio = 0\n + if current_budget:\n + consumed_ratio = consumed_budget / current_budget\n + level_2_line_list.append(dict(is_level_3=1,\n + title=cell_name_dict[level_3_category],\n + initial_budget=initial_budget,\n + current_budget=current_budget,\n + engaged_budget=engaged_budget,\n + consumed_budget=consumed_budget,\n + available_budget=available_budget,\n + consumed_ratio=consumed_ratio))\n +\n + if len(level_2_line_list) > 1:\n + consumed_ratio = 0\n + if total_level_2_current_budget:\n + consumed_ratio = total_level_2_consumed_budget / total_level_2_current_budget\n + level_1_line_list.extend(level_2_line_list)\n + level_1_line_list.append(dict(is_total_level_2=1,\n + title=cell_name_dict[level_2_category],\n + initial_budget=total_level_2_initial_budget,\n + current_budget=total_level_2_current_budget,\n + engaged_budget=total_level_2_engaged_budget,\n + consumed_budget=total_level_2_consumed_budget,\n + available_budget=total_level_2_available_budget,\n + consumed_ratio=consumed_ratio))\n +\n + total_level_1_initial_budget += total_level_2_initial_budget\n + total_level_1_current_budget += total_level_2_current_budget\n + total_level_1_engaged_budget += total_level_2_engaged_budget\n + total_level_1_consumed_budget += total_level_2_consumed_budget\n + total_level_1_available_budget += total_level_2_available_budget\n +\n + if len(level_1_line_list) > 1:\n + consumed_ratio = 0\n + if total_level_1_current_budget:\n + consumed_ratio = total_level_1_consumed_budget / total_level_1_current_budget\n + line_list.extend(level_1_line_list)\n + line_list.append(dict(is_total_level_1=1,\n + title=budget_line.getTitle().decode(\'utf8\'),\n + initial_budget=total_level_1_initial_budget,\n + current_budget=total_level_1_current_budget,\n + engaged_budget=total_level_1_engaged_budget,\n + consumed_budget=total_level_1_consumed_budget,\n + available_budget=total_level_1_available_budget,\n + consumed_ratio=consumed_ratio))\n +\n + \n + \n +if line_list:\n + line_list[-1][\'is_last_line\'] = 1\n +\n +return line_list\n +\n +from pprint import pformat\n +return pformat(line_list)\n + + +]]></string> </value> + </item> + <item> + <key> <string>_code</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>errors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>func_code</string> </key> + <value> + <object> + <klass> + <global name="FuncCode" module="Shared.DC.Scripts.Signature"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>co_argcount</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>co_varnames</string> </key> + <value> + <tuple> + <string>pprint</string> + <string>pformat</string> + <string>_getattr_</string> + <string>context</string> + <string>portal</string> + <string>request</string> + <string>defined_group</string> + <string>_getiter_</string> + <string>category</string> + <string>budget_list</string> + <string>_getitem_</string> + <string>from_date</string> + <string>at_date</string> + <string>validation_state</string> + <string>new_budget_list</string> + <string>budget</string> + <string>line_list</string> + <string>isVisibleCell</string> + <string>budget_line</string> + <string>total_level_1_initial_budget</string> + <string>total_level_1_current_budget</string> + <string>total_level_1_engaged_budget</string> + <string>total_level_1_consumed_budget</string> + <string>total_level_1_available_budget</string> + <string>dict</string> + <string>level_1_line_list</string> + <string>variation_axis_list</string> + <string>possible_axis</string> + <string>cell_range</string> + <string>len</string> + <string>level_2_variation_category_list</string> + <string>append</string> + <string>$append0</string> + <string>x</string> + <string>level_3_variation_category_list</string> + <string>cell_name_dict</string> + <string>cell_range_list</string> + <string>title</string> + <string>_write_</string> + <string>level_2_category</string> + <string>total_level_2_initial_budget</string> + <string>total_level_2_current_budget</string> + <string>total_level_2_engaged_budget</string> + <string>total_level_2_consumed_budget</string> + <string>total_level_2_available_budget</string> + <string>level_2_line_list</string> + <string>level_3_category</string> + <string>cell</string> + <string>initial_budget</string> + <string>current_budget</string> + <string>engaged_budget</string> + <string>consumed_budget</string> + <string>available_budget</string> + <string>_inplacevar_</string> + <string>consumed_ratio</string> + </tuple> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>func_defaults</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Budget_getBudgetConsumptionReportData</string> </value> + </item> + <item> + <key> <string>warnings</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml new file mode 100644 index 0000000000..ab9bc2fc46 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReport.xml @@ -0,0 +1,483 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="OOoTemplate" module="Products.ERP5OOo.OOoTemplate"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>OLE_documents_zipstring</string> </key> + <value> <string encoding="base64">UEsDBBQAAAAIALt0ajpE1YD/SgEAAGgHAAAVAAAATUVUQS1JTkYvbWFuaWZlc3QueG1stZVNbsIw +EIX3nCLyPnHLqooIlVqpJ6AHGJxJsOQ/ecYIbt8EFUhbFgXFO9saf++N7RmvXg/WFHuMpL1rxHP1 +JAp0yrfa9Y343HyUL+J1vVhZcLpD4vo8KIZ9ji7TRqToag+kqXZgkWpWtQ/oWq+SRcf1z/h6VFov +iiu40wbLITAei6sYthpKPgZsBIRgtAIefMq9a6uTVjWVqChEhJZ2iCyukElyy8lyl4wpA/CuEVLI +u6wwHlgO+dymKe94dDMGzMklPhqk2bEWGR6A3oZtdsluHWhDks/DKrh+bvgsvHfvOt2neHpTtJSg +FBocpj5KlWJ87BLv18oiEKLvIxJtIZNAZzww5nLvQwpDTac8+JGc7WDYe5MNri30SPJNs4WQqQ6+ +NbKwiYHTI4/yd/un5MbirJKu1FTjfzbmbczIPHyXl9a8kn9+y/UXUEsBAhQAFAAAAAgAu3RqOkTV +gP9KAQAAaAcAABUAAAAAAAAAAAAAAAAAAAAAAE1FVEEtSU5GL21hbmlmZXN0LnhtbFBLBQYAAAAA +AQABAEMAAAB9AQAAAAA=</string> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +<?xml version=\'1.0\' encoding=\'utf-8\'?>\n +<office:document-content xmlns:rpt="http://openoffice.org/2005/report"\n + xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"\n + xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"\n + xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"\n + xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"\n + xmlns:tal="http://xml.zope.org/namespaces/tal"\n + xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"\n + xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"\n + xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"\n + xmlns:xlink="http://www.w3.org/1999/xlink"\n + xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0"\n + xmlns:rdfa="http://docs.oasis-open.org/opendocument/meta/rdfa#"\n + xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"\n + xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"\n + xmlns:math="http://www.w3.org/1998/Math/MathML"\n + xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"\n + xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"\n + xmlns:ooo="http://openoffice.org/2004/office"\n + xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"\n + xmlns:dc="http://purl.org/dc/elements/1.1/"\n + xmlns:i18n="http://xml.zope.org/namespaces/i18n"\n + xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"\n + xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"\n + xmlns:xforms="http://www.w3.org/2002/xforms"\n + xmlns:dom="http://www.w3.org/2001/xml-events" \n + xmlns:ooow="http://openoffice.org/2004/writer"\n + xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"\n + xmlns:metal="http://xml.zope.org/namespaces/metal"\n + xmlns:xsd="http://www.w3.org/2001/XMLSchema"\n + xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"\n + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n + xmlns:oooc="http://openoffice.org/2004/calc"\n + i18n:domain=\'ui\'\n + office:version="1.2"\n + tal:attributes="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')"\n + tal:define="line_list here/Budget_getBudgetConsumptionReportData;\n + date_renderer nocall:here/Base_viewFieldLibrary/my_date/render_pdf;\n + start_date python:date_renderer(request.get(\'from_date\', here.getProperty(\'start_date_range_min\')));\n + stop_date python:date_renderer(request.get(\'at_date\', here.getProperty(\'start_date_range_max\')));\n + ">\n + <office:scripts/>\n + <office:font-face-decls>\n + <style:font-face style:name="DejaVu Sans" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>\n + <style:font-face style:name="Liberation Sans" svg:font-family="\'Liberation Sans\'" style:font-family-generic="swiss" style:font-pitch="variable"/>\n + <style:font-face style:name="DejaVu Sans1" svg:font-family="\'DejaVu Sans\'" style:font-family-generic="system" style:font-pitch="variable"/>\n + <style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>\n + </office:font-face-decls>\n + <office:automatic-styles>\n + <style:style style:name="co1" style:family="table-column">\n + <style:table-column-properties fo:break-before="auto" style:column-width="0.676cm"/>\n + </style:style>\n + <style:style style:name="co2" style:family="table-column">\n + <style:table-column-properties fo:break-before="auto" style:column-width="10cm"/>\n + </style:style>\n + <style:style style:name="co3" style:family="table-column">\n + <style:table-column-properties fo:break-before="auto" style:column-width="2.7cm"/>\n + </style:style>\n + <style:style style:name="co4" style:family="table-column">\n + <style:table-column-properties fo:break-before="auto" style:column-width="2.267cm"/>\n + </style:style>\n + <style:style style:name="ro1" style:family="table-row">\n + <style:table-row-properties style:row-height="0.621cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n + </style:style>\n + <style:style style:name="ro2" style:family="table-row">\n + <style:table-row-properties style:row-height="0.452cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n + </style:style>\n + <style:style style:name="ro3" style:family="table-row">\n + <style:table-row-properties style:row-height="0.921cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n + </style:style>\n + <style:style style:name="ro4" style:family="table-row">\n + <style:table-row-properties style:row-height="0.526cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n + </style:style>\n + <style:style style:name="ro5" style:family="table-row">\n + <style:table-row-properties style:row-height="0.499cm" fo:break-before="auto" style:use-optimal-row-height="true"/>\n + </style:style>\n + <style:style style:name="ta1" style:family="table" style:master-page-name="Default">\n + <style:table-properties table:display="true" style:writing-mode="lr-tb"/>\n + </style:style>\n + <number:number-style style:name="N3">\n + <number:number number:decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>\n + </number:number-style>\n + <number:percentage-style style:name="N11">\n + <number:number number:decimal-places="2" number:min-integer-digits="1"/>\n + <number:text>%</number:text>\n + </number:percentage-style>\n + <style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/>\n + <style:paragraph-properties fo:text-align="center"/>\n + <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>\n + </style:style>\n + <style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default">\n + <style:text-properties fo:font-size="9pt"/>\n + </style:style>\n + <style:style style:name="ce3" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000" style:vertical-align="middle"/>\n + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="none"/>\n + <style:text-properties fo:font-size="11pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="11pt" style:font-size-complex="11pt"/>\n + </style:style>\n + <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n + </style:style>\n + <style:style style:name="ce6" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="ce7" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="0.002cm solid #000000" fo:border-right="none" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce8" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000"/>\n + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce10" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n + </style:style>\n + <style:style style:name="ce11" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n + </style:style>\n + <style:style style:name="ce12" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="ce13" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border-bottom="0.002cm solid #000000" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border-left="none" fo:border-right="0.002cm solid #000000" fo:border-top="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default">\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce16" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + </style:style>\n + <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n + </style:style>\n + <style:style style:name="ce18" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N3">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="ce19" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap" fo:border="0.002cm solid #000000" style:vertical-align="top"/>\n + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce20" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + </style:style>\n + <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>\n + </style:style>\n + <style:style style:name="ce23" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-style="italic" fo:font-weight="normal" style:font-style-asian="italic" style:font-weight-asian="normal" style:font-style-complex="italic" style:font-weight-complex="normal"/>\n + </style:style>\n + <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11">\n + <style:table-cell-properties fo:border="0.002cm solid #000000"/>\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default">\n + <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" fo:wrap-option="wrap"/>\n + <style:paragraph-properties fo:text-align="center" fo:margin-left="0cm"/>\n + <style:text-properties fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default">\n + <style:text-properties fo:font-style="italic" fo:font-weight="bold"/>\n + </style:style>\n + <style:style style:name="ce27" style:family="table-cell" style:parent-style-name="Default">\n + <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>\n + </style:style>\n + </office:automatic-styles>\n + <office:body>\n + <office:spreadsheet>\n + <table:table table:name="Feuille1" table:style-name="ta1" table:print-ranges="Feuille1.A1:Feuille1.H11"\n + tal:attributes="table:print-ranges python:\'Feuille1.A1:Feuille1.H%d\' % (7 + len(line_list))">\n +\n + <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>\n + <table:table-column table:style-name="co1" table:default-cell-style-name="ce2"/>\n + <table:table-column table:style-name="co2" table:default-cell-style-name="Default"/>\n + <table:table-column table:style-name="co3" table:number-columns-repeated="6" table:default-cell-style-name="Default"/>\n + <table:table-column table:style-name="co4" table:number-columns-repeated="1016" table:default-cell-style-name="Default"/>\n + <table:table-row table:style-name="ro1">\n + <table:table-cell table:style-name="ce1" office:value-type="string" table:number-columns-spanned="8" table:number-rows-spanned="1">\n + <text:p i18n:translate="">Budget Situation</text:p>\n + </table:table-cell>\n + <table:covered-table-cell/>\n + <table:covered-table-cell table:style-name="ce14"/>\n + <table:covered-table-cell table:number-columns-repeated="5"/>\n + <table:table-cell table:number-columns-repeated="1016"/>\n + </table:table-row>\n + <table:table-row table:style-name="ro2">\n + <table:table-cell table:style-name="Default"/>\n + <table:table-cell table:number-columns-repeated="1023"/>\n + </table:table-row>\n + <table:table-row table:style-name="ro2">\n +\n + <table:table-cell office:value-type="string"\n + tal:condition="python: start_date and stop_date">\n + <text:p i18n:translate="">From <tal:block tal:replace="start_date" i18n:name="start_date"/> to <tal:block tal:replace="stop_date" i18n:name="stop_date"/></text:p>\n + </table:table-cell>\n + <table:table-cell office:value-type="string"\n + tal:condition="not: python: start_date and stop_date">\n + <text:p/>\n + </table:table-cell>\n +\n + <table:table-cell table:number-columns-repeated="1023"/>\n + </table:table-row>\n + <table:table-row table:style-name="ro2">\n + <table:table-cell table:number-columns-repeated="1024"/>\n + </table:table-row>\n + <table:table-row table:style-name="ro3">\n + <table:table-cell table:style-name="ce3" office:value-type="string" table:number-columns-spanned="2" table:number-rows-spanned="1">\n + <text:p i18n:translate="">Budget Name</text:p>\n + </table:table-cell>\n + <table:covered-table-cell table:style-name="ce8"/>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Initial Budget</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Current Budget</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Engaged Budget</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Consumed Budget</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Available Budget</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce8" office:value-type="string">\n + <text:p i18n:translate="">Percentage realized</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce25" table:number-columns-repeated="248"/>\n + <table:table-cell table:number-columns-repeated="768"/>\n + </table:table-row>\n +\n + <tal:block tal:repeat="line line_list">\n +\n + <table:table-row table:style-name="ro4" tal:condition="line/is_level_1 | nothing">\n + <table:table-cell table:style-name="ce4" office:value-type="string">\n + <text:p tal:content="line/title">$level1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce9"/>\n + <table:table-cell table:style-name="ce15" table:number-columns-repeated="5"/>\n + <table:table-cell table:style-name="ce20"/>\n + <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n + <table:table-cell table:number-columns-repeated="768"/>\n + </table:table-row>\n +\n + <table:table-row table:style-name="ro5" tal:condition="line/is_level_2 | nothing">\n + <table:table-cell table:style-name="ce5"/>\n + <table:table-cell table:style-name="ce10" office:value-type="string">\n + <text:p tal:content="line/title">$level 2</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" table:number-columns-repeated="5"/>\n + <table:table-cell table:style-name="ce20"/>\n + <table:table-cell table:number-columns-repeated="1016"/>\n + </table:table-row>\n +\n + <table:table-row table:style-name="ro5" tal:condition="line/is_level_3 | nothing">\n + <table:table-cell table:style-name="ce5"/>\n + <table:table-cell table:style-name="ce11" office:value-type="string">\n + <text:p><text:s text:c="3"/><tal:block tal:replace="line/title"/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="1" tal:attributes="office:value line/initial_budget">\n + <text:p>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n + <text:p>2</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n + <text:p>3</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n + <text:p>4</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce17" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n + <text:p>5</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce22" office:value-type="percentage" office:value="0.06" tal:attributes="office:value line/consumed_ratio">\n + <text:p>6,00%</text:p>\n + </table:table-cell>\n + <table:table-cell table:number-columns-repeated="1016"/>\n + </table:table-row>\n +\n + <table:table-row table:style-name="ro5" tal:condition="line/is_total_level_2 | nothing">\n + <table:table-cell table:style-name="ce6"/>\n + <table:table-cell table:style-name="ce12" office:value-type="string">\n + <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="1" tal:attributes="office:value line/initial_budget">\n + <text:p>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n + <text:p>2</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n + <text:p>3</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n + <text:p>4</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce18" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n + <text:p>5</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce23" office:value-type="percentage" office:value="0.06" tal:attributes="office:value line/consumed_ratio">\n + <text:p>6,00%</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce27" table:number-columns-repeated="1016"/>\n + </table:table-row>\n +\n +\n + <table:table-row table:style-name="ro5" tal:condition="python: line.get(\'is_total_level_1\') and not line.get(\'is_last_line\')">\n + <table:table-cell table:style-name="ce7"/>\n + <table:table-cell table:style-name="ce13" office:value-type="string">\n + <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="1" tal:attributes="office:value line/initial_budget">\n + <text:p>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n + <text:p>2</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n + <text:p>3</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n + <text:p>4</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n + <text:p>5</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce24" office:value-type="percentage" office:value="0.06" tal:attributes="office:value line/consumed_ratio">\n + <text:p>6,00%</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n + <table:table-cell table:number-columns-repeated="768"/>\n + </table:table-row>\n +\n +\n + <table:table-row table:style-name="ro4" tal:condition="line/is_last_line | nothing">\n + <table:table-cell table:style-name="ce7"/>\n + <table:table-cell table:style-name="ce13" office:value-type="string">\n + <text:p>TOTAL <tal:block tal:replace="line/title"/></text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="1" tal:attributes="office:value line/initial_budget">\n + <text:p>1</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="2" tal:attributes="office:value line/current_budget">\n + <text:p>2</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="3" tal:attributes="office:value line/engaged_budget">\n + <text:p>3</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="4" tal:attributes="office:value line/consumed_budget">\n + <text:p>4</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce15" office:value-type="float" office:value="5" tal:attributes="office:value line/available_budget">\n + <text:p>5</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce24" office:value-type="percentage" office:value="0.06" tal:attributes="office:value line/consumed_ratio">\n + <text:p>6,00%</text:p>\n + </table:table-cell>\n + <table:table-cell table:style-name="ce26" table:number-columns-repeated="248"/>\n + <table:table-cell table:number-columns-repeated="768"/>\n + </table:table-row>\n +\n + </tal:block>\n + </table:table>\n + </office:spreadsheet>\n + </office:body>\n +</office:document-content>\n + + +]]></string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Budget_viewBudgetConsumptionReport</string> </value> + </item> + <item> + <key> <string>ooo_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>ooo_stylesheet</string> </key> + <value> <string>Budget_viewBudgetConsumptionReportTemplate</string> </value> + </item> + <item> + <key> <string>ooo_xml_file_id</string> </key> + <value> <string>content.xml</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml new file mode 100644 index 0000000000..9b6fac2317 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog.xml @@ -0,0 +1,151 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ERP5Form" module="Products.ERP5Form.Form"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Budget_viewBudgetConsumptionReport</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>edit_order</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>enctype</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <list> + <string>left</string> + <string>right</string> + <string>center</string> + <string>bottom</string> + <string>hidden</string> + </list> + </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <dictionary> + <item> + <key> <string>bottom</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>your_format</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Budget_viewBudgetConsumptionReportDialog</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>Budget_viewBudgetConsumptionReportDialog</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_dialog</string> </value> + </item> + <item> + <key> <string>row_length</string> </key> + <value> <int>4</int> </value> + </item> + <item> + <key> <string>stored_encoding</string> </key> + <value> <string>UTF-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Budget Consumption</string> </value> + </item> + <item> + <key> <string>unicode_mode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_action</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml new file mode 100644 index 0000000000..be5e86c886 --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportDialog/your_format.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>default</string> + <string>items</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>your_format</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> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>your_format</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewDialogFieldLibrary</string> </value> + </item> + <item> + <key> <string>items</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <tuple> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: context.Base_getConversionFormatItemList(base_content_type=\'application/vnd.oasis.opendocument.spreadsheet\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml new file mode 100644 index 0000000000..421025ed7f --- /dev/null +++ b/bt5/erp5_budget/SkinTemplateItem/portal_skins/erp5_budget/Budget_viewBudgetConsumptionReportTemplate.xml @@ -0,0 +1,298 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <tuple> + <global name="File" module="OFS.Image"/> + <tuple/> + </tuple> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_EtagSupport__etag</string> </key> + <value> <string>ts36700066.65</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>Budget_viewBudgetConsumptionReportTemplate</string> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>application/vnd.oasis.opendocument.spreadsheet</string> </value> + </item> + <item> + <key> <string>data</string> </key> + <value> <string encoding="base64">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 +cMR1FzlJIBL1+O7/UEsHCKXscfdiCwAAeYgAAFBLAwQUAAAAAACEfWo6NB/gTn8EAAB/BAAACAAA +AG1ldGEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KCjxvZmZpY2U6 +ZG9jdW1lbnQtbWV0YSB4bWxuczpvZmZpY2U9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1l +bnQ6eG1sbnM6b2ZmaWNlOjEuMCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv +eGxpbmsiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6 +bWV0YT0idXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIgeG1s +bnM6b29vPSJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC9vZmZpY2UiIG9mZmljZTp2ZXJzaW9u +PSIxLjIiPgogPG9mZmljZTptZXRhPgogIAogIAogIAogIDxtZXRhOmdlbmVyYXRvcj5PcGVuT2Zm +aWNlLm9yZy8zLjAkVW5peCBPcGVuT2ZmaWNlLm9yZ19wcm9qZWN0LzMwMG05JEJ1aWxkLTkzNTg8 +L21ldGE6Z2VuZXJhdG9yPgogIAogIAogIAogIDxtZXRhOmNyZWF0aW9uLWRhdGU+MjAwOS0wMS0y +M1QxMjowNDozMjwvbWV0YTpjcmVhdGlvbi1kYXRlPgogIAogIAogIAogIDxkYzpkYXRlPjIwMDkt +MDMtMTBUMTY6NDQ6MDg8L2RjOmRhdGU+CiAgCiAgCiAgCiAgPGRjOmxhbmd1YWdlPmZyLUZSPC9k +YzpsYW5ndWFnZT4KICAKICAKICAKICA8bWV0YTplZGl0aW5nLWN5Y2xlcz4xMTwvbWV0YTplZGl0 +aW5nLWN5Y2xlcz4KICAKICAKICAKICA8bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMTBIMzNNMTBT +PC9tZXRhOmVkaXRpbmctZHVyYXRpb24+CiAgCiAgCiAgCiAgPGRjOmNyZWF0b3I+SsOpcm9tZSBQ +ZXJyaW48L2RjOmNyZWF0b3I+CiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAgCiAg +CiAgCiAgCiAgPG1ldGE6ZG9jdW1lbnQtc3RhdGlzdGljIG1ldGE6dGFibGUtY291bnQ9IjMiIG1l +dGE6Y2VsbC1jb3VudD0iNDUiIG1ldGE6b2JqZWN0LWNvdW50PSIwIi8+CiAgPG1ldGE6dXNlci1k +ZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyAxIi8+CiAgPG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFt +ZT0iSW5mbyAyIi8+CiAgPG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyAzIi8+CiAg +PG1ldGE6dXNlci1kZWZpbmVkIG1ldGE6bmFtZT0iSW5mbyA0Ii8+PC9vZmZpY2U6bWV0YT4KPC9v +ZmZpY2U6ZG9jdW1lbnQtbWV0YT5QSwMEFAAIAAgAhH1qOgAAAAAAAAAAAAAAABgAAABUaHVtYm5h +aWxzL3RodW1ibmFpbC5wbmftlmc4G+67x6PVUlW05l+NqqpRxK9WUaM1onYlSm1tbbFq746IWbX3 +biViFjFrVIqqGrVCQ9QmZoIgRP7Odd6dc96dV+e6zvPm+7x5rntc9/P53rEmRqBrTLxMAADg2hNd +LdNznQIA6ACMl89vv5WbbwIA7BZPtB5BgvK2Zv8x4HPG9xGd76iMLizwSdr53GpX6/+k2/DA6/pH +X5hPsq63Nt9HML1+ZuoUx5dbHd23RC6ZLN3xTv6+Zkr/aelO6oKkbrWMrhEdRyy9NP67mHSd7qou +/t6Lf4loJ6RxDKt0MgyH8HDBg45x04OHws+jZ7MdAqYFhzd/RdKG1XbaL9q/nCvF0xUVXJfpYqO7 +yPy/F5PlKOrSaVcLXeB8/tXfmnjBouq0i5MUv4qdtTXvjbmqtpmXSor375v6wLrtrkaQ3vXzv+P2 +wgClpbclstpsyBEDW0431Zt+GR3SUvrqbk6ofQChoQ+bfbt4WRWir7uTU5/P7b1IGpBfsh7WVz07 +qu8rJdOgh/lAPwL3chxNvPU4cvikfL281tbOqxC3e9OTUuoauP/jaRORqtNsM/DLLjvQs3MsIK+x +FIembtatc2tQNg6sNtTwouaUsqW7+Pxdas0hiClocV4HOzPOR3be6s1x93I/rDJGR4d/6Axoj1yX +2tkr7mOFOS6o80T8/RUVj61qFtx7vUdp8VyEJ9YmHrEOrTQubsk1ybWVqctBg/nm/3GajKXtNqME +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 +787lM7ODX1Vop8QTNJ7ZmPl+F87F+lewTT7QoiCgcdXD5dxw3rmETtntuJ6FjPjF/gC/RClrlRNN +8NHLYpxcSbkziLjxYs0EXXVjyaLjD+K6P6paQskvCHELSSrZeGUeNN/36JrU3LgMqNTohEj2tgqJ +FJn+cCHbmhl75vIq4SI3Z6cEimrdo8dmL+pv1l9MO+gwEHpG53W6V8oOLNjlDfYz1Vw25Z3V+5yy +QXmdqdMlJZw1iRV847ee3jFZjGCRR++4CWdW0ZeTlbSoqAo9lvBPdxpc9Ms5APkG041enCilUZvo +9rkZc1iTKZrR5Mlgfhki5SL608oFnWYTfTc0hAl55UQs9cLmOF7otokmI499TBRd9P/L/205E3S2 +LmFkCzQnAc7PE20jrerH9m//DVBLBwjpq6tHmREAAJETAABQSwMEFAAIAAgAhH1qOgAAAAAAAAAA +AAAAACcAAABDb25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgAAAAA +AgAAAAAAAABQSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABwAAABDb25maWd1cmF0aW9uczIvcHJv +Z3Jlc3NiYXIvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAYAAAAQ29uZmlndXJhdGlvbnMyL2Zs +b2F0ZXIvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3BvcHVw +bWVudS9QSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvbWVudWJh +ci9QSwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvdG9vbGJhci9Q +SwMEFAAAAAAAhH1qOgAAAAAAAAAAAAAAAB8AAABDb25maWd1cmF0aW9uczIvaW1hZ2VzL0JpdG1h +cHMvUEsDBBQAAAAAAIR9ajoAAAAAAAAAAAAAAAAaAAAAQ29uZmlndXJhdGlvbnMyL3N0YXR1c2Jh +ci9QSwMEFAAIAAgAhH1qOgAAAAAAAAAAAAAAAAwAAABzZXR0aW5ncy54bWzNWt93ojoQft+/wsPr +PV0Rt71XT3UPat3+sq2gVnkLkGrWkHCSINq//gbR3i4VixU81xePJJlvZjKTbyZ4+XPp4dICMo4o +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</string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>14569</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_budget/bt/revision b/bt5/erp5_budget/bt/revision index fba8ce006f..0e4c1b3f90 100644 --- a/bt5/erp5_budget/bt/revision +++ b/bt5/erp5_budget/bt/revision @@ -1 +1 @@ -224 \ No newline at end of file +226 \ No newline at end of file diff --git a/bt5/erp5_budget/bt/template_action_path_list b/bt5/erp5_budget/bt/template_action_path_list index 222718f33f..924fc11a22 100644 --- a/bt5/erp5_budget/bt/template_action_path_list +++ b/bt5/erp5_budget/bt/template_action_path_list @@ -6,11 +6,15 @@ Budget Line | engaged_view Budget Line | initial_view Budget Model Module | view Budget Model | view +Budget Module | budget_group_consumption_export +Budget Module | budget_group_consumption_report Budget Module | view Budget Transaction Module | view Budget Transaction | view Budget Transfer Line | view Budget Transfer | view +Budget | budget_group_consumption_export +Budget | budget_group_consumption_report Budget | generate_structure Budget | original_budget Budget | transfer_line_list_view diff --git a/bt5/erp5_budget/bt/template_local_role_list b/bt5/erp5_budget/bt/template_local_role_list new file mode 100644 index 0000000000..e69de29bb2 diff --git a/bt5/erp5_budget/bt/template_portal_type_role_list b/bt5/erp5_budget/bt/template_portal_type_role_list new file mode 100644 index 0000000000..e69de29bb2 -- 2.30.9