From 2b8ef361a8e9aec9af514aa0fdec2d3d734399b0 Mon Sep 17 00:00:00 2001 From: Yusei Tahara <yusei@nexedi.com> Date: Thu, 1 Sep 2016 15:55:50 +0900 Subject: [PATCH] Initial version of HTML5 offline support travel expense app. --- .../portal_types/Category/jio_view.xml | 87 + .../portal_types/Currency/jio_view.xml | 87 + .../Expense%20Record%20Module/jio_view.xml | 85 + .../Expense%20Record%20Module/view.xml | 83 + .../Expense%20Record/jio_view.xml | 85 + .../portal_types/Expense%20Record/view.xml | 83 + .../view.xml | 83 + .../Expense%20Validation%20Item/view.xml | 83 + .../expense_record_module.xml | 96 + .../expense_validation_item_module.xml | 96 + .../travel_expense_create_validation_item.xml | 95 + .../gadget_travel_expense_jio.html.html | 21 + .../gadget_travel_expense_jio.html.xml | 328 +++ .../gadget_travel_expense_jio.js.js | 264 ++ .../gadget_travel_expense_jio.js.xml | 326 +++ ...record_module_add_expense_record.html.html | 74 + ..._record_module_add_expense_record.html.xml | 336 +++ ...nse_record_module_add_expense_record.js.js | 190 ++ ...se_record_module_add_expense_record.js.xml | 332 +++ ...e_jio_expense_record_module_view.html.html | 19 + ...se_jio_expense_record_module_view.html.xml | 336 +++ ...pense_jio_expense_record_module_view.js.js | 82 + ...ense_jio_expense_record_module_view.js.xml | 332 +++ ..._expense_jio_expense_record_view.html.html | 84 + ...l_expense_jio_expense_record_view.html.xml | 336 +++ ...avel_expense_jio_expense_record_view.js.js | 308 +++ ...vel_expense_jio_expense_record_view.js.xml | 332 +++ ...gadget_travel_expense_page_login.html.html | 39 + .../gadget_travel_expense_page_login.html.xml | 336 +++ .../gadget_travel_expense_page_login.js.js | 70 + .../gadget_travel_expense_page_login.js.xml | 332 +++ ...dget_travel_expense_page_setting.html.html | 59 + ...adget_travel_expense_page_setting.html.xml | 336 +++ .../gadget_travel_expense_page_setting.js.js | 299 +++ .../gadget_travel_expense_page_setting.js.xml | 332 +++ .../gadget_travel_expense_page_sync.html.html | 32 + .../gadget_travel_expense_page_sync.html.xml | 336 +++ .../gadget_travel_expense_page_sync.js.js | 65 + .../gadget_travel_expense_page_sync.js.xml | 332 +++ ...el_expense_record_application.appcache.xml | 379 +++ ...ravel_expense_record_application.html.html | 81 + ...travel_expense_record_application.html.xml | 338 +++ ...et_travel_expense_record_application.js.js | 587 +++++ ...t_travel_expense_record_application.js.xml | 332 +++ ...et_travel_expense_standalone_jio.html.html | 21 + ...get_travel_expense_standalone_jio.html.xml | 322 +++ ...gadget_travel_expense_standalone_jio.js.js | 77 + ...adget_travel_expense_standalone_jio.js.xml | 320 +++ ...adget_travel_expense_translation.html.html | 22 + ...gadget_travel_expense_translation.html.xml | 332 +++ .../gadget_travel_expense_translation.js.js | 116 + .../gadget_travel_expense_translation.js.xml | 328 +++ ...dget_travel_expense_translation_data.js.js | 14 + ...get_travel_expense_translation_data.js.xml | 334 +++ ...et_travel_expense_widget_listbox.html.html | 69 + ...get_travel_expense_widget_listbox.html.xml | 332 +++ ...gadget_travel_expense_widget_listbox.js.js | 218 ++ ...adget_travel_expense_widget_listbox.js.xml | 326 +++ .../web_page_module/megapix-image.js.js | 263 ++ .../web_page_module/megapix-image.js.xml | 326 +++ .../travel_expense_app.css.css | 8 + .../travel_expense_app.css.xml | 320 +++ ...avel_expense_jiodev_renderjs_storage.js.js | 117 + ...vel_expense_jiodev_renderjs_storage.js.xml | 322 +++ .../travel_expense_js_cookie.js.js | 139 ++ .../travel_expense_js_cookie.js.xml | 318 +++ .../travel_expense_renderjs.js.js | 2216 +++++++++++++++++ .../travel_expense_renderjs.js.xml | 320 +++ .../travel_expense_utility.js.js | 89 + .../travel_expense_utility.js.xml | 320 +++ .../web_site_module/travel_expense_app.xml | 604 +++++ .../travel_expense_app/hateoas.xml | 467 ++++ .../allowed_content_types.xml | 8 + .../base_category_list.xml | 8 + .../hidden_content_type_list.xml | 5 + .../property_sheet_list.xml | 5 + .../Expense%20Record%20Module.xml | 138 + .../portal_types/Expense%20Record.xml | 71 + .../Expense%20Validation%20Item%20Module.xml | 108 + .../Expense%20Validation%20Item.xml | 72 + .../workflow_chain_type.xml | 10 + .../portal_property_sheets/ExpenseRecord.xml | 66 + .../ExpenseRecord/comment_property.xml | 34 + .../ExpenseRecord/contributor_category.xml | 26 + .../ExpenseRecord/copy_of_property.xml | 34 + .../ExpenseRecord/date_property.xml | 34 + .../ExpenseRecord/doc_id_property.xml | 34 + .../ExpenseRecord/photo_data_property.xml | 34 + .../ExpenseRecord/quantity_property.xml | 34 + .../record_revision_property.xml | 34 + .../ExpenseRecord/resource_property.xml | 34 + .../ExpenseRecord/sync_flag_property.xml | 34 + .../visible_in_html5_app_flag_property.xml | 40 + .../portal_skins/erp5_travel_expense.xml | 47 + .../AccountingTransaction_view.xml | 160 ++ .../AccountingTransaction_view/listbox.xml | 131 + .../listbox_source.xml | 90 + .../listbox_source_credit.xml | 100 + .../listbox_source_debit.xml | 100 + .../listbox_source_function.xml | 90 + .../listbox_source_funding.xml | 90 + .../my_causality_title_list.xml | 90 + .../AccountingTransaction_view/my_comment.xml | 98 + .../my_destination_section_title.xml | 96 + .../AccountingTransaction_view/my_ledger.xml | 90 + .../my_reference.xml | 100 + .../my_resource.xml | 90 + .../my_source_project_title.xml | 637 +++++ .../my_source_reference.xml | 98 + .../my_source_section.xml | 90 + .../my_start_date.xml | 90 + .../AccountingTransaction_view/my_title.xml | 90 + .../my_translated_portal_type.xml | 90 + .../my_translated_simulation_state_title.xml | 90 + .../AccountingTransaction_view/your_photo.xml | 320 +++ .../Alarm_createExpenseValidationItem.py | 9 + .../Alarm_createExpenseValidationItem.xml | 62 + .../erp5_travel_expense/Base_createTicket.py | 11 + .../erp5_travel_expense/Base_createTicket.xml | 62 + .../erp5_travel_expense/Base_getDateTime.py | 1 + .../erp5_travel_expense/Base_getDateTime.xml | 62 + .../Base_getValidOriginalEvent.py | 24 + .../Base_getValidOriginalEvent.xml | 62 + .../Base_isNewestVersionRecord.py | 19 + .../Base_isNewestVersionRecord.xml | 62 + .../erp5_travel_expense/Base_viewAsJio.xml | 156 ++ .../my_category_relative_url.xml | 279 +++ .../Base_viewAsJio/my_logical_path.xml | 275 ++ .../Base_viewAsJio/my_parent_uid.xml | 275 ++ .../Base_viewAsJio/my_relative_url.xml | 275 ++ .../Base_viewAsJio/my_title.xml | 275 ++ .../Currency_viewAsJio.xml | 156 ++ .../Currency_viewAsJio/my_logical_path.xml | 275 ++ .../Currency_viewAsJio/my_parent_uid.xml | 275 ++ .../Currency_viewAsJio/my_relative_url.xml | 275 ++ .../Currency_viewAsJio/my_title.xml | 275 ++ .../my_validation_state.xml | 96 + .../ERP5Document_getHateoas.py | 1014 ++++++++ .../ERP5Document_getHateoas.xml | 72 + ...enseRecordModule_viewExpenseRecordList.xml | 131 + .../listbox.xml | 132 + ...penseRecord_createExpenseValidationItem.py | 135 + ...enseRecord_createExpenseValidationItem.xml | 62 + .../ExpenseRecord_getAccountDict.py | 2 + .../ExpenseRecord_getAccountDict.xml | 66 + .../erp5_travel_expense/ExpenseRecord_init.py | 5 + .../ExpenseRecord_init.xml | 62 + .../ExpenseRecord_view.xml | 141 ++ .../ExpenseRecord_view/my_comment.xml | 272 ++ .../my_contributor_title.xml | 113 + .../ExpenseRecord_view/my_date.xml | 272 ++ .../ExpenseRecord_view/my_follow_up_title.xml | 108 + .../ExpenseRecord_view/my_quantity.xml | 264 ++ .../ExpenseRecord_view/my_record_revision.xml | 264 ++ .../my_translated_simulation_state_title.xml | 84 + .../ExpenseRecord_view/your_error_message.xml | 310 +++ .../ExpenseRecord_view/your_image.xml | 311 +++ .../ExpenseRecord_viewAsJio.xml | 165 ++ .../ExpenseRecord_viewAsJio/my_comment.xml | 260 ++ .../ExpenseRecord_viewAsJio/my_copy_of.xml | 90 + .../ExpenseRecord_viewAsJio/my_date.xml | 268 ++ .../ExpenseRecord_viewAsJio/my_doc_id.xml | 272 ++ .../ExpenseRecord_viewAsJio/my_photo_data.xml | 272 ++ .../ExpenseRecord_viewAsJio/my_quantity.xml | 286 +++ .../my_record_revision.xml | 264 ++ .../ExpenseRecord_viewAsJio/my_resource.xml | 260 ++ .../ExpenseRecord_viewAsJio/my_sync_flag.xml | 264 ++ .../my_visible_in_html5_app_flag.xml | 264 ++ ...emModule_viewExpenseValidationItemList.xml | 131 + .../listbox.xml | 101 + .../ExpenseValidationItem_view.xml | 134 + .../my_follow_up_related_title_list.xml | 108 + .../my_source_project_title.xml | 108 + .../ExpenseValidationItem_view/my_title.xml | 272 ++ .../my_translated_simulation_state_title.xml | 84 + .../erp5_travel_expense/WebPage_viewAsWeb.py | 37 + .../erp5_travel_expense/WebPage_viewAsWeb.xml | 66 + ...avel_expense_event_simulation_workflow.xml | 66 + .../scripts.xml | 28 + .../scripts/Event_checkConsistency.py | 2 + .../scripts/Event_checkConsistency.xml | 62 + .../scripts/Event_send.py | 16 + .../scripts/Event_send.xml | 70 + .../states.xml | 28 + .../states/cancelled.xml | 109 + .../states/confirmed.xml | 120 + .../states/deleted.xml | 98 + .../states/delivered.xml | 106 + .../states/draft.xml | 132 + .../states/error.xml | 41 + .../states/planned.xml | 122 + .../states/started.xml | 120 + .../states/stopped.xml | 120 + .../transitions.xml | 28 + .../transitions/cancel.xml | 58 + .../transitions/cancel_action.xml | 82 + .../transitions/change_to_draft.xml | 81 + .../transitions/change_to_draft_action.xml | 81 + .../transitions/change_to_error.xml | 62 + .../transitions/confirm.xml | 58 + .../transitions/confirm_action.xml | 75 + .../transitions/create_ticket_action.xml | 102 + .../transitions/delete.xml | 58 + .../transitions/delete_action.xml | 78 + .../transitions/deliver.xml | 58 + .../transitions/deliver_action.xml | 98 + .../transitions/initial_stop_action.xml | 78 + .../transitions/plan.xml | 58 + .../transitions/plan_action.xml | 77 + .../transitions/start.xml | 62 + .../transitions/start_action.xml | 102 + .../transitions/stop.xml | 58 + .../transitions/stop_action.xml | 77 + .../variables.xml | 28 + .../variables/action.xml | 61 + .../variables/actor.xml | 61 + .../variables/answer_portal_type.xml | 48 + .../variables/answer_template.xml | 48 + .../variables/comment.xml | 61 + .../variables/create_event.xml | 48 + .../variables/error_message.xml | 48 + .../variables/history.xml | 61 + .../variables/portal_type.xml | 48 + .../variables/respond_event_portal_type.xml | 48 + .../variables/respond_event_resource.xml | 48 + .../variables/respond_event_text_content.xml | 48 + .../variables/respond_event_title.xml | 48 + .../variables/time.xml | 61 + .../worklists.xml | 28 + .../worklists/0_draft_event_list.xml | 94 + .../worklists/1_planned_event_list.xml | 93 + .../worklists/2_confirmed_event_list.xml | 94 + .../worklists/3_stopped_event_list.xml | 94 + ...ravel_expense_jio_interaction_workflow.xml | 46 + .../interactions.xml | 28 + .../interactions/copyDocIdToTitle.xml | 100 + .../interactions/local_role_update.xml | 100 + .../scripts.xml | 28 + .../scripts/Base_copyDocIdToTitle.py | 2 + .../scripts/Base_copyDocIdToTitle.xml | 70 + .../scripts/Base_updateLocalRole.py | 3 + .../scripts/Base_updateLocalRole.xml | 70 + .../variables.xml | 22 + .../worklists.xml | 22 + bt5/erp5_travel_expense/bt/change_log | 2 + bt5/erp5_travel_expense/bt/dependency_list | 3 + bt5/erp5_travel_expense/bt/description | 1 + .../bt/template_action_path_list | 8 + .../bt/template_format_version | 1 + ..._keep_last_workflow_history_only_path_list | 32 + .../bt/template_module_id_list | 2 + bt5/erp5_travel_expense/bt/template_path_list | 33 + ...late_portal_type_allowed_content_type_list | 2 + .../template_portal_type_base_category_list | 2 + ...plate_portal_type_hidden_content_type_list | 1 + .../bt/template_portal_type_id_list | 4 + .../template_portal_type_property_sheet_list | 1 + .../template_portal_type_workflow_chain_list | 11 + .../bt/template_property_sheet_id_list | 1 + .../bt/template_skin_id_list | 1 + .../bt/template_workflow_id_list | 2 + bt5/erp5_travel_expense/bt/title | 1 + bt5/erp5_travel_expense/bt/version | 1 + 263 files changed, 36574 insertions(+) create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Category/jio_view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Currency/jio_view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/jio_view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/jio_view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item%20Module/view.xml create mode 100644 bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item/view.xml create mode 100644 bt5/erp5_travel_expense/ModuleTemplateItem/expense_record_module.xml create mode 100644 bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml create mode 100644 bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml create mode 100644 bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record%20Module.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml create mode 100644 bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/comment_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/date_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/photo_data_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/quantity_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml create mode 100644 bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py create mode 100644 bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml create mode 100644 bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml create mode 100644 bt5/erp5_travel_expense/bt/change_log create mode 100644 bt5/erp5_travel_expense/bt/dependency_list create mode 100644 bt5/erp5_travel_expense/bt/description create mode 100644 bt5/erp5_travel_expense/bt/template_action_path_list create mode 100644 bt5/erp5_travel_expense/bt/template_format_version create mode 100644 bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list create mode 100644 bt5/erp5_travel_expense/bt/template_module_id_list create mode 100644 bt5/erp5_travel_expense/bt/template_path_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_base_category_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_id_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list create mode 100644 bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list create mode 100644 bt5/erp5_travel_expense/bt/template_property_sheet_id_list create mode 100644 bt5/erp5_travel_expense/bt/template_skin_id_list create mode 100644 bt5/erp5_travel_expense/bt/template_workflow_id_list create mode 100644 bt5/erp5_travel_expense/bt/title create mode 100644 bt5/erp5_travel_expense/bt/version diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Category/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Category/jio_view.xml new file mode 100644 index 0000000000..6cc1847c86 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Category/jio_view.xml @@ -0,0 +1,87 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/Base_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Currency/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Currency/jio_view.xml new file mode 100644 index 0000000000..7bdf68454b --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Currency/jio_view.xml @@ -0,0 +1,87 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/Currency_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/jio_view.xml new file mode 100644 index 0000000000..47bd285e06 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/jio_view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/Base_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/view.xml new file mode 100644 index 0000000000..28c37d4a5d --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record%20Module/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_list</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_list</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>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseRecordModule_viewExpenseRecordList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/jio_view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/jio_view.xml new file mode 100644 index 0000000000..b723c0ff88 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/jio_view.xml @@ -0,0 +1,85 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_jio_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_jio_view</string> </value> + </item> + <item> + <key> <string>condition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>jio_view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>100.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseRecord_viewAsJio</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/view.xml new file mode 100644 index 0000000000..c24dacb8ed --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Record/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</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>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseRecord_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item%20Module/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item%20Module/view.xml new file mode 100644 index 0000000000..d99c797359 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item%20Module/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_list</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_list</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>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseValidationItemModule_viewExpenseValidationItemList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item/view.xml b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item/view.xml new file mode 100644 index 0000000000..8e5dd88a83 --- /dev/null +++ b/bt5/erp5_travel_expense/ActionTemplateItem/portal_types/Expense%20Validation%20Item/view.xml @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ActionInformation" module="Products.CMFCore.ActionInformation"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>action_type/object_view</string> + </tuple> + </value> + </item> + <item> + <key> <string>category</string> </key> + <value> <string>object_view</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>view</string> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>View</string> + </tuple> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Action Information</string> </value> + </item> + <item> + <key> <string>priority</string> </key> + <value> <float>1.0</float> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>View</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>string:${object_url}/ExpenseValidationItem_view</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/ModuleTemplateItem/expense_record_module.xml b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_record_module.xml new file mode 100644 index 0000000000..8de1637752 --- /dev/null +++ b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_record_module.xml @@ -0,0 +1,96 @@ +<module> + <id>expense_record_module</id> + <permission_list> + <permission type='tuple'> + <name>Access Transient Objects</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access contents information</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access session data</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal content</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal folders</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Change local roles</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Copy or Move</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Delete objects</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>List folder contents</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Modify portal content</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View History</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + </permission_list> + <portal_type>Expense Record Module</portal_type> + <title>Expense Records</title> +</module> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml new file mode 100644 index 0000000000..c2a166e8e4 --- /dev/null +++ b/bt5/erp5_travel_expense/ModuleTemplateItem/expense_validation_item_module.xml @@ -0,0 +1,96 @@ +<module> + <id>expense_validation_item_module</id> + <permission_list> + <permission type='tuple'> + <name>Access Transient Objects</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access contents information</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Access session data</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal content</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Add portal folders</name> + <role>Assignor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Change local roles</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Copy or Move</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Delete objects</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>List folder contents</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>Modify portal content</name> + <role>Assignor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Manager</role> + </permission> + <permission type='tuple'> + <name>View History</name> + <role>Assignee</role> + <role>Assignor</role> + <role>Associate</role> + <role>Auditor</role> + <role>Author</role> + <role>Manager</role> + </permission> + </permission_list> + <portal_type>Expense Validation Item Module</portal_type> + <title>Expense Validation Items</title> +</module> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml b/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml new file mode 100644 index 0000000000..87371a4957 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/portal_alarms/travel_expense_create_validation_item.xml @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Alarm" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>active_sense_method_id</string> </key> + <value> <string>Alarm_createExpenseValidationItem</string> </value> + </item> + <item> + <key> <string>automatic_solve</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_create_validation_item</string> </value> + </item> + <item> + <key> <string>periodicity_hour</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_minute</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_minute_frequency</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>periodicity_month</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_month_day</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>periodicity_start_date</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1435665600.0</float> + <string>GMT</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>periodicity_week</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Alarm</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Create Expense Validation Item</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html new file mode 100644 index 0000000000..5b70ef2beb --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>Jio Gadget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="travel_expense_renderjs.js" type="text/javascript"></script> + + <!-- custom script --> + <script src="gadget_travel_expense_jio.js" type="text/javascript"></script> + </head> + <body> + <div data-gadget-url="gadget_jio.html" + data-gadget-scope="jio_gadget" + data-gadget-sandbox="public"></div> + + </body> +</html> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml new file mode 100644 index 0000000000..f190763845 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.html.xml @@ -0,0 +1,328 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Jio access</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Jio Gadget</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.67</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37503.13972.43741</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540544.33</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.28</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js new file mode 100644 index 0000000000..2cc9e5e757 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.js @@ -0,0 +1,264 @@ +/*global window, rJS, FormData, document, RSVP, console */ +/*jslint indent: 2, maxerr: 3 */ +(function (window, rJS) { + "use strict"; + + var timeout = 10000; + + function S4() { + return ('0000' + Math.floor( + Math.random() * 0x10000 /* 65536 */ + ).toString(16)).slice(-4); + } + + function UUID() { + return S4() + S4() + "-" + + S4() + "-" + + S4() + "-" + + S4() + "-" + + S4() + S4() + S4(); + } + + function wrapManagerJioAccess(gadget, method_name, argument_list) { + return gadget.getDeclaredGadget('jio_gadget') + .push(function (jio_gadget) { + return jio_gadget[method_name].apply(jio_gadget, argument_list); + }); + } + + function wrapJioAccess(gadget, method_name, argument_list) { + if (gadget.state_parameter_dict.user_type === "manager") { + return wrapManagerJioAccess(gadget, method_name, argument_list); + } + if (gadget.state_parameter_dict.user_type === "user") { + return gadget.getDeclaredGadget('gadget_webrtc_datachannel.html') + .push(function (rtc_gadget) { + gadget.state_parameter_dict.message_count += 1; + gadget.state_parameter_dict.message_dict[gadget.state_parameter_dict.message_count] = RSVP.defer(); + return RSVP.all([ + rtc_gadget.send(JSON.stringify({ + id: gadget.state_parameter_dict.message_count, + type: "jio_query", + method_name: method_name, + argument_list: Array.prototype.slice.call(argument_list) + })), + RSVP.any([ + RSVP.timeout(timeout), + gadget.state_parameter_dict.message_dict[gadget.state_parameter_dict.message_count].promise + ]) + ]); + }) + .push(function (result_list) { + return result_list[1]; + }); + } + + throw new Error("NotImplemented wrapJioAccess for: " + gadget.state_parameter_dict.user_type); + } + + function declareSubGadget(gadget, url) { + var container_element = gadget.state_parameter_dict.element.querySelector("." + url.split(".")[0]), + element = document.createElement("div"); + container_element.innerHTML = ""; + container_element.appendChild(element); + return gadget.declareGadget(url, { + element: element, + scope: url, + sandbox: "public" + }); + } + + rJS(window) + + .ready(function (gadget) { + // Initialize the gadget local parameters + gadget.state_parameter_dict = { + websocket_initialized: false, + user_type: null + }; + return gadget.getElement() + .push(function (element) { + gadget.state_parameter_dict.element = element; + }); + }) + + .allowPublicAcquisition('notifyDataChannelClosed', function () { + return; + }) + + .allowPublicAcquisition("notifyDataChannelMessage", function (argument_list, scope) { + var json = JSON.parse(argument_list[0]), + rtc_gadget, + context = this; + if (context.state_parameter_dict.user_type === "manager") { + return context.getDeclaredGadget(scope) + .push(function (g) { + rtc_gadget = g; + // XXX Propagate arguments + return wrapManagerJioAccess(context, json.method_name, json.argument_list); + }) + .push(function (result) { + return rtc_gadget.send(JSON.stringify({ + id: json.id, + result: result, + type: "jio_response" + })); + }, function (error) { + return rtc_gadget.send(JSON.stringify({ + id: json.id, + result: error, + type: "error" + })); + }); + } + if (context.state_parameter_dict.user_type === "user") { + if (json.type === "jio_response") { + context.state_parameter_dict.message_dict[json.id].resolve(json.result); + } else { + context.state_parameter_dict.message_dict[json.id].reject(json.result); + } + } else { + throw new Error("Unexpected WebRTC message"); + } + }) + + .allowPublicAcquisition("notifyWebSocketClosed", function () { + if (this.state_parameter_dict.user_type !== "user") { + throw new Error("Unexpected Web Socket connection close"); + } + }) + + .allowPublicAcquisition("notifyWebSocketMessage", function (argument_list) { + + var json = JSON.parse(argument_list[0]), + rtc_gadget, + socket_gadget, + gadget = this; + + if ((json.action === "offer") && (gadget.state_parameter_dict.user_type === "manager")) { + return gadget.getDeclaredGadget("gadget_websocket.html") + .push(function (gg) { + gadget.state_parameter_dict.counter += 1; + socket_gadget = gg; + var new_element = document.createElement("div"); + gadget.state_parameter_dict.element.querySelector(".gadget_webrtc_datachannel").appendChild(new_element); + return gadget.declareGadget("gadget_webrtc_datachannel.html", { + scope: "webrtc" + gadget.state_parameter_dict.counter, + element: new_element + }); + }) + .push(function (gg) { + rtc_gadget = gg; + return rtc_gadget.createAnswer(json.from, json.data); + }) + .push(function (local_connection) { + return socket_gadget.send(JSON.stringify({to: json.from, action: "answer", data: local_connection})); + }) + .push(function () { + return rtc_gadget.waitForConnection(); + }) + .push(undefined, function (error) { + console.error(error); + throw error; + }); + } + + if ((json.action === "answer") && (gadget.state_parameter_dict.user_type === "user")) { + if (json.to === gadget.state_parameter_dict.uuid) { + gadget.state_parameter_dict.answer_defer.resolve(json.data); + } + } + + }) + + .declareMethod('createJio', function (jio_options) { + var context = this, + socket_gadget, + rtc_gadget; + + return declareSubGadget(context, 'gadget_websocket.html') + .push(function (gadget) { + socket_gadget = gadget; + // Check if this is a manager access + return socket_gadget.createSocket("ws://127.0.0.1:9999/") + .push(function () { + // Nothing to do except waiting for new webrtc offer + context.state_parameter_dict.user_type = "manager"; + context.state_parameter_dict.counter = 0; + return context.getDeclaredGadget('jio_gadget') + .push(function (jio_gadget) { + return jio_gadget.createJio(jio_options); + }); + }, function () { + // XXX Catch right type of error + context.state_parameter_dict.user_type = "user"; + context.state_parameter_dict.uuid = UUID(); + context.state_parameter_dict.answer_defer = RSVP.defer(); + context.state_parameter_dict.message_count = 0; + context.state_parameter_dict.message_dict = {}; + return declareSubGadget(context, 'gadget_websocket.html') + .push(function (gadget) { + socket_gadget = gadget; + // XXX Drop hardcoded URL + return socket_gadget.createSocket("ws://192.168.242.76:9999/"); + }) + .push(function () { + return declareSubGadget(context, 'gadget_webrtc_datachannel.html'); + }) + .push(function (gadget) { + rtc_gadget = gadget; + return rtc_gadget.createOffer(context.state_parameter_dict.uuid); + }) + .push(function (description) { + // Send offer and expect answer in less than XXXms (arbitrary value...) + return RSVP.any([ + RSVP.timeout(timeout), + RSVP.all([ + socket_gadget.send(JSON.stringify({from: context.state_parameter_dict.uuid, action: "offer", data: description})), + context.state_parameter_dict.answer_defer.promise + ]) + ]); + }) + .push(function (response_list) { + return rtc_gadget.registerAnswer(response_list[1]); + }) + .push(function () { + return socket_gadget.close(); + }); + }); + }); + }) + .declareMethod('allDocs', function () { + return wrapJioAccess(this, 'allDocs', arguments); + }) + .declareMethod('get', function () { + return wrapJioAccess(this, 'get', arguments); + }) + .declareMethod('put', function () { + return wrapJioAccess(this, 'put', arguments); + }) + .declareMethod('post', function () { + return wrapJioAccess(this, 'post', arguments); + }) + .declareMethod('remove', function () { + return wrapJioAccess(this, 'remove', arguments); + }) + /* + .declareMethod('allAttachments', function () { + return wrapJioAccess(this, 'allAttachments', arguments); + }) + .declareMethod('getAttachment', function () { + return wrapJioAccess(this, 'getAttachment', arguments); + }) + .declareMethod('putAttachment', function () { + return wrapJioAccess(this, 'putAttachment', arguments); + }) + .declareMethod('removeAttachment', function () { + return wrapJioAccess(this, 'removeAttachment', arguments); + }) + */ + .declareMethod('repair', function () { + return wrapJioAccess(this, 'repair', arguments); + }); + +}(window, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml new file mode 100644 index 0000000000..ce14f3cabb --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio.js.xml @@ -0,0 +1,326 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Jio Gadget JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.76</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.34</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.32</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html new file mode 100644 index 0000000000..56ff560173 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.html @@ -0,0 +1,74 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Expense Record Module Add Expense Record</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + <script src="gadget_travel_expense_jio_expense_record_module_add_expense_record.js"></script> + + <script class="new-expense-record-template" type="text/x-handlebars-template"> + + <form class="new-expense-record-form"> + + <div class="ui-field-contain"> + <label data-i18n="Photo">Photo</label> + <input name="photo" type="file" accept="image/*" capture="camera"> + <canvas style="display:none" name="photo_data" /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Preview">Preview</label> + <img name="preview" style="width:300px" /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Currency">Currency</label> + <select class="new-performed-task" name="resource" required> + <option value=""></option> + </select> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Total Price">Total Price</label> + <input type="number" name="quantity" value="" step="0.01" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Input Date">Input Date</label> + <input type="date" name="date" value="{{date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <input type="text" name="comment"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Sync Method">Sync Method</label> + <div> + <input type="radio" id="sync_flag_yes" name="sync_flag" value="1"> + <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> + <input type="radio" id="sync_flag_no" name="sync_flag" value="" checked> + <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> + </div> + </div> + + <div data-role="popup" name="large_preview" data-position-to="window" data-theme="a" data-overlay-theme="a" data-corners="false"><img></div> + + <input data-inline="true" type="submit" value="Add" data-theme="b" data-i18n="[value]Add"> + + </form> + + </script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml new file mode 100644 index 0000000000..191e296ca1 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Jio Expense Record Module Add Expense Record</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.66</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.40592.27546.51592</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472712088.95</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.35</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js new file mode 100644 index 0000000000..d983b25e63 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.js @@ -0,0 +1,190 @@ +/*globals window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery*/ +/*jslint indent: 2, nomen: true, maxlen: 200*/ +(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $, MegaPixImage) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".new-expense-record-template") + .innerHTML, + template = Handlebars.compile(source); + + + gadget_klass + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + g.props.deferred = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod('get', 'jio_get') + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('jio_remove', 'jio_remove') + + .declareMethod("render", function (options) { + var gadget = this; + gadget.props.options = options; + + return gadget.translateHtml(template({ + date: new Date().toISOString().split('T')[0] + })) + .push(function (html) { + gadget.props.element.innerHTML = html; + return gadget.updateHeader({ + title: "New Expense Record" + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('form.new-expense-record-form'), + 'submit', + false + ); + }) + .push(function (submit_event) { + var i, + doc = { + // XXX Hardcoded + parent_relative_url: "expense_record_module", + portal_type: "Expense Record", + doc_id: getSequentialID('EXP'), + visible_in_html5_app_flag: 1, + record_revision: 1, + }; + gadget.props.element.querySelector("input[type=submit]") + .disabled = true; + + for (i = 0; i < submit_event.target.length; i += 1) { + // XXX Should check input type instead + if (submit_event.target[i].name) { + if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ + continue + } + if (submit_event.target[i].name=="photo") { + if (submit_event.target[i].files.length > 0){ + var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]') + doc['photo_data'] = photo_data.toDataURL() + }else{ + doc['photo_data'] = '' + } + continue + } + doc[submit_event.target[i].name] = submit_event.target[i].value; + } + } + if (doc.sync_flag != "1"){ + doc.portal_type = 'Expense Record Temp' // For to avoid sync + } + + return gadget.post(doc); + }) + .push(function () { + return gadget.redirect({ + jio_key: gadget.props.options.jio_key, + page: "view" + }); + }); + + }) + + ///////////////////////////////////////// + // Fill currencies + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function(){createResourceSelection(gadget, my_resource)}) + }) + + + ///////////////////////////////////////// + // Photo changed. + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('input[name="photo"]'), + "change", + false, + function (evt) { + return new RSVP.Queue() + .push(function () { + // Wait for user to finish typing + return RSVP.delay(100); + }) + .push(function () { + var file = gadget.props.element.querySelector('input[name="photo"]').files[0]; + var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]'); + new MegaPixImage(file).render(photo_data, { width: 600 }, function(){gadget.props.element.querySelector('img[name="preview"]').src = photo_data.toDataURL();}); + }); + } + ); + }); + }) + + + ///////////////////////////////////////// + // Preview clicked. + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('img[name="preview"]'), + "click", + false, + function (evt) { + return new RSVP.Queue() + .push(function () { + // Wait for user to finish typing + return RSVP.delay(100); + }) + .push(function () { + $('div[name=large_preview]').popup('open', 0, 0, 'slidedown', 'window'); + $('div[name=large_preview] img').attr('src', gadget.props.element.querySelector('canvas[name=photo_data]').toDataURL()); + }); + } + ); + }); + }); + + +}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery, MegaPixImage)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml new file mode 100644 index 0000000000..7f70062934 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_add_expense_record.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Jio Expense Record Module Add Expense Record JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.75</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.40533.10535.48486</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472708750.48</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.39</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html new file mode 100644 index 0000000000..a02d14026d --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.html @@ -0,0 +1,19 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Expense Record Module View</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="gadget_travel_expense_jio_expense_record_module_view.js"></script> + + </head> + + <body> + <div data-gadget-url="gadget_travel_expense_widget_listbox.html" data-gadget-scope="listbox"></div> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml new file mode 100644 index 0000000000..4f08106fb6 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_view.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_view.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record Module View</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.64</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37503.13972.43741</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540531.23</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.43</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js new file mode 100644 index 0000000000..ae6d676d04 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.js @@ -0,0 +1,82 @@ +/*globals window, RSVP, rJS*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, RSVP, rJS) { + "use strict"; + + rJS(window) + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + }); + }) + .declareAcquiredMethod("translate", "translate") + .declareAcquiredMethod("getUrlFor", "getUrlFor") + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("jio_allDocs", "jio_allDocs") + .allowPublicAcquisition("jio_allDocs", function (param_list) { + var gadget = this; + return this.jio_allDocs.apply(this, param_list) + .push(function (result) { + var i, + len; + for (i = 0, len = result.data.total_rows; i < len; i += 1) { + // XXX jIO does not create UUID with module inside + result.data.rows[i].value.state = getWorkflowState(result.data.rows[i].value.portal_type, result.data.rows[i].id, result.data.rows[i].value.sync_flag); + } + return result; + }); + }) + .declareMethod("render", function (options) { + var gadget = this; + return new RSVP.Queue() + .push(function () { + return gadget.getUrlFor({jio_key: options.jio_key, + page: "add_expense_record"}); + }) + .push(function (url) { + return gadget.updateHeader({ + title: "Expense Record", + right_url: url, + right_title: "New" + }); + }) + .push(function () { + return gadget.getDeclaredGadget("listbox"); + }) + .push(function (listbox) { + return listbox.render({ + jio_key: options.jio_key, + search: options.search, + begin_from: options.begin_from, + column_list: [{ + select: 'comment', + title: 'Comment' + }, { + select: 'quantity', + title: 'Total Price' + }, { + select: 'resource', + title: 'Currency' + }, { + select: 'date', + title: 'Input Date' + }, { + select: 'doc_id', + title: 'ID' + }, { + select: 'state', + title: 'State' + }], + query: { + query: 'visible_in_html5_app_flag:1 AND portal_type:("Expense Record" OR "Expense Record Temp")', + select_list: ['doc_id', 'quantity', 'resource', + 'comment', 'date', 'portal_type', 'sync_flag'], + sort_on: [["doc_id", "descending"]] + } + }); + }); + }); + +}(window, RSVP, rJS)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml new file mode 100644 index 0000000000..5d67c6f8db --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_module_view.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_view.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_module_view.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record Module View JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.73</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39239.63448.21981</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472710255.6</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.46</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html new file mode 100644 index 0000000000..4cd0cdcf62 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.html @@ -0,0 +1,84 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Expense Record Module View Expense Record</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + + <script class="view-expense-record-template" type="text/x-handlebars-template"> + + <form class="view-expense-record-form"> + + <div class="ui-field-contain"> + <label data-i18n="State">State</label> + <div id="state">{{state}}</div> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Photo">Photo</label> + <input name="photo" type="file" accept="image/*" capture="camera"> + <canvas style="display:none" name="photo_data" /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Preview">Preview</label> + <img name="preview" style="width:300px" /> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Currency">Currency</label> + <select class="new-performed-task" name="resource" required> + <option value=""></option> + </select> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Total Price">Total Price</label> + <input type="number" name="quantity" value="{{quantity}}" step="0.01" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Input Date">Input Date</label> + <input type="date" name="date" value="{{date}}" required> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Comment">Comment</label> + <input type="text" name="comment" value="{{comment}}"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Sync Method">Sync Method</label> + <div> + <input type="radio" id="sync_flag_yes" name="sync_flag" value="1"> + <label for="sync_flag_yes" data-i18n="Ready To Sync">Ready To Sync</label> + <input type="radio" id="sync_flag_no" name="sync_flag" value=""> + <label for="sync_flag_no" data-i18n="Do Not Sync">Do Not Sync</label> + </div> + </div> + + <input data-inline="true" type="submit" name="save" value="Save" data-theme="b" data-i18n="[value]Save"> + <div data-role="popup" id="saveMessage" class="ui-content" data-theme="a" data-i18n="Saved changes">Saved changes</div> + + <div data-role="popup" name="large_preview" data-position-to="window" data-theme="a" data-overlay-theme="a" data-corners="false"><img></div> + + <input data-inline="true" type="button" name="create_new_version" value="Update Data" data-theme="b" data-i18n="[value]Update Data"> + + <input type="hidden" name="copy_of" value="{{copy_of}}"> + </form> + + </script> + + <script src="gadget_travel_expense_jio_expense_record_view.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml new file mode 100644 index 0000000000..19551a991e --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_view.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_view.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record View</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.63</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.40597.52922.27767</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472712482.93</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.5</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js new file mode 100644 index 0000000000..4349ba7bb8 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.js @@ -0,0 +1,308 @@ +/*globals window, rJS, Handlebars, RSVP*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".view-expense-record-template") + .innerHTML, + template = Handlebars.compile(source); + + + gadget_klass + .ready(function (g) { + g.props = {}; + g.options = null; + return g.getElement() + .push(function (element) { + g.props.element = element; + g.props.deferred = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("get", "jio_get") + .declareAcquiredMethod("put", "jio_put") + .declareAcquiredMethod("post", "jio_post") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod('jio_remove', 'jio_remove') + + .declareMethod("render", function (options) { + var gadget = this; + gadget.options = options; + return new RSVP.Queue() + .push(function (result_list) { + return gadget.translateHtml(template(options.doc)); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + + if (gadget.options.doc.photo_data){ + var preview = gadget.props.element.querySelector('img[name=preview]') + preview.src = gadget.options.doc.photo_data + var photo_data = gadget.props.element.querySelector("canvas[name='photo_data']") + var context = photo_data.getContext('2d'); + var imageObj = new Image(); + imageObj.onload = function() { + context.canvas.height = this.height; + context.canvas.width = this.width; + context.drawImage(this, 0, 0); + }; + imageObj.src = gadget.options.doc.photo_data; + } + + + if (gadget.options.jio_key.indexOf('expense_record_module/') == 0){ + var submit_button = gadget.props.element.querySelector("input[type=submit][name=save]"); + submit_button.parentNode.removeChild(submit_button); + $(gadget.props.element.querySelectorAll('input,textarea')).attr('readonly', true); + $(gadget.props.element.querySelectorAll('select,input[type=checkbox],input[type=radio],input[type=file]') + ).attr('disabled', true); + } + + if (gadget.options.jio_key.indexOf('expense_record_module/') != 0){ + var submit_button = gadget.props.element.querySelector("input[type=button][name=create_new_version]"); + if(submit_button){ + submit_button.parentNode.removeChild(submit_button); + } + } + + gadget.props.element.querySelector('#state').innerHTML = translateString(getWorkflowState(gadget.options.doc.portal_type, gadget.options.jio_key, gadget.options.doc.sync_flag)) + + return gadget.updateHeader({ + title: gadget.options.doc.doc_id + " " + (gadget.options.doc.record_revision || 1) + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + ///////////////////////////////////////// + // New version of the the Expense Record + ///////////////////////////////////////// + .declareService(function () { + var gadget = this, + cloned_doc, + current_doc, + new_id; + + if(gadget.props.element.querySelector('input[type=button][name=create_new_version]') == null){ + return; + } + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('input[type=button][name=create_new_version]'), + 'click', + false + ); + }) + .push(function () { + return gadget.get(gadget.options.jio_key); + }) + .push(function (result) { + current_doc = result; + cloned_doc = JSON.parse(JSON.stringify(result)); + + // Do not sync the cloned document + cloned_doc.copy_of = gadget.options.jio_key; + cloned_doc.visible_in_html5_app_flag = 1; + delete cloned_doc.sync_flag; + cloned_doc.portal_type = 'Expense Record Temp'; + cloned_doc.record_revision = (cloned_doc.record_revision || 1) + 1; + + current_doc.visible_in_html5_app_flag = 0; + + return gadget.post(cloned_doc); + }) + .push(function (id) { + new_id = id; + // Hide the document at the end in order to still view it in case of issue + // Better have 2 docs than none visible + return gadget.put(gadget.options.jio_key, current_doc); + }) + .push(function (response) { + return gadget.redirect({ + jio_key: new_id, + page: "view" + }); + }); + }) + + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('form.view-expense-record-form'), + 'submit', + false, + function (submit_event) { + return new RSVP.Queue() + .push(function () { + if (gadget.options.jio_key.indexOf('expense_record_module/') == 0){ + return; + } + var i, + doc = { + // XXX Hardcoded + parent_relative_url: "expense_record_module", + portal_type: "Expense Record", + doc_id: gadget.options.doc.doc_id, + visible_in_html5_app_flag: 1, + record_revision: (gadget.options.doc.record_revision || 1), + photo_data: gadget.options.doc['photo_data'], + }; + gadget.props.element.querySelector("input[type=submit]") + .disabled = true; + for (i = 0; i < submit_event.target.length; i += 1) { + // XXX Should check input type instead + if (submit_event.target[i].name && submit_event.target[i].type != "submit") { + if ((submit_event.target[i].type == "radio" || submit_event.target[i].type == "checkbox") && !submit_event.target[i].checked){ + continue + } + if (submit_event.target[i].name=="photo") { + if (submit_event.target[i].files.length > 0){ + var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]') + doc['photo_data'] = photo_data.toDataURL() + } + continue + } + doc[submit_event.target[i].name] = submit_event.target[i].value; + } + } + + if (doc.sync_flag != "1"){ + doc.portal_type = 'Expense Record Temp' // For to avoid sync + } + + $("#saveMessage").popup('open'); + return gadget.put(gadget.options.jio_key, doc); + }) + .push(function () { + gadget.props.element.querySelector("input[type=submit]").disabled = false; + }) + } + ) + }) + }) + + + ///////////////////////////////////////// + // Fill currencies + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function(){createResourceSelection(gadget, gadget.options.doc.resource)}) + }) + + ///////////////////////////////////////// + // Fill sync flag + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + if (gadget.options.doc.sync_flag == "1"){ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='1']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + }else{ + var element = gadget.props.element.querySelector("input[name='sync_flag'][value='']"); + element.setAttribute('checked', 'checked'); + $(element).checkboxradio('refresh'); + } + }) + }) + + + ///////////////////////////////////////// + // Photo changed. + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('input[name="photo"]'), + "change", + false, + function (evt) { + return new RSVP.Queue() + .push(function () { + // Wait for user to finish typing + return RSVP.delay(100); + }) + .push(function () { + var file = gadget.props.element.querySelector('input[name="photo"]').files[0]; + var photo_data = gadget.props.element.querySelector('canvas[name="photo_data"]'); + new MegaPixImage(file).render(photo_data, { width: 600 }, function(){gadget.props.element.querySelector('img[name="preview"]').src = photo_data.toDataURL();}); + }); + } + ); + }); + }) + + + ///////////////////////////////////////// + // Preview clicked. + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.props.element.querySelector('img[name="preview"]'), + "click", + false, + function (evt) { + return new RSVP.Queue() + .push(function () { + // Wait for user to finish typing + return RSVP.delay(100); + }) + .push(function () { + $('div[name=large_preview]').popup('open', 0, 0, 'slidedown', 'window'); + $('div[name=large_preview] img').attr('src', gadget.props.element.querySelector('canvas[name=photo_data]').toDataURL()); + }); + } + ); + }); + }); + + +}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml new file mode 100644 index 0000000000..2d938c9865 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_jio_expense_record_view.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_view.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_jio_expense_record_view.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record View JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.72</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.40561.39850.11758</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472710379.32</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.54</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html new file mode 100644 index 0000000000..6f4d12b29d --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.html @@ -0,0 +1,39 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Travel Expense App Login Page</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="handlebars.js"></script> + <script src="gadget_global.js" ></script> + + <script id="page-template" type="text/x-handlebars-template"> + <div class="ui-grid-b ui-responsive"> + <div class="ui-block-a"></div> + <div class="ui-block-b"> + <form class="login-form"> + <div class="ui-field-contain"> + <label data-i18n="Login">Login</label> + <input type="text" name="jid" value="" required> + </div> + <div class="ui-field-contain"> + <label data-i18n="Password">Password</label> + <input type="password" name="passwd" value="" required> + </div> + <input data-inline="true" type="submit" data-i18n="[value]Log In" value="Log In" data-theme="b"> + </form> + </div> + <div class="ui-block-c"></div> + </div> + </script> + + <script src="gadget_travel_expense_page_login.js"></script> + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml new file mode 100644 index 0000000000..85d16be51f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_login.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_login.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Login Page</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.61</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39336.50803.28296</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636811.16</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.57</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js new file mode 100644 index 0000000000..5bad6fc4c7 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.js @@ -0,0 +1,70 @@ +/*globals window, document, RSVP, rJS, promiseEventListener, Handlebars*/ +/*jslint indent: 2, maxlen: 80, nomen: true*/ +(function (window, document, RSVP, rJS, promiseEventListener, Handlebars) { + "use strict"; + + ///////////////////////////////////////////////////////////////// + // templates + ///////////////////////////////////////////////////////////////// + var gadget_klass = rJS(window), + templater = gadget_klass.__template_element, + + template = Handlebars.compile( + templater.getElementById("page-template").innerHTML + ); + + gadget_klass + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareMethod("render", function () { + var gadget = this; + return gadget.updateHeader({ + title: "Connect" + }) + .push(function () { + return gadget.translateHtml(template()); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + }); + }) + + .declareAcquiredMethod("redirect", "redirect") + .declareService(function () { + var gadget = this; + return new RSVP.Queue() + .push(function () { + gadget.props.element.querySelector("input[type=text]") + .focus(); + return promiseEventListener( + gadget.props.element.querySelector('form.login-form'), + 'submit', + false + ); + }) + .push(function (evt) { + gadget.props.element.querySelector("input[type=submit]") + .disabled = true; + var login = evt.target.elements[0].value, + passwd = evt.target.elements[1].value; + Cookies.remove('__ac'); + Cookies.remove('__ac', {path:''}); + Cookies.remove('__ac', {path:'/'}); + Cookies.remove('jid'); + Cookies.remove('jid', {path:''}); + Cookies.remove('jid', {path:'/'}); + Cookies.set('__ac', window.btoa(login + ":" + passwd), {expires:36500, path:'/', secure:true}) + Cookies.set('jid', login, {expires:36500, path:'/', secure:true}) + return gadget.redirect({}); + }); + }); + +}(window, document, RSVP, rJS, promiseEventListener, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml new file mode 100644 index 0000000000..360c14b294 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_login.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_login.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_login.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Login Page JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.7</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39239.63448.21981</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636531.87</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.61</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html new file mode 100644 index 0000000000..715d2a2426 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.html @@ -0,0 +1,59 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Travel Expense App Setting</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="gadget_global.js" ></script> + <script src="handlebars.js"></script> + + <script class="view-setting-template" type="text/x-handlebars-template"> + <div class="ui-grid-b ui-responsive"> + <div class="ui-block-a"></div> + <div class="ui-block-b"> + + <form class="view-setting-form"> + + <div class="ui-field-contain"> + <label data-i18n="Login">Login</label> + <input type="text" name="jid" value="{{jid}}"> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Password">Password</label> + <input type="password" name="passwd" value=""> + </div> + + <div class="ui-field-contain"> + <label data-i18n="Language">Language</label> + <div> + <input type="radio" id="language_en" name="language" value="en"> + <label for="language_en" data-i18n="English">English</label> + </div> + </div> + + <input data-inline="true" type="submit" name="save" value="Save" data-theme="b" data-i18n="[value]Save"> + + </form> + + <form class="view-advanced-setting-form"> + <input data-inline="true" type="button" name="reset_database" value="Reset Database" data-theme="b" data-i18n="[value]Reset Database"> + <input data-inline="true" type="button" name="update_application" value="Update Application" data-theme="b" data-i18n="[value]Update Application"> + </form> + + </div> + <div class="ui-block-c"></div> + </div> + </script> + + <script src="gadget_travel_expense_page_setting.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml new file mode 100644 index 0000000000..ac1669cd72 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_setting.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_setting.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Setting Page</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.6</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39337.6885.36386</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636845.66</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.65</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js new file mode 100644 index 0000000000..1b657deba1 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.js @@ -0,0 +1,299 @@ +/*globals window, rJS, Handlebars, RSVP*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, $) { + "use strict"; + + var gadget_klass = rJS(window), + source = gadget_klass.__template_element + .querySelector(".view-setting-template") + .innerHTML, + template = Handlebars.compile(source); + + var update_check_flag = false; + + gadget_klass + .ready(function (g) { + g.props = {}; + g.options = null; + return g.getElement() + .push(function (element) { + g.props.element = element; + g.props.deferred = RSVP.defer(); + }); + }) + + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("get", "jio_get") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod('allDocs', 'jio_allDocs') + + .declareMethod("render", function (options) { + var gadget = this; + gadget.options = options; + return new RSVP.Queue() + .push(function (result_list) { + return gadget.translateHtml(template({jid:Cookies.get('jid')})); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + var element = gadget.props.element.querySelector("input[type=radio][value="+Cookies.get('language')+"]"); + if(element){ + element.setAttribute('checked', 'checked'); + } + return gadget.updateHeader({ + title: "Setting" + }); + }) + .push(function () { + gadget.props.deferred.resolve(); + }); + }) + + + ///////////////////////////////////////// + // Form submit + ///////////////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return promiseEventListener( + gadget.props.element.querySelector('form.view-setting-form'), + 'submit', + false + ); + }) + .push(function (submit_event) { + gadget.props.element.querySelector("input[type=submit]").disabled = true; + var checked_element = gadget.props.element.querySelector("input[type=radio]:checked"); + if (checked_element != null){ + var language = checked_element.value; + if (language){ + Cookies.set('language', language, {expires:36500, secure:true}); + } + } + var login = gadget.props.element.querySelector("input[name=jid]").value; + var passwd = gadget.props.element.querySelector("input[name=passwd]").value; + if(login){ + Cookies.remove('jid'); + Cookies.remove('jid', {path:''}); + Cookies.remove('jid', {path:'/'}); + Cookies.set('jid', login, {expires:36500, path:'/', secure:true}) + } + if(login && passwd){ + Cookies.remove('__ac'); + Cookies.remove('__ac', {path:''}); + Cookies.remove('__ac', {path:'/'}); + Cookies.set('__ac', window.btoa(login + ":" + passwd), {expires:36500, path:'/', secure:true}) + } + location.reload(); + }) + .push(function () { + }); + }) + + + ////////////////////////////// + // Reset Database + ////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return loopEventListener( + gadget.props.element.querySelector('input[type=button][name=reset_database]'), + 'click', + false, + function (click_event) { + return new RSVP.Queue() + .push(function () { + indexedDB.deleteDatabase("jio:erp5js_travel_expense_"+Cookies.get('jid')) + alert('Deleted'); + }) + } + ); + }) + }) + + + ////////////////////////////// + // Update Application + ////////////////////////////// + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return gadget.props.deferred.promise; + }) + .push(function () { + + return loopEventListener( + gadget.props.element.querySelector('input[type=button][name=update_application]'), + 'click', + false, + function (click_event) { + return new RSVP.Queue() + .push(function () { + alert(translateString('HTML5 App Update Started')); + update_check_flag = true; + if(window.applicationCache.status == window.applicationCache.UNCACHED){ + location.reload(); + }else if(window.applicationCache.status == window.applicationCache.IDLE){ + try{ + window.applicationCache.update(); + }catch(error){ + location.reload(); + } + } + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'cached', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + alert(translateString('HTML5 App Update Finished')); + location.reload(); + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'updateready', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + alert(translateString('HTML5 App Update Finished')); + location.reload(); + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'error', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + window.applicationCache.update(); + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return new RSVP.Queue() + .push(function(){ + if(window.applicationCache.status == window.applicationCache.DOWNLOADING){ + alert(translateString('Downloading New Version Of HTML5 App')); + } + }) + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'downloading', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + alert(translateString('Downloading New Version Of HTML5 App')); + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'progress', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + event.loaded / event.total; + }) + } + ); + }) + }) + .declareService(function(){ + var gadget = this; + return new RSVP.Queue() + .push(function(){ + return gadget.props.deferred.promise; + }) + .push(function(){ + return loopEventListener( + window.applicationCache, + 'noupdate', + false, + function(event){ + return new RSVP.Queue() + .push(function(){ + if(update_check_flag == true){ + alert(translateString('No HTML5 App Update Found')); + update_check_flag = false; + } + }) + } + ); + }) + }) + + +}(window, document, RSVP, rJS, Handlebars, promiseEventListener, loopEventListener, jQuery)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml new file mode 100644 index 0000000000..39c1cfa349 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_setting.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_setting.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_setting.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Setting Page JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.69</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39330.25323.1006</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636485.75</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.68</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html new file mode 100644 index 0000000000..3dde6aaf1b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.html @@ -0,0 +1,32 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Travel Expense App Sync Page</title> + + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="handlebars.js"></script> + <script src="gadget_global.js" ></script> + + <script id="page-template" type="text/x-handlebars-template"> + <div class="ui-grid-b ui-responsive"> + <div class="ui-block-a"></div> + <div class="ui-block-b"> + <form class="synchro-form"> + <input data-inline="true" type="submit" value="Launch Synchronisation" data-i18n="[value]Launch Synchronisation" data-theme="b"> + </form> + </div> + <div class="ui-block-c"></div> + </div> + </script> + + <script src="gadget_travel_expense_page_sync.js"></script> + + </head> + + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml new file mode 100644 index 0000000000..46c7b98748 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.html.xml @@ -0,0 +1,336 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_sync.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_sync.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Sync Page</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.59</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.40584.15421.43793</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472711821.54</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.72</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js new file mode 100644 index 0000000000..c53488692b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.js @@ -0,0 +1,65 @@ +/*globals window, RSVP, rJS, promiseEventListener, Handlebars*/ +/*jslint indent: 2, maxlen: 80, nomen: true*/ +(function (window, RSVP, rJS, promiseEventListener, Handlebars) { + "use strict"; + var gadget_klass = rJS(window), + templater = gadget_klass.__template_element, + + template = Handlebars.compile( + templater.getElementById("page-template").innerHTML + ); + + gadget_klass + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + g.props.element = element; + }); + }) + + .declareAcquiredMethod('allDocs', 'jio_allDocs') + .declareAcquiredMethod("updateHeader", "updateHeader") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareMethod("render", function () { + var gadget = this; + return gadget.updateHeader({ + title: "Synchronisation" + }) + .push(function () { + return gadget.translateHtml(template()); + }) + .push(function (html) { + gadget.props.element.innerHTML = html; + }); + }) + + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod("repair", "jio_repair") + .declareAcquiredMethod("post", "jio_post") + + .declareService(function () { + var gadget = this; + + return new RSVP.Queue() + .push(function () { + return promiseEventListener( + gadget.props.element.querySelector('form.synchro-form'), + 'submit', + false + ); + }) + .push(function () { + gadget.props.element.querySelector("input[type=submit]") + .disabled = true; + }) + .push(function () { + return gadget.repair(); + }) + .push(function () { + alert(translateString('Synchronisation Finished')); + return; + }); + }); + +}(window, RSVP, rJS, promiseEventListener, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml new file mode 100644 index 0000000000..095293bccc --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_page_sync.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_page_sync.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_page_sync.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Sync Page JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.67</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.78</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.76</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml new file mode 100644 index 0000000000..8ae187234d --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.appcache.xml @@ -0,0 +1,379 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Manifest" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_record_application.appcache</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_record_application.appcache</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Manifest</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>text_content</string> </key> + <value> <string>CACHE MANIFEST\n +# generated on Thu, 15 Oct 2015 17:15:51 +0800\n +# XXX + fonts ....\n +# images/ajax-loader.gif\n +CACHE:\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.woff?v=4.2.0\n +https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0\n +gadget_erp5.css\n +gadget_global.js\n +gadget_jio.html\n +gadget_jio.js\n +travel_expense_app.css\n +travel_expense_js_cookie.js\n +travel_expense_utility.js\n +megapix-image.js\n +handlebars.js\n +i18next.js\n +jiodev.js\n +travel_expense_jiodev_renderjs_storage.js\n +jquery.js\n +jquerymobile.css\n +jquerymobile.js\n +travel_expense_renderjs.js\n +rsvp.js\n +gadget_travel_expense_jio.html\n +gadget_travel_expense_jio.js\n +gadget_travel_expense_jio_expense_record_module_add_expense_record.html\n +gadget_travel_expense_jio_expense_record_module_add_expense_record.js\n +gadget_travel_expense_jio_expense_record_module_view.html\n +gadget_travel_expense_jio_expense_record_module_view.js\n +gadget_travel_expense_jio_expense_record_view.html\n +gadget_travel_expense_jio_expense_record_view.js\n +gadget_travel_expense_page_login.html\n +gadget_travel_expense_page_login.js\n +gadget_travel_expense_page_setting.html\n +gadget_travel_expense_page_setting.js\n +gadget_travel_expense_page_sync.html\n +gadget_travel_expense_page_sync.js\n +gadget_travel_expense_record_application.html\n +gadget_travel_expense_record_application.js\n +gadget_travel_expense_standalone_jio.html\n +gadget_travel_expense_standalone_jio.js\n +gadget_travel_expense_translation.html\n +gadget_travel_expense_translation.js\n +gadget_travel_expense_translation_data.js\n +gadget_travel_expense_widget_listbox.html\n +gadget_travel_expense_widget_listbox.js\n +NETWORK:\n +*</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Application AppCache</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472527126.62</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37691.19909.55057</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540424.17</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472527025.1</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html new file mode 100644 index 0000000000..532ead1014 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.html @@ -0,0 +1,81 @@ +<!doctype html> +<html manifest="gadget_travel_expense_record_application.appcache"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <title>Travel Expense App</title> + + <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> + <link rel="stylesheet" href="jquerymobile.css"> + <link rel="stylesheet" href="gadget_erp5.css"> + <link rel="stylesheet" href="travel_expense_app.css"> + + <script src="jquery.js"></script> + <script src="jquerymobile.js"></script> + <script src="rsvp.js"></script> + <script src="travel_expense_renderjs.js"></script> + <script src="handlebars.js"></script> + <script src="gadget_global.js" ></script> + <script src="gadget_travel_expense_record_application.js"></script> + <script src="travel_expense_utility.js"></script> + <script src="megapix-image.js"></script> + + <script class="edit-template" type="text/x-handlebars-template"> + <h1 class="ui-title">{{title}}</h1> + <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right"> + <div class="ui-controlgroup-controls"> + <form class="edit-form"> + <button type="submit" class="responsive ui-btn ui-first-child ui-last-child ">{{right_url}}</button> + </form> + </div> + </div> + </script> + + <script class="header-template" type="text/x-handlebars-template"> + <h1 class="ui-title">{{title}}</h1> + {{#if right_url}} + <a href="{{right_url}}" class="ui-btn-right ui-btn ui-btn-inline ui-mini ui-corner-all">{{right_title}}</a> + {{/if}} + </script> + + <script class="sync-loader-template" type="text/x-handlebars-template"> + <h1 class="ui-title">{{title}}</h1> + <a role="button" href="" class="responsive ui-btn ui-btn-right ui-icon-spinner ui-btn-icon-left ui-first-child ui-last-child ui-disabled ui-icon-spin">{{loading_title}}</a> + </script> + + <script class="panel-template" type="text/x-handlebars-template"> + <div class="ui-content"> + <ul data-role="listview" class="ui-listview"> + <li><a href="#jio_key=expense_record_module&page=view" data-i18n="Expense Record">Expense Record</a></li> + <li><a href="#page=sync" data-i18n="Synchronisation">Synchronisation</a></li> + <li class="ui-last-child"><a href="#page=setting" data-i18n="Setting">Setting</a></li> + </ul> + </div> + </script> + </head> + + <body> + <div data-role="page"> + + <div data-role="panel" id="mypanel" data-position="left" data-display="overlay" data-theme="d"> + </div> + + <div data-role="header" class="gadget-header" data-theme="a"> + <a href="#mypanel" class="ui-btn-left ui-btn ui-btn-inline ui-mini ui-corner-all"></a> + <div><h1 class="ui-title"></h1></div> + </div> + + <div data-gadget-url="gadget_travel_expense_standalone_jio.html" + data-gadget-scope="jio_gadget" + data-gadget-sandbox="public"></div> + + <div data-gadget-url="gadget_travel_expense_translation.html" + data-gadget-scope="translation_gadget" + data-gadget-sandbox="public"></div> + + <div role="main" class="ui-content gadget-content"></div> + </div> + + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml new file mode 100644 index 0000000000..1d4a0fc174 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.html.xml @@ -0,0 +1,338 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_record_application.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Starting Point</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_record_application.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>text_content_substitution_mapping_method_id</string> </key> + <value> <string>WebPage_getRenderJSSubstitutionMappingDict</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Application</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.57</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39239.61932.30958</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636742.13</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.79</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js new file mode 100644 index 0000000000..d7c14ee980 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.js @@ -0,0 +1,587 @@ +/*globals window, document, RSVP, rJS, Handlebars, + loopEventListener, jQuery, URI, location, XMLHttpRequest, console*/ +/*jslint indent: 2, maxlen: 80*/ +(function (window, document, RSVP, rJS, Handlebars, loopEventListener, + $, XMLHttpRequest, location, console) { + "use strict"; + + $.mobile.ajaxEnabled = false; + $.mobile.linkBindingEnabled = false; + $.mobile.hashListeningEnabled = false; + $.mobile.pushStateEnabled = false; + + var hateoas_url = "hateoas/", + MAIN_SCOPE = "m", + MAIN_PAGE_PREFIX = "gadget_travel_expense_"; + + function updateHeader(gadget) { + if (gadget.props.header_argument_list === undefined) { + gadget.props.header_argument_list = {}; + } + if (gadget.props.loading_counter === 0) { + gadget.props.header_element.innerHTML = + gadget.props.header_template( + gadget.props.header_argument_list + ); + } else { + gadget.props.header_argument_list.loading_title = + gadget.props.loading_title; + gadget.props.header_element.innerHTML = + gadget.props.sync_loader_template( + gadget.props.header_argument_list + ); + } + } + + function increaseLoadingCounter(gadget) { + return new RSVP.Queue() + .push(function () { + gadget.props.loading_counter += 1; + if (gadget.props.loading_counter === 1) { + return updateHeader(gadget); + } + }); + } + + function decreaseLoadingCounter(gadget) { + return new RSVP.Queue() + .push(function () { + gadget.props.loading_counter -= 1; + if (gadget.props.loading_counter < 0) { + gadget.props.loading_counter = 0; + // throw new Error("Unexpected negative loading counter"); + } + if (gadget.props.loading_counter === 0) { + return updateHeader(gadget); + } + }); + } + + function callJioGadget(gadget, method, param_list) { + var called = false; + var jiogadget = null; + var repair_retry_count_max = 10; + var repair_retry_count = 0; + + function __callJioGadget(){ + return new RSVP.Queue() + .push(function () { + called = true; + return increaseLoadingCounter(gadget); + }) + .push(function () { + return gadget.getDeclaredGadget("jio_gadget"); + }) + .push(function (jio_gadget) { + jiogadget = jio_gadget; + return jio_gadget[method].apply(jio_gadget, param_list); + }) + .push(function (result) { + return decreaseLoadingCounter(gadget) + .push(function () { + return result; + }); + }, function (error) { + if (method == "repair"){ + repair_retry_count++; + console.log('sync retrying '+repair_retry_count) + if (repair_retry_count < repair_retry_count_max){ + return __callJioGadget(); + } + } + if (called) { + return decreaseLoadingCounter(gadget) + .push(function () { + throw error; + }); + } + throw error; + }); + } + return __callJioGadget(); + } + + function renderMainGadget(gadget, url, options) { + return gadget.declareGadget(url, { + scope: MAIN_SCOPE + }) + .push(function (page_gadget) { + var sub_options = options[MAIN_SCOPE] || {}; + delete options[MAIN_SCOPE]; + if (page_gadget.render === undefined) { + return [page_gadget]; + } + return RSVP.all([ + page_gadget, + page_gadget.render(sub_options) + ]); + }) + .push(function (all_result) { + return all_result[0]; + }); + } + + function renderPage(gadget, options) { + return renderMainGadget(gadget, + MAIN_PAGE_PREFIX + "page_" + options.page + ".html", + options); + } + + function renderJioPage(gadget, options) { + return gadget.getDeclaredGadget("jio_gadget") + .push(function (jio_gadget) { + return jio_gadget.get(options.jio_key); + }) + .push(undefined, function (error) { + // User has to initialize the app on the first access. + if ((error !== undefined) && (error.status_code === 404)) { + if (/_module$/.test(options.jio_key)) { + return gadget.aq_pleasePublishMyState({page: "sync"}) + .push(gadget.pleaseRedirectMyHash.bind(gadget)); + } + } + throw error; + }) + .push(function (doc) { + var sub_options = {}; + sub_options[MAIN_SCOPE] = { + doc: doc, + jio_key: options.jio_key, + search: options.search, + begin_from: options.begin_from + }; + var base_portal_type = doc.portal_type.toLowerCase().replace(/\s/g, "_") + if (base_portal_type.search(/_temp$/) >= 0){ + base_portal_type = base_portal_type.substr(0, base_portal_type.length-5)//Remove "_temp" + } + return renderMainGadget( + gadget, + MAIN_PAGE_PREFIX + "jio_" + + base_portal_type + + "_" + options.page + ".html", + sub_options + ); + }); + } + + function displayErrorContent(gadget, error) { + // Do not break the application in case of errors. + // Display it to the user for now, + // and allow user to go back to the frontpage + var error_text = ""; + if ((error !== undefined) && (error.target !== undefined) && (error.target.status === 401)) { + // Redirect to the login view + return gadget.aq_pleasePublishMyState({page: "login"}) + .push(gadget.pleaseRedirectMyHash.bind(gadget)); + } + if (error instanceof RSVP.CancellationError) { + return; + } + + if (error instanceof XMLHttpRequest) { + error_text = error.toString() + " " + + error.status + " " + + error.statusText; + } else if (error instanceof Error) { + error_text = error.toString(); + } else { + error_text = JSON.stringify(error); + } + + console.error(error); + if (error instanceof Error) { + console.error(error.stack); + } + // XXX Improve error rendering + gadget.props.content_element.innerHTML = "<br/><br/><br/><pre></pre>"; + gadget.props.content_element.querySelector('pre').textContent = + "Error: " + error_text; + // XXX Notify error + } + + function displayError(gadget, error) { + return new RSVP.Queue() + .push(function () { + return displayErrorContent(gadget, error); + }) + .push(function () { + return gadget.dropGadget("pg") + .push(undefined, function () { + // Do not crash the app if the pg gadget in not defined + // ie, keep the original error on screen + return; + }); + }); + } + + + ////////////////////////////////////////// + // History Support with Jio + ////////////////////////////////////////// + + function createJio(gadget) { + return gadget.getDeclaredGadget("jio_gadget") + .push(function (jio_gadget) { +/* + return jio_gadget.createJio({ + type: "erp5", + url: (new URI(hateoas_url)).absoluteTo(location.href).toString(), + default_view_reference: "jio_view" + }); +*/ + return jio_gadget.createJio({ + type: "replicate", + // XXX This drop the signature lists... + query: { + query: 'portal_type:( ' + + '"Expense Record Module" ' + + 'OR "Expense Record" ' + + ') ' + + 'OR (portal_type:"Currency" AND validation_state:"validated") ' + + 'OR (portal_type:"Category" AND ( relative_url:"quantity_unit/%" ' + + ' ))', + limit: [0, 1234567890] + }, + use_remote_post: true, + conflict_handling: 2, + check_local_modification: false, + check_local_creation: true, + check_local_deletion: false, + check_remote_modification: false, + check_remote_creation: true, + check_remote_deletion: true, + local_sub_storage: { + type: "query", + sub_storage: { + type: "uuid", + sub_storage: { + type: "indexeddb", + database: "erp5js_travel_expense_"+Cookies.get('jid') + } + } + }, + remote_sub_storage: { + type: "erp5", + url: (new URI(hateoas_url)).absoluteTo(location.href).toString(), + default_view_reference: "jio_view" + } + }); + + }); + } + + ////////////////////////////////////////// + // Page rendering + ////////////////////////////////////////// + function redirectToDefaultPage(gadget) { + // Redirect to expected page by default + return gadget.aq_pleasePublishMyState({ + page: "setting" + }) + .push(gadget.pleaseRedirectMyHash.bind(gadget)); + } + + rJS(window) + .ready(function (g) { + g.props = {}; + return g.getElement() + .push(function (element) { + $(element).trigger("create"); + g.props.loading_counter = 0; + g.props.element = element; + g.props.header_element = element.querySelector('.gadget-header') + .querySelector('div'); + g.props.content_element = element.querySelector('.gadget-content'); + g.props.panel_element = element.querySelector('#mypanel'); + + g.props.edit_template = Handlebars.compile( + document.querySelector(".edit-template").innerHTML + ); + g.props.header_template = Handlebars.compile( + document.querySelector(".header-template").innerHTML + ); + g.props.sync_loader_template = Handlebars.compile( + document.querySelector(".sync-loader-template").innerHTML + ); + g.props.panel_template = Handlebars.compile( + document.querySelector(".panel-template").innerHTML + ); + }); + }) + // Configure jIO storage + .ready(function (g) { + return createJio(g); + }) + .ready(function (g) { + return g.getDeclaredGadget('translation_gadget') + .push(function (translation_gadget) { + return RSVP.all([ + translation_gadget.translate('Loading'), + translation_gadget.translate('Menu'), + translation_gadget.translateHtml(g.props.panel_template()) + ]); + }) + .push(function (string_list) { + g.props.loading_title = string_list[0]; + g.props.header_element.parentElement.querySelector('a').textContent = + string_list[1]; + g.props.panel_element.innerHTML = string_list[2]; + $(g.props.panel_element).enhanceWithin(); + }); + }) + + ////////////////////////////////////////// + // Acquired method + ////////////////////////////////////////// + .declareAcquiredMethod('pleaseRedirectMyHash', 'pleaseRedirectMyHash') + + ////////////////////////////////////////// + // Allow Acquisition + ////////////////////////////////////////// + .allowPublicAcquisition("translateHtml", function (argument_list) { + return this.getDeclaredGadget("translation_gadget") + .push(function (translation_gadget) { + return translation_gadget.translateHtml(argument_list[0]); + }); + }) + .allowPublicAcquisition("translate", function (argument_list) { + return this.getDeclaredGadget("translation_gadget") + .push(function (translation_gadget) { + return translation_gadget.translate(argument_list[0]); + }); + }) + .allowPublicAcquisition("redirect", function (param_list) { + var gadget = this; + return gadget.aq_pleasePublishMyState.apply(gadget, param_list) + .push(gadget.pleaseRedirectMyHash.bind(gadget)); + }) + .allowPublicAcquisition("getUrlFor", function (param_list) { + return this.aq_pleasePublishMyState.apply(this, param_list); + }) + .allowPublicAcquisition("updateHeader", function (param_list) { + var gadget = this; + return this.getDeclaredGadget("translation_gadget") + .push(function (translation_gadget) { + var promise_list = []; + gadget.props.header_argument_list = param_list[0]; + + promise_list.push(translation_gadget.translate( + gadget.props.header_argument_list.title + )); + if (gadget.props.header_argument_list.hasOwnProperty('right_title')) { + promise_list.push(translation_gadget.translate( + gadget.props.header_argument_list.right_title + )); + } + return RSVP.all(promise_list); + }) + .push(function (result_list) { + gadget.props.header_argument_list.title = result_list[0]; + if (result_list.length === 2) { + gadget.props.header_argument_list.right_title = result_list[1]; + } + }); + }) + .allowPublicAcquisition("jio_allDocs", function (param_list) { + return callJioGadget(this, "allDocs", param_list); + }) + .allowPublicAcquisition("jio_remove", function (param_list) { + return callJioGadget(this, "remove", param_list); + }) + .allowPublicAcquisition("jio_post", function (param_list) { + return callJioGadget(this, "post", param_list); + }) + .allowPublicAcquisition("jio_put", function (param_list) { + return callJioGadget(this, "put", param_list); + }) + .allowPublicAcquisition("jio_get", function (param_list) { + return callJioGadget(this, "get", param_list); + }) + .allowPublicAcquisition("jio_repair", function (param_list) { + return callJioGadget(this, "repair", param_list); + }) + ///////////////////////////////////////////////////////////////// + // declared methods + ///////////////////////////////////////////////////////////////// + // Render the page + .declareMethod('render', function (options) { + var gadget = this; + + gadget.props.options = options; + // Reinitialize the loading counter + gadget.props.loading_counter = 0; + return new RSVP.Queue() + .push(function () { + return increaseLoadingCounter(gadget); + }) + .push(function () { + $("#mypanel").panel("close"); + // By default, init the header options to be empty + // (ERP5 title by default + sidebar) + gadget.props.header_argument_list = [{ + title: gadget.props.application_title || "ERP5" + }]; + + if (options.jio_key === undefined) { + if (options.page === undefined) { + redirectToDefaultPage(gadget); + } else { + return renderPage(gadget, options); + } + } else { + return renderJioPage(gadget, options); + } + }) + + .push(function (main_gadget) { + var input; + // Append loaded gadget in the page + if (main_gadget !== undefined) { + return main_gadget.getElement() + .push(function (fragment) { + var element = gadget.props.content_element, + content_container = document.createElement("div"); + content_container.className = "ui-content " + + (gadget.props.sub_header_class || ""); + // reset subheader indicator + delete gadget.props.sub_header_class; + + // go to the top of the page + window.scrollTo(0, 0); + + updateHeader(gadget); + + // Clear first to DOM, append after to reduce flickering/manip + while (element.firstChild) { + element.removeChild(element.firstChild); + } + content_container.appendChild(fragment); + element.appendChild(content_container); + + $(element).trigger("create"); + + input = element.querySelector("input"); + if (input !== null) { + input.focus(); + input.select(); + } + // XXX Drop notification + // return header_gadget.notifyLoaded(); + }); + } + }) + .push(function () { + return decreaseLoadingCounter(gadget); + }, function (error) { + return decreaseLoadingCounter(gadget) + .push(function () { + throw error; + }); + }) + .push(undefined, function (error) { + return displayError(gadget, error); + }); + }) + + ///////////////////////////////// + // Handle sub gadgets services + ///////////////////////////////// + .allowPublicAcquisition('reportServiceError', function (param_list, + gadget_scope) { + if (gadget_scope === undefined) { + // don't fail in case of dropped subgadget (like previous page) + return; + } + return displayError(this, param_list[0]); + }) + + .declareService(function () { + //////////////////////////////////// + // Form submit listening. Prevent browser to automatically + // handle the form submit in case of a bug + //////////////////////////////////// + var gadget = this; + + function catchFormSubmit() { + return displayError(gadget, new Error("Unexpected form submit")); + } + + // Listen to form submit + return loopEventListener( + gadget.props.element, + 'submit', + false, + catchFormSubmit + ); + }); +/* + .declareService(function () { + //////////////////////////////////// + // Appcache handling + //////////////////////////////////// + var gadget = this, + appcache = window.applicationCache, + // Wait 5 seconds by default + delay = 5000, + increase = 0, + promise; + + function handleCacheError(error) { + console.info('cache manifest update failed...'); + console.log(appcache.status); + console.log(error); + return new RSVP.Queue() + .push(function () { + // Increase delay after each try, to prevent killing the browser bandwith + // 5 seconds, 10, 30, 2 minutes, 10 minutes, 1 hour... + increase += 1; + delay = delay * increase; + return RSVP.delay(delay); + }) + .push(function () { + appcache.update(); + }); + } + + // Listen to form submit + promise = loopEventListener( + appcache, + 'error', + false, + handleCacheError + ); + + switch (appcache.status) { + case appcache.UNCACHED: + // UNCACHED == 0 + console.log('UNCACHED'); + // XXX reload needed + break; + case appcache.IDLE: // IDLE == 1 + console.log( 'IDLE'); + appcache.update(); + break; + case appcache.CHECKING: // CHECKING == 2 + console.log( 'CHECKING'); + break; + case appcache.DOWNLOADING: // DOWNLOADING == 3 + console.log( 'DOWNLOADING'); + break; + case appcache.UPDATEREADY: // UPDATEREADY == 4 + console.log( 'UPDATEREADY'); + break; + case appcache.OBSOLETE: // OBSOLETE == 5 + console.log( 'OBSOLETE'); + appcache.update(); + break; + default: + console.log( 'UKNOWN CACHE STATUS'); + break; +}; +// appcache.update(); + return promise; + }); +*/ + +}(window, document, RSVP, rJS, Handlebars, loopEventListener, jQuery, + XMLHttpRequest, location, console)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml new file mode 100644 index 0000000000..8754994175 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_record_application.js.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_record_application.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_record_application.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Application JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.66</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37743.37390.17152</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472541186.51</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.83</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html new file mode 100644 index 0000000000..518e8df842 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>Jio Gadget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="travel_expense_renderjs.js" type="text/javascript"></script> + + <script src="jiodev.js" type="text/javascript"></script> + <script src="travel_expense_jiodev_renderjs_storage.js" type="text/javascript"></script> + + <!-- custom script --> + <script src="gadget_travel_expense_standalone_jio.js" type="text/javascript"></script> + + </head> + <body> + </body> +</html> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml new file mode 100644 index 0000000000..25f1236eef --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.html.xml @@ -0,0 +1,322 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_standalone_jio.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Jio access</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_standalone_jio.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense standalone Jio Gadget</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.55</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37691.41606.22220</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540564.99</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.88</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js new file mode 100644 index 0000000000..f00948c023 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.js @@ -0,0 +1,77 @@ +/*global window, rJS, jIO, FormData */ +/*jslint indent: 2, maxerr: 3 */ +(function (window, rJS, jIO) { + "use strict"; + + rJS(window) + + .ready(function (gadget) { + // Initialize the gadget local parameters + gadget.state_parameter_dict = {}; + }) + + .declareMethod('createJio', function (jio_options) { + this.state_parameter_dict.jio_storage = jIO.createJIO(jio_options); + }) + .declareMethod('allDocs', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.allDocs.apply(storage, arguments); + }) + .declareMethod('allAttachments', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.allAttachments.apply(storage, arguments); + }) + .declareMethod('get', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.get.apply(storage, arguments); + }) + .declareMethod('put', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.put.apply(storage, arguments); + }) + .declareMethod('post', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.post.apply(storage, arguments); + }) + .declareMethod('remove', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.remove.apply(storage, arguments); + }) + .declareMethod('getAttachment', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.getAttachment.apply(storage, arguments); + }) + .declareMethod('putAttachment', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.putAttachment.apply(storage, arguments); + }) + .declareMethod('removeAttachment', function () { + var storage = this.state_parameter_dict.jio_storage; + return storage.removeAttachment.apply(storage, arguments); + }) + .declareMethod('repair', function () { + var storage = this.state_parameter_dict.jio_storage, + argument_list = arguments; + + return storage.allDocs({ + query: 'portal_type:("Organisation" OR "Storage Node" OR "Product" OR "Currency" OR "Category")', + }) + .push(function(result) { + var promise_list = [], + i; + for (i=0; i < result.data.total_rows; i+=1) { + // Remove local documents + promise_list.push(storage.remove(result.data.rows[i].id)); + // Remove synchronization signature, so that document is marked as never synced + // XXX Of course, this is a hack, but, until a cleaner solution is found, it is done like this + promise_list.push(storage.__storage._signature_sub_storage.remove(result.data.rows[i].id)); + } + return RSVP.all(promise_list); + }) + .push(function () { + return storage.repair.apply(storage, argument_list); + }); + + }); + +}(window, rJS, jIO)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml new file mode 100644 index 0000000000..5e05ac6769 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_standalone_jio.js.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_standalone_jio.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_standalone_jio.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Standalone Jio Gadget JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.65</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.93</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.91</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html new file mode 100644 index 0000000000..b870bf454b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>Translation Gadget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="travel_expense_renderjs.js" type="text/javascript"></script> + + <script src="i18next.js"></script> + <script src="travel_expense_js_cookie.js"></script> + <!-- custom script --> + <script src="gadget_global.js"></script> + <script src="gadget_travel_expense_translation_data.js" type="text/javascript"></script> + <script src="gadget_travel_expense_translation.js" type="text/javascript"></script> + + </head> + <body> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml new file mode 100644 index 0000000000..fdf361e4b9 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.html.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>classification/collaborative/team</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_translation.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_translation.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Gadget Translation</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.53</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37503.13972.43741</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540557.04</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.95</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js new file mode 100644 index 0000000000..e876c2bfa4 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.js @@ -0,0 +1,116 @@ +/*global document, window, rJS, translation_data */ +/*jslint nomen: true, indent: 2 */ +(function (document, window, rJS, translation_data) { + "use strict"; + + function translate(string) { + var language = Cookies.get('language'); + if (language == undefined){ + language = 'en' + } + return translation_data[language][string] || string; + } + + rJS(window) + + ///////////////////////////////////////////////////////////////// + // ready + ///////////////////////////////////////////////////////////////// + .ready(function (gadget) { + gadget.property_dict = {}; + }) + + .declareMethod('translate', function (string) { + // XXX Allow to change the language + return translate(string); + }) + + // translate a list of elements passed and returned as string + .declareMethod('translateHtml', function (my_string) { + var temp, element_list, i, i_len, element, lookup, translate_list, target, + route_text, has_breaks, l, l_len, gadget; + + gadget = this; + + // skip if no translations available + if (gadget.property_dict.translation_disabled) { + return my_string; + } + + // NOTE: <div> cannot be used for everything... (like table rows) + // XXX: currently I only update where needed. Eventually all calls to + // translateHtml should pass "their" proper wrapping element + temp = document.createElement("div"); + temp.innerHTML = my_string; + + element_list = temp.querySelectorAll("[data-i18n]"); + + for (i = 0, i_len = element_list.length; i < i_len; i += 1) { + element = element_list[i]; + lookup = element.getAttribute("data-i18n"); + + if (lookup) { + translate_list = lookup.split(";"); + + for (l = 0, l_len = translate_list.length; l < l_len; l += 1) { + target = translate_list[l].split("]"); + + switch (target[0]) { + case "[placeholder": + case "[alt": + case "[title": + element.setAttribute(target[0].substr(1), translate(target[1])); + break; + case "[value": + has_breaks = element.previousSibling.textContent.match(/\n/g); + + // JQM inputs > this avoids calling checkboxRadio("refresh")! + if (element.tagName === "INPUT") { + switch (element.type) { + case "submit": + case "reset": + case "button": + route_text = true; + break; + } + } + if (route_text && (has_breaks || []).length === 0) { + element.previousSibling.textContent = translate(target[1]); + } + element.value = translate(target[1]); + break; + case "[parent": + element.parentNode.childNodes[0].textContent = + translate(target[1]); + break; + case "[node": + element.childNodes[0].textContent = translate(target[1]); + break; + case "[last": + // if null, append, if textnode replace, if span, appned + if (element.lastChild && element.lastChild.nodeType === 3) { + element.lastChild.textContent = translate(target[1]); + } else { + element.appendChild(document.createTextNode(translate(target[1]))); + } + break; + case "[html": + element.innerHTML = translate(target[1]); + break; + default: + // NOTE: be careful of emptying elements with children! + while (element.hasChildNodes()) { + element.removeChild(element.lastChild); + } + element.appendChild(document.createTextNode(translate(translate_list[l]))); + element.appendChild(document.createElement("span")); + break; + } + } + } + } + // return string + return temp.innerHTML; + }); + +}(document, window, rJS, translation_data)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml new file mode 100644 index 0000000000..2ccd0ed8ae --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation.js.xml @@ -0,0 +1,328 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>classification/collaborative/team</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_translation.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_translation.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Gadget Translation JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.63</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523952.01</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.99</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js new file mode 100644 index 0000000000..3c6e805f93 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.js @@ -0,0 +1,14 @@ +/*globals window*/ +/*jslint indent: 2, nomen: true, maxlen: 80*/ +(function (window) { + "use strict"; + + window.translation_data = { + fr: { + "Login":"Connexion", + }, + en: { + }, + }; + +}(window)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml new file mode 100644 index 0000000000..39b0c702d6 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_translation_data.js.xml @@ -0,0 +1,334 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>classification/collaborative/team</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>contributors</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_translation_data.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_translation_data.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Record Translation Data JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.62</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37502.25126.50466</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526948.19</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523952.02</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html new file mode 100644 index 0000000000..645970747b --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>Listbox Compact Widget</title> + + <!-- renderjs --> + <script src="rsvp.js" type="text/javascript"></script> + <script src="travel_expense_renderjs.js" type="text/javascript"></script> + <script src="handlebars.js"></script> + + <script id="listbox-widget-table" type="text/x-handlebars-template"> + <form><div class="center"> + <div class="ui-field-contain"> + <div class="ui-input-text ui-body-{{widget_theme}} ui-corner-all ui-shadow-inset ui-input-has-clear {{widget_status_class}}"> + <input type="text" data-enhanced="true" value="{{search}}" name="search" {{widget_status_attribute}} /> + <div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext" data-i18n="[node]header-submit"> + Submit<input data-enhanced="true" type="submit" data-i18n="[value]header-submit" value="Submit" {{widget_status_attribute}} /> + </div> + </div> + </div> + </div></form> + <table class="ui-responsive ui-body-c ui-table-inset custom-force-list"> + <thead class="ui-bar-inherit"> + <tr> + {{#each column_list}} + <th>{{this}}</th> + {{/each}} + </tr> + </thead> + {{> listbox-widget-table-partial}} + <tfoot class="ui-bar-inherit"><tr><td colspan="999"> + <div class="ui-controlgroup ui-controlgroup-horizontal ui-corner-all ui-paging-menu"> + <div class="ui-controlgroup-controls"> + <a class="ui-btn ui-icon-carat-l ui-btn-icon-left responsive ui-first-child {{previous_class}}" href="{{previous_href}}" data-i18n="Previous">Previous<span></span></a> + <span class="ui-btn ui-disabled">{{count_text}}</span> + <a class="ui-btn ui-icon-carat-r ui-btn-icon-right responsive ui-last-child {{next_class}}" href="{{next_href}}" data-i18n="Next">Next<span></span></a> + </div> + </div> + </td></tr></tfoot> + </table> + </script> + + <script id="listbox-widget-table-partial" type="text/x-handlebars-template"> + <tbody> + {{#each row_list}} + <tr> + {{#each cell_list}} + <td><a class="ui-link" href="{{href}}">{{value}}</a></td> + {{/each}} + </tr> + {{/each}} + </tbody> + </script> + + <!-- custom script --> + <script src="gadget_global.js"></script> + <script src="gadget_travel_expense_widget_listbox.js" type="text/javascript"></script> + + </head> + <body> + <div class="custom-grid-wrap"> + <div class="custom-grid ui-corner-all ui-body-inherit ui-shadow ui-corner-all"> + <div class="ui-body-c ui-corner-all"></div> + </div> + </div> + </body> +</html> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml new file mode 100644 index 0000000000..601acc207c --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.html.xml @@ -0,0 +1,332 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>classification/collaborative/team</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_widget_listbox.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_widget_listbox.html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Widget Listbox</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526672.52</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37503.13972.43741</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540550.75</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523952.06</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js new file mode 100644 index 0000000000..e6d4991244 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.js @@ -0,0 +1,218 @@ +/*global window, rJS, RSVP, Handlebars, loopEventListener */ +/*jslint nomen: true, indent: 2 */ +(function (window, rJS, RSVP, Handlebars, loopEventListener) { + "use strict"; + + ///////////////////////////////////////////////////////////////// + // templates + ///////////////////////////////////////////////////////////////// + var gadget_klass = rJS(window), + templater = gadget_klass.__template_element, + + listbox_widget_table = Handlebars.compile( + templater.getElementById("listbox-widget-table").innerHTML + ); + Handlebars.registerPartial( + "listbox-widget-table-partial", + templater.getElementById("listbox-widget-table-partial").innerHTML + ); + + ///////////////////////////////////////////////////////////////// + // some methods + ///////////////////////////////////////////////////////////////// + + gadget_klass + + ///////////////////////////////////////////////////////////////// + // ready + ///////////////////////////////////////////////////////////////// + .ready(function (gadget) { + gadget.property_dict = { + render_deferred: RSVP.defer() + }; + }) + + .ready(function (gadget) { + return gadget.getElement() + .push(function (element) { + gadget.property_dict.element = element; + }); + }) + + ///////////////////////////////////////////////////////////////// + // published methods + ///////////////////////////////////////////////////////////////// + + ///////////////////////////////////////////////////////////////// + // acquired methods + ///////////////////////////////////////////////////////////////// + .declareAcquiredMethod("jio_allDocs", "jio_allDocs") + .declareAcquiredMethod("getUrlFor", "getUrlFor") + .declareAcquiredMethod("translate", "translate") + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod("redirect", "redirect") + + ///////////////////////////////////////////////////////////////// + // declared methods + ///////////////////////////////////////////////////////////////// + .declareMethod('render', function (option_dict) { + var gadget = this, + content = '', + k, + k_len, + search_list = [], + translated_column_list = [], + all_docs_result; + + // store initial configuration + gadget.property_dict.option_dict = option_dict; + // Prevent casting undefined to string + option_dict.search = option_dict.search || ""; + + // Create the search query + if (option_dict.search) { + for (k = 0, k_len = option_dict.column_list.length; k < k_len; k += 1) { + search_list.push(option_dict.column_list[k].select + ':"%' + option_dict.search + '%"'); + } + option_dict.query.query = '(' + search_list.join(' OR ') + ') AND ' + option_dict.query.query; + } + option_dict.begin_from = parseInt(option_dict.begin_from, 10) || 0; + // Display 10 lines by default + option_dict.line_count = option_dict.line_count || 10; + option_dict.query.limit = [option_dict.begin_from, option_dict.line_count + 1]; + + return gadget.jio_allDocs(option_dict.query) + .push(function (result) { + var promise_list = [], + pagination_promise_list = [], + i_len, + i; + all_docs_result = result; + for (i = 0, i_len = Math.min(result.data.total_rows, option_dict.line_count); i < i_len; i += 1) { + promise_list.push(gadget.getUrlFor({jio_key: result.data.rows[i].id, page: 'view'})); + } + + // Calculate next/previous links if needed + if (option_dict.begin_from === 0) { + pagination_promise_list.push(null); + } else { + pagination_promise_list.push(gadget.getUrlFor({ + jio_key: option_dict.jio_key, + page: 'view', + search: option_dict.search, + begin_from: option_dict.begin_from - option_dict.line_count + })); + } + if (result.data.total_rows > option_dict.line_count) { + pagination_promise_list.push(gadget.getUrlFor({ + jio_key: option_dict.jio_key, + page: 'view', + search: option_dict.search, + begin_from: option_dict.begin_from + option_dict.line_count + })); + } else { + pagination_promise_list.push(null); + } + + return RSVP.all([ + RSVP.all(promise_list), + RSVP.all(pagination_promise_list) + ]); + }) + .push(function (result_list) { + var link_list = result_list[0], + row_list = [], + cell_list, + i_len, + i, + j_len, + j; + + // build handlebars object + + for (j = 0, j_len = Math.min(all_docs_result.data.total_rows, option_dict.line_count); j < j_len; j += 1) { + cell_list = []; + for (i = 0, i_len = option_dict.column_list.length; i < i_len; i += 1) { + cell_list.push({ + "href": link_list[j], + "value": all_docs_result.data.rows[j].value[option_dict.column_list[i].select] + }); + } + row_list.push({"cell_list": cell_list}); + } + + for (i = 0; i < option_dict.column_list.length; i += 1) { + translated_column_list.push(gadget.translate(option_dict.column_list[i].title)); + } + return RSVP.all([ + row_list, + RSVP.all(translated_column_list), + result_list[1] + ]); + }) + .push(function (result_list) { + var previous_href = result_list[2][0], + next_href = result_list[2][1], + previous_class = "ui-disabled", + next_class = "ui-disabled", + count_text = "", + total = Math.min(all_docs_result.data.total_rows, option_dict.line_count); + + if (total === 1) { + count_text = option_dict.begin_from + total; + } else if (total > 1) { + count_text = (option_dict.begin_from + 1) + " - " + (option_dict.begin_from + total); + } + + if (previous_href !== null) { + previous_class = ""; + } + if (next_href !== null) { + next_class = ""; + } + + content += listbox_widget_table({ + search: option_dict.search, + column_list: result_list[1], + row_list: result_list[0], + previous_href: previous_href, + previous_class: previous_class, + next_href: next_href, + next_class: next_class, + count_text: count_text + }); + return gadget.translateHtml(content); + }) + .push(function (html) { + gadget.property_dict.element.querySelector(".custom-grid .ui-body-c") + .innerHTML = html; + gadget.property_dict.render_deferred.resolve(); + }); + }) + + ///////////////////////////////////////////////////////////////// + // declared service + ///////////////////////////////////////////////////////////////// + .declareService(function () { + var gadget = this; + return new RSVP.Queue() + .push(function () { + return gadget.property_dict.render_deferred.promise; + }) + .push(function () { + return loopEventListener( + gadget.property_dict.element.querySelector('form'), + 'submit', + false, + function (evt) { + return gadget.redirect({ + jio_key: gadget.property_dict.option_dict.jio_key, + page: 'view', + search: evt.target[0].value + }); + } + ); + }); + }); + +}(window, rJS, RSVP, Handlebars, loopEventListener)); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml new file mode 100644 index 0000000000..a427353536 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/gadget_travel_expense_widget_listbox.js.xml @@ -0,0 +1,326 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_travel_expense_widget_listbox.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>gadget_travel_expense_widget_listbox.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Widget Listbox JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.59</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523952.12</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523952.1</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.js new file mode 100644 index 0000000000..65384a3704 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.js @@ -0,0 +1,263 @@ +/** + * Mega pixel image rendering library for iOS6 Safari + * + * Fixes iOS6 Safari's image file rendering issue for large size image (over mega-pixel), + * which causes unexpected subsampling when drawing it in canvas. + * By using this library, you can safely render the image with proper stretching. + * + * Copyright (c) 2012 Shinichi Tomita <shinichi.tomita@gmail.com> + * Released under the MIT license + */ +(function() { + + /** + * Detect subsampling in loaded image. + * In iOS, larger images than 2M pixels may be subsampled in rendering. + */ + function detectSubsampling(img) { + var iw = img.naturalWidth, ih = img.naturalHeight; + if (iw * ih > 1024 * 1024) { // subsampling may happen over megapixel image + var canvas = document.createElement('canvas'); + canvas.width = canvas.height = 1; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, -iw + 1, 0); + // subsampled image becomes half smaller in rendering size. + // check alpha channel value to confirm image is covering edge pixel or not. + // if alpha value is 0 image is not covering, hence subsampled. + return ctx.getImageData(0, 0, 1, 1).data[3] === 0; + } else { + return false; + } + } + + /** + * Detecting vertical squash in loaded image. + * Fixes a bug which squash image vertically while drawing into canvas for some images. + */ + function detectVerticalSquash(img, iw, ih) { + var canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = ih; + var ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0); + var data = ctx.getImageData(0, 0, 1, ih).data; + // search image edge pixel position in case it is squashed vertically. + var sy = 0; + var ey = ih; + var py = ih; + while (py > sy) { + var alpha = data[(py - 1) * 4 + 3]; + if (alpha === 0) { + ey = py; + } else { + sy = py; + } + py = (ey + sy) >> 1; + } + var ratio = (py / ih); + return (ratio===0)?1:ratio; + } + + /** + * Rendering image element (with resizing) and get its data URL + */ + function renderImageToDataURL(img, options, doSquash) { + var canvas = document.createElement('canvas'); + renderImageToCanvas(img, canvas, options, doSquash); + return canvas.toDataURL("image/jpeg", options.quality || 0.8); + } + + /** + * Rendering image element (with resizing) into the canvas element + */ + function renderImageToCanvas(img, canvas, options, doSquash) { + var iw = img.naturalWidth, ih = img.naturalHeight; + if (!(iw+ih)) return; + var width = options.width, height = options.height; + var ctx = canvas.getContext('2d'); + ctx.save(); + transformCoordinate(canvas, ctx, width, height, options.orientation); + var subsampled = detectSubsampling(img); + if (subsampled) { + iw /= 2; + ih /= 2; + } + var d = 1024; // size of tiling canvas + var tmpCanvas = document.createElement('canvas'); + tmpCanvas.width = tmpCanvas.height = d; + var tmpCtx = tmpCanvas.getContext('2d'); + var vertSquashRatio = doSquash ? detectVerticalSquash(img, iw, ih) : 1; + var dw = Math.ceil(d * width / iw); + var dh = Math.ceil(d * height / ih / vertSquashRatio); + var sy = 0; + var dy = 0; + while (sy < ih) { + var sx = 0; + var dx = 0; + while (sx < iw) { + tmpCtx.clearRect(0, 0, d, d); + tmpCtx.drawImage(img, -sx, -sy); + ctx.drawImage(tmpCanvas, 0, 0, d, d, dx, dy, dw, dh); + sx += d; + dx += dw; + } + sy += d; + dy += dh; + } + ctx.restore(); + tmpCanvas = tmpCtx = null; + } + + /** + * Transform canvas coordination according to specified frame size and orientation + * Orientation value is from EXIF tag + */ + function transformCoordinate(canvas, ctx, width, height, orientation) { + switch (orientation) { + case 5: + case 6: + case 7: + case 8: + canvas.width = height; + canvas.height = width; + break; + default: + canvas.width = width; + canvas.height = height; + } + switch (orientation) { + case 2: + // horizontal flip + ctx.translate(width, 0); + ctx.scale(-1, 1); + break; + case 3: + // 180 rotate left + ctx.translate(width, height); + ctx.rotate(Math.PI); + break; + case 4: + // vertical flip + ctx.translate(0, height); + ctx.scale(1, -1); + break; + case 5: + // vertical flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.scale(1, -1); + break; + case 6: + // 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(0, -height); + break; + case 7: + // horizontal flip + 90 rotate right + ctx.rotate(0.5 * Math.PI); + ctx.translate(width, -height); + ctx.scale(-1, 1); + break; + case 8: + // 90 rotate left + ctx.rotate(-0.5 * Math.PI); + ctx.translate(-width, 0); + break; + default: + break; + } + } + + var URL = window.URL && window.URL.createObjectURL ? window.URL : + window.webkitURL && window.webkitURL.createObjectURL ? window.webkitURL : + null; + + /** + * MegaPixImage class + */ + function MegaPixImage(srcImage) { + if (window.Blob && srcImage instanceof Blob) { + if (!URL) { throw Error("No createObjectURL function found to create blob url"); } + var img = new Image(); + img.src = URL.createObjectURL(srcImage); + this.blob = srcImage; + srcImage = img; + } + if (!srcImage.naturalWidth && !srcImage.naturalHeight) { + var _this = this; + srcImage.onload = srcImage.onerror = function() { + var listeners = _this.imageLoadListeners; + if (listeners) { + _this.imageLoadListeners = null; + for (var i=0, len=listeners.length; i<len; i++) { + listeners[i](); + } + } + }; + this.imageLoadListeners = []; + } + this.srcImage = srcImage; + } + + /** + * Rendering megapix image into specified target element + */ + MegaPixImage.prototype.render = function(target, options, callback) { + if (this.imageLoadListeners) { + var _this = this; + this.imageLoadListeners.push(function() { _this.render(target, options, callback); }); + return; + } + options = options || {}; + var imgWidth = this.srcImage.naturalWidth, imgHeight = this.srcImage.naturalHeight, + width = options.width, height = options.height, + maxWidth = options.maxWidth, maxHeight = options.maxHeight, + doSquash = !this.blob || this.blob.type === 'image/jpeg'; + if (width && !height) { + height = (imgHeight * width / imgWidth) << 0; + } else if (height && !width) { + width = (imgWidth * height / imgHeight) << 0; + } else { + width = imgWidth; + height = imgHeight; + } + if (maxWidth && width > maxWidth) { + width = maxWidth; + height = (imgHeight * width / imgWidth) << 0; + } + if (maxHeight && height > maxHeight) { + height = maxHeight; + width = (imgWidth * height / imgHeight) << 0; + } + var opt = { width : width, height : height }; + for (var k in options) opt[k] = options[k]; + + var tagName = target.tagName.toLowerCase(); + if (tagName === 'img') { + target.src = renderImageToDataURL(this.srcImage, opt, doSquash); + } else if (tagName === 'canvas') { + renderImageToCanvas(this.srcImage, target, opt, doSquash); + } + if (typeof this.onrender === 'function') { + this.onrender(target); + } + if (callback) { + callback(); + } + if (this.blob) { + this.blob = null; + URL.revokeObjectURL(this.srcImage.src); + } + }; + + /** + * Export class to global + */ + if (typeof define === 'function' && define.amd) { + define([], function() { return MegaPixImage; }); // for AMD loader + } else if (typeof exports === 'object') { + module.exports = MegaPixImage; // for CommonJS + } else { + this.MegaPixImage = MegaPixImage; + } + +})(); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.xml new file mode 100644 index 0000000000..3e4153d41f --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/megapix-image.js.xml @@ -0,0 +1,326 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/javascript</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>megapix-image.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>megapix-image.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>version</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472536123.39</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37659.14085.40465</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472536090.8</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>empty</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472536023.11</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css new file mode 100644 index 0000000000..583b827b51 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.css @@ -0,0 +1,8 @@ +label.travel_expense_required { + font-weight:bold !important; + color: #6666ff !important; +} + +input.travel_expense_required { + border:3px #6666ff solid !important; +} diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml new file mode 100644 index 0000000000..0d47d0ac43 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_app.css.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Style" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>travel_expense_app.css</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_app.css</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Style</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense APP CSS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526693.82</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37464.51607.30515</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472525572.84</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.17</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js new file mode 100644 index 0000000000..512e9e3a7e --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.js @@ -0,0 +1,117 @@ +/*jslint nomen: true, indent: 2, maxlen: 80*/ +(function () { + "use strict"; + + /** + * The jIO renderJS extension + */ + + function unserializeRjsResponse(storage, method_name, argument_list) { + // console.info('--- rjs storage: ' + method_name); + // console.log(Array.prototype.slice.call(argument_list)); + + return new RSVP.Queue() + .push(function () { + return storage._created_promise; + }) + .push(function () { + return storage._gadget[method_name].apply(storage._gadget, + argument_list) + }) + .push(function (result) { + // console.log(result); + result = JSON.parse(result); + if (result.type === 'jio_response') { + return result.result; + } else if (result.type === 'jio_error') { + throw new jIO.util.jIOError(result.message, result.status_code); + } else { + throw new Error(result); + } + }, function (error) { + console.warn(error); + throw error; + }); + } + + function RenderJSStorage(spec) { + this._gadget = spec.gadget; + this._created_promise = this._gadget.createJio(spec.sub_storage); + } + + RenderJSStorage.prototype.get = function () { + return unserializeRjsResponse(this, 'get', arguments); + }; + + RenderJSStorage.prototype.post = function () { + return unserializeRjsResponse(this, 'post', arguments); + }; + + RenderJSStorage.prototype.put = function () { + return unserializeRjsResponse(this, 'put', arguments); + }; + + RenderJSStorage.prototype.remove = function () { + return unserializeRjsResponse(this, 'remove', arguments); + }; + + RenderJSStorage.prototype.hasCapacity = function (name) { + // console.info('--- rjs storage: hasCapacity ' + name); + return ((name === 'list') || (name === 'query') || (name === 'limit') || (name === 'sort') || (name === 'select')); + }; + + RenderJSStorage.prototype.buildQuery = function () { + return unserializeRjsResponse(this, 'buildQuery', arguments); + }; + + function dataURItoBlob(dataURI) { + // convert base64 to raw binary data held in a string + var byteString = atob(dataURI.split(',')[1]), + // separate out the mime component + mimeString = dataURI.split(',')[0].split(':')[1], + // write the bytes of the string to an ArrayBuffer + arrayBuffer = new ArrayBuffer(byteString.length), + _ia = new Uint8Array(arrayBuffer), + i; + mimeString = mimeString.slice(0, mimeString.length - ";base64".length); + for (i = 0; i < byteString.length; i += 1) { + _ia[i] = byteString.charCodeAt(i); + } + return new Blob([arrayBuffer], {type: mimeString}); + } + + RenderJSStorage.prototype.getAttachment = function (id, name, options) { + var context = this; + return new RSVP.Queue() + .push(function () { + return unserializeRjsResponse(context, 'getAttachment', [id, name, {format: 'data_url'}]); + }) + .push(function (data_uri) { + return dataURItoBlob(data_uri); + }); + }; + + RenderJSStorage.prototype.putAttachment = function (id, name, blob) { + var context = this; + if (blob.type !== 'application/json') { + throw new Error('Only accept json blob, not ' + blob.type); + } + return new RSVP.Queue() + .push(function () { + return jIO.util.readBlobAsText(blob); + }) + .push(function (evt) { + return unserializeRjsResponse(context, 'putAttachment', [id, name, evt.target.result]); + }); + }; + + RenderJSStorage.prototype.removeAttachment = function () { + return unserializeRjsResponse(this, 'removeAttachment', arguments); + }; + + RenderJSStorage.prototype.allAttachments = function () { + return unserializeRjsResponse(this, 'allAttachments', arguments); + }; + + jIO.addStorage('rjs', RenderJSStorage); +}()); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml new file mode 100644 index 0000000000..95894f1e91 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_jiodev_renderjs_storage.js.xml @@ -0,0 +1,322 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>travel_expense_jiodev_renderjs_storage.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_jiodev_renderjs_storage.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472538527.56</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37690.25781.51865</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472537912.78</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472537866.62</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js new file mode 100644 index 0000000000..c8f5b51f4c --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.js @@ -0,0 +1,139 @@ +/*! + * JavaScript Cookie v2.0.3 + * https://github.com/js-cookie/js-cookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + var _OldCookies = window.Cookies; + var api = window.Cookies = factory(); + api.noConflict = function () { + window.Cookies = _OldCookies; + return api; + }; + } +}(function () { + function extend () { + var i = 0; + var result = {}; + for (; i < arguments.length; i++) { + var attributes = arguments[ i ]; + for (var key in attributes) { + result[key] = attributes[key]; + } + } + return result; + } + + function init (converter) { + function api (key, value, attributes) { + var result; + + // Write + + if (arguments.length > 1) { + attributes = extend({ + path: '/' + }, api.defaults, attributes); + + if (typeof attributes.expires === 'number') { + var expires = new Date(); + expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); + attributes.expires = expires; + } + + try { + result = JSON.stringify(value); + if (/^[\{\[]/.test(result)) { + value = result; + } + } catch (e) {} + + value = encodeURIComponent(String(value)); + value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); + + key = encodeURIComponent(String(key)); + key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); + key = key.replace(/[\(\)]/g, escape); + + return (document.cookie = [ + key, '=', value, + attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE + attributes.path && '; path=' + attributes.path, + attributes.domain && '; domain=' + attributes.domain, + attributes.secure ? '; secure' : '' + ].join('')); + } + + // Read + + if (!key) { + result = {}; + } + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling "get()" + var cookies = document.cookie ? document.cookie.split('; ') : []; + var rdecode = /(%[0-9A-Z]{2})+/g; + var i = 0; + + for (; i < cookies.length; i++) { + var parts = cookies[i].split('='); + var name = parts[0].replace(rdecode, decodeURIComponent); + var cookie = parts.slice(1).join('='); + + if (cookie.charAt(0) === '"') { + cookie = cookie.slice(1, -1); + } + + try { + cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent); + + if (this.json) { + try { + cookie = JSON.parse(cookie); + } catch (e) {} + } + + if (key === name) { + result = cookie; + break; + } + + if (!key) { + result[name] = cookie; + } + } catch (e) {} + } + + return result; + } + + api.get = api.set = api; + api.getJSON = function () { + return api.apply({ + json: true + }, [].slice.call(arguments)); + }; + api.defaults = {}; + + api.remove = function (key, attributes) { + api(key, '', extend(attributes, { + expires: -1 + })); + }; + + api.withConverter = init; + + return api; + } + + return init(); +})); diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml new file mode 100644 index 0000000000..da05d1ff82 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_js_cookie.js.xml @@ -0,0 +1,318 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>travel_expense_js_cookie.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_js_cookie.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>2.0.3</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.79</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.23</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.21</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js new file mode 100644 index 0000000000..cd4c213b76 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.js @@ -0,0 +1,2216 @@ +/* + * js_channel is a very lightweight abstraction on top of + * postMessage which defines message formats and semantics + * to support interactions more rich than just message passing + * js_channel supports: + * + query/response - traditional rpc + * + query/update/response - incremental async return of results + * to a query + * + notifications - fire and forget + * + error handling + * + * js_channel is based heavily on json-rpc, but is focused at the + * problem of inter-iframe RPC. + * + * Message types: + * There are 5 types of messages that can flow over this channel, + * and you may determine what type of message an object is by + * examining its parameters: + * 1. Requests + * + integer id + * + string method + * + (optional) any params + * 2. Callback Invocations (or just "Callbacks") + * + integer id + * + string callback + * + (optional) params + * 3. Error Responses (or just "Errors) + * + integer id + * + string error + * + (optional) string message + * 4. Responses + * + integer id + * + (optional) any result + * 5. Notifications + * + string method + * + (optional) any params + */ + +;var Channel = (function() { + "use strict"; + + // current transaction id, start out at a random *odd* number between 1 and a million + // There is one current transaction counter id per page, and it's shared between + // channel instances. That means of all messages posted from a single javascript + // evaluation context, we'll never have two with the same id. + var s_curTranId = Math.floor(Math.random()*1000001); + + // no two bound channels in the same javascript evaluation context may have the same origin, scope, and window. + // futher if two bound channels have the same window and scope, they may not have *overlapping* origins + // (either one or both support '*'). This restriction allows a single onMessage handler to efficiently + // route messages based on origin and scope. The s_boundChans maps origins to scopes, to message + // handlers. Request and Notification messages are routed using this table. + // Finally, channels are inserted into this table when built, and removed when destroyed. + var s_boundChans = { }; + + // add a channel to s_boundChans, throwing if a dup exists + function s_addBoundChan(win, origin, scope, handler) { + function hasWin(arr) { + for (var i = 0; i < arr.length; i++) if (arr[i].win === win) return true; + return false; + } + + // does she exist? + var exists = false; + + + if (origin === '*') { + // we must check all other origins, sadly. + for (var k in s_boundChans) { + if (!s_boundChans.hasOwnProperty(k)) continue; + if (k === '*') continue; + if (typeof s_boundChans[k][scope] === 'object') { + exists = hasWin(s_boundChans[k][scope]); + if (exists) break; + } + } + } else { + // we must check only '*' + if ((s_boundChans['*'] && s_boundChans['*'][scope])) { + exists = hasWin(s_boundChans['*'][scope]); + } + if (!exists && s_boundChans[origin] && s_boundChans[origin][scope]) + { + exists = hasWin(s_boundChans[origin][scope]); + } + } + if (exists) throw "A channel is already bound to the same window which overlaps with origin '"+ origin +"' and has scope '"+scope+"'"; + + if (typeof s_boundChans[origin] != 'object') s_boundChans[origin] = { }; + if (typeof s_boundChans[origin][scope] != 'object') s_boundChans[origin][scope] = [ ]; + s_boundChans[origin][scope].push({win: win, handler: handler}); + } + + function s_removeBoundChan(win, origin, scope) { + var arr = s_boundChans[origin][scope]; + for (var i = 0; i < arr.length; i++) { + if (arr[i].win === win) { + arr.splice(i,1); + } + } + if (s_boundChans[origin][scope].length === 0) { + delete s_boundChans[origin][scope]; + } + } + + function s_isArray(obj) { + if (Array.isArray) return Array.isArray(obj); + else { + return (obj.constructor.toString().indexOf("Array") != -1); + } + } + + // No two outstanding outbound messages may have the same id, period. Given that, a single table + // mapping "transaction ids" to message handlers, allows efficient routing of Callback, Error, and + // Response messages. Entries are added to this table when requests are sent, and removed when + // responses are received. + var s_transIds = { }; + + // class singleton onMessage handler + // this function is registered once and all incoming messages route through here. This + // arrangement allows certain efficiencies, message data is only parsed once and dispatch + // is more efficient, especially for large numbers of simultaneous channels. + var s_onMessage = function(e) { + try { + var m = JSON.parse(e.data); + if (typeof m !== 'object' || m === null) throw "malformed"; + } catch(e) { + // just ignore any posted messages that do not consist of valid JSON + return; + } + + var w = e.source; + var o = e.origin; + var s, i, meth; + + if (typeof m.method === 'string') { + var ar = m.method.split('::'); + if (ar.length == 2) { + s = ar[0]; + meth = ar[1]; + } else { + meth = m.method; + } + } + + if (typeof m.id !== 'undefined') i = m.id; + + // w is message source window + // o is message origin + // m is parsed message + // s is message scope + // i is message id (or undefined) + // meth is unscoped method name + // ^^ based on these factors we can route the message + + // if it has a method it's either a notification or a request, + // route using s_boundChans + if (typeof meth === 'string') { + var delivered = false; + if (s_boundChans[o] && s_boundChans[o][s]) { + for (var j = 0; j < s_boundChans[o][s].length; j++) { + if (s_boundChans[o][s][j].win === w) { + s_boundChans[o][s][j].handler(o, meth, m); + delivered = true; + break; + } + } + } + + if (!delivered && s_boundChans['*'] && s_boundChans['*'][s]) { + for (var j = 0; j < s_boundChans['*'][s].length; j++) { + if (s_boundChans['*'][s][j].win === w) { + s_boundChans['*'][s][j].handler(o, meth, m); + break; + } + } + } + } + // otherwise it must have an id (or be poorly formed + else if (typeof i != 'undefined') { + if (s_transIds[i]) s_transIds[i](o, meth, m); + } + }; + + // Setup postMessage event listeners + if (window.addEventListener) window.addEventListener('message', s_onMessage, false); + else if(window.attachEvent) window.attachEvent('onmessage', s_onMessage); + + /* a messaging channel is constructed from a window and an origin. + * the channel will assert that all messages received over the + * channel match the origin + * + * Arguments to Channel.build(cfg): + * + * cfg.window - the remote window with which we'll communicate + * cfg.origin - the expected origin of the remote window, may be '*' + * which matches any origin + * cfg.scope - the 'scope' of messages. a scope string that is + * prepended to message names. local and remote endpoints + * of a single channel must agree upon scope. Scope may + * not contain double colons ('::'). + * cfg.debugOutput - A boolean value. If true and window.console.log is + * a function, then debug strings will be emitted to that + * function. + * cfg.debugOutput - A boolean value. If true and window.console.log is + * a function, then debug strings will be emitted to that + * function. + * cfg.postMessageObserver - A function that will be passed two arguments, + * an origin and a message. It will be passed these immediately + * before messages are posted. + * cfg.gotMessageObserver - A function that will be passed two arguments, + * an origin and a message. It will be passed these arguments + * immediately after they pass scope and origin checks, but before + * they are processed. + * cfg.onReady - A function that will be invoked when a channel becomes "ready", + * this occurs once both sides of the channel have been + * instantiated and an application level handshake is exchanged. + * the onReady function will be passed a single argument which is + * the channel object that was returned from build(). + */ + return { + build: function(cfg) { + var debug = function(m) { + if (cfg.debugOutput && window.console && window.console.log) { + // try to stringify, if it doesn't work we'll let javascript's built in toString do its magic + try { if (typeof m !== 'string') m = JSON.stringify(m); } catch(e) { } + console.log("["+chanId+"] " + m); + } + }; + + /* browser capabilities check */ + if (!window.postMessage) throw("jschannel cannot run this browser, no postMessage"); + if (!window.JSON || !window.JSON.stringify || ! window.JSON.parse) { + throw("jschannel cannot run this browser, no JSON parsing/serialization"); + } + + /* basic argument validation */ + if (typeof cfg != 'object') throw("Channel build invoked without a proper object argument"); + + if (!cfg.window || !cfg.window.postMessage) throw("Channel.build() called without a valid window argument"); + + /* we'd have to do a little more work to be able to run multiple channels that intercommunicate the same + * window... Not sure if we care to support that */ + if (window === cfg.window) throw("target window is same as present window -- not allowed"); + + // let's require that the client specify an origin. if we just assume '*' we'll be + // propagating unsafe practices. that would be lame. + var validOrigin = false; + if (typeof cfg.origin === 'string') { + var oMatch; + if (cfg.origin === "*") validOrigin = true; + // allow valid domains under http and https. Also, trim paths off otherwise valid origins. + else if (null !== (oMatch = cfg.origin.match(/^https?:\/\/(?:[-a-zA-Z0-9_\.])+(?::\d+)?/))) { + cfg.origin = oMatch[0].toLowerCase(); + validOrigin = true; + } + } + + if (!validOrigin) throw ("Channel.build() called with an invalid origin"); + + if (typeof cfg.scope !== 'undefined') { + if (typeof cfg.scope !== 'string') throw 'scope, when specified, must be a string'; + if (cfg.scope.split('::').length > 1) throw "scope may not contain double colons: '::'"; + } + + /* private variables */ + // generate a random and psuedo unique id for this channel + var chanId = (function () { + var text = ""; + var alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + for(var i=0; i < 5; i++) text += alpha.charAt(Math.floor(Math.random() * alpha.length)); + return text; + })(); + + // registrations: mapping method names to call objects + var regTbl = { }; + // current oustanding sent requests + var outTbl = { }; + // current oustanding received requests + var inTbl = { }; + // are we ready yet? when false we will block outbound messages. + var ready = false; + var pendingQueue = [ ]; + + var createTransaction = function(id,origin,callbacks) { + var shouldDelayReturn = false; + var completed = false; + + return { + origin: origin, + invoke: function(cbName, v) { + // verify in table + if (!inTbl[id]) throw "attempting to invoke a callback of a nonexistent transaction: " + id; + // verify that the callback name is valid + var valid = false; + for (var i = 0; i < callbacks.length; i++) if (cbName === callbacks[i]) { valid = true; break; } + if (!valid) throw "request supports no such callback '" + cbName + "'"; + + // send callback invocation + postMessage({ id: id, callback: cbName, params: v}); + }, + error: function(error, message) { + completed = true; + // verify in table + if (!inTbl[id]) throw "error called for nonexistent message: " + id; + + // remove transaction from table + delete inTbl[id]; + + // send error + postMessage({ id: id, error: error, message: message }); + }, + complete: function(v) { + completed = true; + // verify in table + if (!inTbl[id]) throw "complete called for nonexistent message: " + id; + // remove transaction from table + delete inTbl[id]; + // send complete + postMessage({ id: id, result: v }); + }, + delayReturn: function(delay) { + if (typeof delay === 'boolean') { + shouldDelayReturn = (delay === true); + } + return shouldDelayReturn; + }, + completed: function() { + return completed; + } + }; + }; + + var setTransactionTimeout = function(transId, timeout, method) { + return window.setTimeout(function() { + if (outTbl[transId]) { + // XXX: what if client code raises an exception here? + var msg = "timeout (" + timeout + "ms) exceeded on method '" + method + "'"; + (1,outTbl[transId].error)("timeout_error", msg); + delete outTbl[transId]; + delete s_transIds[transId]; + } + }, timeout); + }; + + var onMessage = function(origin, method, m) { + // if an observer was specified at allocation time, invoke it + if (typeof cfg.gotMessageObserver === 'function') { + // pass observer a clone of the object so that our + // manipulations are not visible (i.e. method unscoping). + // This is not particularly efficient, but then we expect + // that message observers are primarily for debugging anyway. + try { + cfg.gotMessageObserver(origin, m); + } catch (e) { + debug("gotMessageObserver() raised an exception: " + e.toString()); + } + } + + // now, what type of message is this? + if (m.id && method) { + // a request! do we have a registered handler for this request? + if (regTbl[method]) { + var trans = createTransaction(m.id, origin, m.callbacks ? m.callbacks : [ ]); + inTbl[m.id] = { }; + try { + // callback handling. we'll magically create functions inside the parameter list for each + // callback + if (m.callbacks && s_isArray(m.callbacks) && m.callbacks.length > 0) { + for (var i = 0; i < m.callbacks.length; i++) { + var path = m.callbacks[i]; + var obj = m.params; + var pathItems = path.split('/'); + for (var j = 0; j < pathItems.length - 1; j++) { + var cp = pathItems[j]; + if (typeof obj[cp] !== 'object') obj[cp] = { }; + obj = obj[cp]; + } + obj[pathItems[pathItems.length - 1]] = (function() { + var cbName = path; + return function(params) { + return trans.invoke(cbName, params); + }; + })(); + } + } + var resp = regTbl[method](trans, m.params); + if (!trans.delayReturn() && !trans.completed()) trans.complete(resp); + } catch(e) { + // automagic handling of exceptions: + var error = "runtime_error"; + var message = null; + // * if it's a string then it gets an error code of 'runtime_error' and string is the message + if (typeof e === 'string') { + message = e; + } else if (typeof e === 'object') { + // either an array or an object + // * if it's an array of length two, then array[0] is the code, array[1] is the error message + if (e && s_isArray(e) && e.length == 2) { + error = e[0]; + message = e[1]; + } + // * if it's an object then we'll look form error and message parameters + else if (typeof e.error === 'string') { + error = e.error; + if (!e.message) message = ""; + else if (typeof e.message === 'string') message = e.message; + else e = e.message; // let the stringify/toString message give us a reasonable verbose error string + } + } + + // message is *still* null, let's try harder + if (message === null) { + try { + message = JSON.stringify(e); + /* On MSIE8, this can result in 'out of memory', which + * leaves message undefined. */ + if (typeof(message) == 'undefined') + message = e.toString(); + } catch (e2) { + message = e.toString(); + } + } + + trans.error(error,message); + } + } + } else if (m.id && m.callback) { + if (!outTbl[m.id] ||!outTbl[m.id].callbacks || !outTbl[m.id].callbacks[m.callback]) + { + debug("ignoring invalid callback, id:"+m.id+ " (" + m.callback +")"); + } else { + // XXX: what if client code raises an exception here? + outTbl[m.id].callbacks[m.callback](m.params); + } + } else if (m.id) { + if (!outTbl[m.id]) { + debug("ignoring invalid response: " + m.id); + } else { + // XXX: what if client code raises an exception here? + if (m.error) { + (1,outTbl[m.id].error)(m.error, m.message); + } else { + if (m.result !== undefined) (1,outTbl[m.id].success)(m.result); + else (1,outTbl[m.id].success)(); + } + delete outTbl[m.id]; + delete s_transIds[m.id]; + } + } else if (method) { + // tis a notification. + if (regTbl[method]) { + // yep, there's a handler for that. + // transaction has only origin for notifications. + regTbl[method]({ origin: origin }, m.params); + // if the client throws, we'll just let it bubble out + // what can we do? Also, here we'll ignore return values + } + } + }; + + // now register our bound channel for msg routing + s_addBoundChan(cfg.window, cfg.origin, ((typeof cfg.scope === 'string') ? cfg.scope : ''), onMessage); + + // scope method names based on cfg.scope specified when the Channel was instantiated + var scopeMethod = function(m) { + if (typeof cfg.scope === 'string' && cfg.scope.length) m = [cfg.scope, m].join("::"); + return m; + }; + + // a small wrapper around postmessage whose primary function is to handle the + // case that clients start sending messages before the other end is "ready" + var postMessage = function(msg, force) { + if (!msg) throw "postMessage called with null message"; + + // delay posting if we're not ready yet. + var verb = (ready ? "post " : "queue "); + debug(verb + " message: " + JSON.stringify(msg)); + if (!force && !ready) { + pendingQueue.push(msg); + } else { + if (typeof cfg.postMessageObserver === 'function') { + try { + cfg.postMessageObserver(cfg.origin, msg); + } catch (e) { + debug("postMessageObserver() raised an exception: " + e.toString()); + } + } + + cfg.window.postMessage(JSON.stringify(msg), cfg.origin); + } + }; + + var onReady = function(trans, type) { + debug('ready msg received'); + if (ready) throw "received ready message while in ready state. help!"; + + if (type === 'ping') { + chanId += '-R'; + } else { + chanId += '-L'; + } + + obj.unbind('__ready'); // now this handler isn't needed any more. + ready = true; + debug('ready msg accepted.'); + + if (type === 'ping') { + obj.notify({ method: '__ready', params: 'pong' }); + } + + // flush queue + while (pendingQueue.length) { + postMessage(pendingQueue.pop()); + } + + // invoke onReady observer if provided + if (typeof cfg.onReady === 'function') cfg.onReady(obj); + }; + + var obj = { + // tries to unbind a bound message handler. returns false if not possible + unbind: function (method) { + if (regTbl[method]) { + if (!(delete regTbl[method])) throw ("can't delete method: " + method); + return true; + } + return false; + }, + bind: function (method, cb) { + if (!method || typeof method !== 'string') throw "'method' argument to bind must be string"; + if (!cb || typeof cb !== 'function') throw "callback missing from bind params"; + + if (regTbl[method]) throw "method '"+method+"' is already bound!"; + regTbl[method] = cb; + return this; + }, + call: function(m) { + if (!m) throw 'missing arguments to call function'; + if (!m.method || typeof m.method !== 'string') throw "'method' argument to call must be string"; + if (!m.success || typeof m.success !== 'function') throw "'success' callback missing from call"; + + // now it's time to support the 'callback' feature of jschannel. We'll traverse the argument + // object and pick out all of the functions that were passed as arguments. + var callbacks = { }; + var callbackNames = [ ]; + + var pruneFunctions = function (path, obj) { + if (typeof obj === 'object') { + for (var k in obj) { + if (!obj.hasOwnProperty(k)) continue; + var np = path + (path.length ? '/' : '') + k; + if (typeof obj[k] === 'function') { + callbacks[np] = obj[k]; + callbackNames.push(np); + delete obj[k]; + } else if (typeof obj[k] === 'object') { + pruneFunctions(np, obj[k]); + } + } + } + }; + pruneFunctions("", m.params); + + // build a 'request' message and send it + var msg = { id: s_curTranId, method: scopeMethod(m.method), params: m.params }; + if (callbackNames.length) msg.callbacks = callbackNames; + + if (m.timeout) + // XXX: This function returns a timeout ID, but we don't do anything with it. + // We might want to keep track of it so we can cancel it using clearTimeout() + // when the transaction completes. + setTransactionTimeout(s_curTranId, m.timeout, scopeMethod(m.method)); + + // insert into the transaction table + outTbl[s_curTranId] = { callbacks: callbacks, error: m.error, success: m.success }; + s_transIds[s_curTranId] = onMessage; + + // increment current id + s_curTranId++; + + postMessage(msg); + }, + notify: function(m) { + if (!m) throw 'missing arguments to notify function'; + if (!m.method || typeof m.method !== 'string') throw "'method' argument to notify must be string"; + + // no need to go into any transaction table + postMessage({ method: scopeMethod(m.method), params: m.params }); + }, + destroy: function () { + s_removeBoundChan(cfg.window, cfg.origin, ((typeof cfg.scope === 'string') ? cfg.scope : '')); + if (window.removeEventListener) window.removeEventListener('message', onMessage, false); + else if(window.detachEvent) window.detachEvent('onmessage', onMessage); + ready = false; + regTbl = { }; + inTbl = { }; + outTbl = { }; + cfg.origin = null; + pendingQueue = [ ]; + debug("channel destroyed"); + chanId = ""; + } + }; + + obj.bind('__ready', onReady); + setTimeout(function() { + postMessage({ method: scopeMethod('__ready'), params: "ping" }, true); + }, 0); + + return obj; + } + }; +})(); +;/* + * DOMParser HTML extension + * 2012-09-04 + * + * By Eli Grey, http://eligrey.com + * Public domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ +/*! @source https://gist.github.com/1129031 */ +(function (DOMParser) { + "use strict"; + var DOMParser_proto = DOMParser.prototype, + real_parseFromString = DOMParser_proto.parseFromString; + + // Firefox/Opera/IE throw errors on unsupported types + try { + // WebKit returns null on unsupported types + if ((new DOMParser()).parseFromString("", "text/html")) { + // text/html parsing is natively supported + return; + } + } catch (ignore) {} + + DOMParser_proto.parseFromString = function (markup, type) { + var result, doc, doc_elt, first_elt; + if (/^\s*text\/html\s*(?:;|$)/i.test(type)) { + doc = document.implementation.createHTMLDocument(""); + doc_elt = doc.documentElement; + + doc_elt.innerHTML = markup; + first_elt = doc_elt.firstElementChild; + + if (doc_elt.childElementCount === 1 + && first_elt.localName.toLowerCase() === "html") { + doc.replaceChild(first_elt, doc_elt); + } + + result = doc; + } else { + result = real_parseFromString.apply(this, arguments); + } + return result; + }; +}(DOMParser)); + +;// IE does not support have Document.prototype.contains. +if (typeof document.contains !== 'function') { + Document.prototype.contains = function(node) { + if (node === this || node.parentNode === this) + return true; + return this.documentElement.contains(node); + } +} +;/*! RenderJs */ +/*global console*/ +/*jslint nomen: true*/ +function loopEventListener(target, type, useCapture, callback) { + "use strict"; + ////////////////////////// + // Infinite event listener (promise is never resolved) + // eventListener is removed when promise is cancelled/rejected + ////////////////////////// + var handle_event_callback, + callback_promise; + + function cancelResolver() { + if ((callback_promise !== undefined) && + (typeof callback_promise.cancel === "function")) { + callback_promise.cancel(); + } + } + + function canceller() { + if (handle_event_callback !== undefined) { + target.removeEventListener(type, handle_event_callback, useCapture); + } + cancelResolver(); + } + function itsANonResolvableTrap(resolve, reject) { + + handle_event_callback = function (evt) { + evt.stopPropagation(); + evt.preventDefault(); + cancelResolver(); + callback_promise = new RSVP.Queue() + .push(function () { + return callback(evt); + }) + .push(undefined, function (error) { + if (!(error instanceof RSVP.CancellationError)) { + canceller(); + reject(error); + } + }); + }; + + target.addEventListener(type, handle_event_callback, useCapture); + } + return new RSVP.Promise(itsANonResolvableTrap, canceller); +} + +/* + * renderJs - Generic Gadget library renderer. + * http://www.renderjs.org/documentation + */ +(function (document, window, RSVP, DOMParser, Channel, MutationObserver, + Node, FileReader, Blob) { + "use strict"; + + function readBlobAsDataURL(blob) { + var fr = new FileReader(); + return new RSVP.Promise(function (resolve, reject) { + fr.addEventListener("load", function (evt) { + resolve(evt.target.result); + }); + fr.addEventListener("error", reject); + fr.readAsDataURL(blob); + }, function () { + fr.abort(); + }); + } + + function ajax(url) { + var xhr; + function resolver(resolve, reject) { + function handler() { + try { + if (xhr.readyState === 0) { + // UNSENT + reject(xhr); + } else if (xhr.readyState === 4) { + // DONE + if ((xhr.status < 200) || (xhr.status >= 300) || + (!/^text\/html[;]?/.test( + xhr.getResponseHeader("Content-Type") || "" + ))) { + reject(xhr); + } else { + resolve(xhr); + } + } + } catch (e) { + reject(e); + } + } + + xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.onreadystatechange = handler; + xhr.setRequestHeader('Accept', 'text/html'); + xhr.withCredentials = true; + xhr.send(); + } + + function canceller() { + if ((xhr !== undefined) && (xhr.readyState !== xhr.DONE)) { + xhr.abort(); + } + } + return new RSVP.Promise(resolver, canceller); + } + + var gadget_model_dict = {}, + javascript_registration_dict = {}, + stylesheet_registration_dict = {}, + gadget_loading_klass, + loading_klass_promise, + renderJS, + Monitor, + isAbsoluteOrDataURL = new RegExp('^(?:[a-z]+:)?//|data:', 'i'); + + ///////////////////////////////////////////////////////////////// + // Helper functions + ///////////////////////////////////////////////////////////////// + function listenHashChange(gadget) { + + function extractHashAndDispatch(evt) { + var hash = (evt.newURL || window.location.toString()).split('#')[1], + subhashes, + subhash, + keyvalue, + index, + options = {}; + if (hash === undefined) { + hash = ""; + } else { + hash = hash.split('?')[0]; + } + + function optionalize(key, value, dict) { + var key_list = key.split("."), + kk, + i; + for (i = 0; i < key_list.length; i += 1) { + kk = key_list[i]; + if (i === key_list.length - 1) { + dict[kk] = value; + } else { + if (!dict.hasOwnProperty(kk)) { + dict[kk] = {}; + } + dict = dict[kk]; + } + } + } + + subhashes = hash.split('&'); + for (index in subhashes) { + if (subhashes.hasOwnProperty(index)) { + subhash = subhashes[index]; + if (subhash !== '') { + keyvalue = subhash.split('='); + if (keyvalue.length === 2) { + + optionalize(decodeURIComponent(keyvalue[0]), + decodeURIComponent(keyvalue[1]), + options); + + } + } + } + } + + if (gadget.render !== undefined) { + return gadget.render(options); + } + } + + var result = loopEventListener(window, 'hashchange', false, + extractHashAndDispatch), + event = document.createEvent("Event"); + + event.initEvent('hashchange', true, true); + event.newURL = window.location.toString(); + window.dispatchEvent(event); + return result; + } + + + function removeHash(url) { + var index = url.indexOf('#'); + if (index > 0) { + url = url.substring(0, index); + } + return url; + } + + function letsCrash(e) { + if (e.constructor === XMLHttpRequest) { + e = { + readyState: e.readyState, + status: e.status, + statusText: e.statusText, + response_headers: e.getAllResponseHeaders() + }; + } + if (e.constructor === Array || + e.constructor === String || + e.constructor === Object) { + try { + e = JSON.stringify(e); + } catch (ignore) { + } + } + document.getElementsByTagName('body')[0].textContent = e; + // XXX Do not crash the application if it fails + // Where to write the error? + /*global console*/ + console.error(e.stack); + console.error(e); + } + + ///////////////////////////////////////////////////////////////// + // Service Monitor promise + ///////////////////////////////////////////////////////////////// + function ResolvedMonitorError(message) { + this.name = "resolved"; + if ((message !== undefined) && (typeof message !== "string")) { + throw new TypeError('You must pass a string.'); + } + this.message = message || "Default Message"; + } + ResolvedMonitorError.prototype = new Error(); + ResolvedMonitorError.prototype.constructor = ResolvedMonitorError; + + Monitor = function () { + var monitor = this, + promise_list = [], + promise, + reject, + notify, + resolved; + + if (!(this instanceof Monitor)) { + return new Monitor(); + } + + function canceller() { + var len = promise_list.length, + i; + for (i = 0; i < len; i += 1) { + promise_list[i].cancel(); + } + // Clean it to speed up other canceller run + promise_list = []; + } + + promise = new RSVP.Promise(function (done, fail, progress) { + reject = function (rejectedReason) { + if (resolved) { + return; + } + monitor.isRejected = true; + monitor.rejectedReason = rejectedReason; + resolved = true; + canceller(); + return fail(rejectedReason); + }; + notify = progress; + }, canceller); + + monitor.cancel = function () { + if (resolved) { + return; + } + resolved = true; + promise.cancel(); + promise.fail(function (rejectedReason) { + monitor.isRejected = true; + monitor.rejectedReason = rejectedReason; + }); + }; + monitor.then = function () { + return promise.then.apply(promise, arguments); + }; + monitor.fail = function () { + return promise.fail.apply(promise, arguments); + }; + + monitor.monitor = function (promise_to_monitor) { + if (resolved) { + throw new ResolvedMonitorError(); + } + var queue = new RSVP.Queue() + .push(function () { + return promise_to_monitor; + }) + .push(function (fulfillmentValue) { + // Promise to monitor is fullfilled, remove it from the list + var len = promise_list.length, + sub_promise_to_monitor, + new_promise_list = [], + i; + for (i = 0; i < len; i += 1) { + sub_promise_to_monitor = promise_list[i]; + if (!(sub_promise_to_monitor.isFulfilled || + sub_promise_to_monitor.isRejected)) { + new_promise_list.push(sub_promise_to_monitor); + } + } + promise_list = new_promise_list; + }, function (rejectedReason) { + if (rejectedReason instanceof RSVP.CancellationError) { + if (!(promise_to_monitor.isFulfilled && + promise_to_monitor.isRejected)) { + // The queue could be cancelled before the first push is run + promise_to_monitor.cancel(); + } + } + reject(rejectedReason); + throw rejectedReason; + }, function (notificationValue) { + notify(notificationValue); + return notificationValue; + }); + + promise_list.push(queue); + + return this; + }; + }; + + Monitor.prototype = Object.create(RSVP.Promise.prototype); + Monitor.prototype.constructor = Monitor; + + ///////////////////////////////////////////////////////////////// + // RenderJSGadget + ///////////////////////////////////////////////////////////////// + function RenderJSGadget() { + if (!(this instanceof RenderJSGadget)) { + return new RenderJSGadget(); + } + } + RenderJSGadget.prototype.__title = ""; + RenderJSGadget.prototype.__interface_list = []; + RenderJSGadget.prototype.__path = ""; + RenderJSGadget.prototype.__html = ""; + RenderJSGadget.prototype.__required_css_list = []; + RenderJSGadget.prototype.__required_js_list = []; + + function createMonitor(g) { + if (g.__monitor !== undefined) { + g.__monitor.cancel(); + } + g.__monitor = new Monitor(); + g.__monitor.fail(function (error) { + if (!(error instanceof RSVP.CancellationError)) { + return g.aq_reportServiceError(error); + } + }).fail(function (error) { + // Crash the application if the acquisition generates an error. + return letsCrash(error); + }); + } + + function clearGadgetInternalParameters(g) { + g.__sub_gadget_dict = {}; + createMonitor(g); + } + + function loadSubGadgetDOMDeclaration(g) { + var element_list = g.__element.querySelectorAll('[data-gadget-scope]'), + element, + promise_list = [], + scope, + url, + sandbox, + i; + + for (i = 0; i < element_list.length; i += 1) { + element = element_list[i]; + scope = element.getAttribute("data-gadget-scope"); + url = element.getAttribute("data-gadget-url"); + sandbox = element.getAttribute("data-gadget-sandbox"); + if ((scope !== null) && (url !== null)) { + promise_list.push(g.declareGadget(url, { + element: element, + scope: scope || undefined, + sandbox: sandbox || undefined + })); + } + } + + return RSVP.all(promise_list); + } + + RenderJSGadget.__ready_list = [clearGadgetInternalParameters, + loadSubGadgetDOMDeclaration]; + RenderJSGadget.ready = function (callback) { + this.__ready_list.push(callback); + return this; + }; + + RenderJSGadget.__service_list = []; + RenderJSGadget.declareService = function (callback) { + this.__service_list.push(callback); + return this; + }; + + function startService(gadget) { + gadget.__monitor.monitor(new RSVP.Queue() + .push(function () { + var i, + service_list = gadget.constructor.__service_list; + for (i = 0; i < service_list.length; i += 1) { + gadget.__monitor.monitor(service_list[i].apply(gadget)); + } + }) + ); + } + + ///////////////////////////////////////////////////////////////// + // RenderJSGadget.declareMethod + ///////////////////////////////////////////////////////////////// + RenderJSGadget.declareMethod = function (name, callback) { + this.prototype[name] = function () { + var context = this, + argument_list = arguments; + + return new RSVP.Queue() + .push(function () { + return callback.apply(context, argument_list); + }); + }; + // Allow chain + return this; + }; + + RenderJSGadget + .declareMethod('getInterfaceList', function () { + // Returns the list of gadget prototype + return this.__interface_list; + }) + .declareMethod('getRequiredCSSList', function () { + // Returns a list of CSS required by the gadget + return this.__required_css_list; + }) + .declareMethod('getRequiredJSList', function () { + // Returns a list of JS required by the gadget + return this.__required_js_list; + }) + .declareMethod('getPath', function () { + // Returns the path of the code of a gadget + return this.__path; + }) + .declareMethod('getTitle', function () { + // Returns the title of a gadget + return this.__title; + }) + .declareMethod('getElement', function () { + // Returns the DOM Element of a gadget + if (this.__element === undefined) { + throw new Error("No element defined"); + } + return this.__element; + }); + + ///////////////////////////////////////////////////////////////// + // RenderJSGadget.declareAcquiredMethod + ///////////////////////////////////////////////////////////////// + function acquire(child_gadget, method_name, argument_list) { + var gadget = this, + key, + gadget_scope; + + for (key in gadget.__sub_gadget_dict) { + if (gadget.__sub_gadget_dict.hasOwnProperty(key)) { + if (gadget.__sub_gadget_dict[key] === child_gadget) { + gadget_scope = key; + } + } + } + return new RSVP.Queue() + .push(function () { + // Do not specify default __acquired_method_dict on prototype + // to prevent modifying this default value (with + // allowPublicAcquiredMethod for example) + var aq_dict = gadget.__acquired_method_dict || {}; + if (aq_dict.hasOwnProperty(method_name)) { + return aq_dict[method_name].apply(gadget, + [argument_list, gadget_scope]); + } + throw new renderJS.AcquisitionError("aq_dynamic is not defined"); + }) + .push(undefined, function (error) { + if (error instanceof renderJS.AcquisitionError) { + return gadget.__aq_parent(method_name, argument_list); + } + throw error; + }); + } + + RenderJSGadget.declareAcquiredMethod = + function (name, method_name_to_acquire) { + this.prototype[name] = function () { + var argument_list = Array.prototype.slice.call(arguments, 0), + gadget = this; + return new RSVP.Queue() + .push(function () { + return gadget.__aq_parent(method_name_to_acquire, argument_list); + }); + }; + + // Allow chain + return this; + }; + RenderJSGadget.declareAcquiredMethod("aq_reportServiceError", + "reportServiceError"); + RenderJSGadget.declareAcquiredMethod("aq_pleasePublishMyState", + "pleasePublishMyState"); + + ///////////////////////////////////////////////////////////////// + // RenderJSGadget.allowPublicAcquisition + ///////////////////////////////////////////////////////////////// + RenderJSGadget.allowPublicAcquisition = + function (method_name, callback) { + this.prototype.__acquired_method_dict[method_name] = callback; + + // Allow chain + return this; + }; + + // Set aq_parent on gadget_instance which call acquire on parent_gadget + function setAqParent(gadget_instance, parent_gadget) { + gadget_instance.__aq_parent = function (method_name, argument_list) { + return acquire.apply(parent_gadget, [gadget_instance, method_name, + argument_list]); + }; + } + + function pleasePublishMyState(param_list, child_gadget_scope) { + var new_param = {}, + key; + for (key in this.state_parameter_dict) { + if (this.state_parameter_dict.hasOwnProperty(key)) { + new_param[key] = this.state_parameter_dict[key]; + } + } + if (child_gadget_scope === undefined) { + throw new Error("gadget scope is mandatory"); + } + new_param[child_gadget_scope] = param_list[0]; + param_list = [new_param]; + return this.aq_pleasePublishMyState.apply(this, param_list); + } + + ///////////////////////////////////////////////////////////////// + // RenderJSEmbeddedGadget + ///////////////////////////////////////////////////////////////// + // Class inheritance + function RenderJSEmbeddedGadget() { + if (!(this instanceof RenderJSEmbeddedGadget)) { + return new RenderJSEmbeddedGadget(); + } + RenderJSGadget.call(this); + } + RenderJSEmbeddedGadget.__ready_list = RenderJSGadget.__ready_list.slice(); + RenderJSEmbeddedGadget.__service_list = + RenderJSGadget.__service_list.slice(); + RenderJSEmbeddedGadget.ready = + RenderJSGadget.ready; + RenderJSEmbeddedGadget.declareService = + RenderJSGadget.declareService; + RenderJSEmbeddedGadget.prototype = new RenderJSGadget(); + RenderJSEmbeddedGadget.prototype.constructor = RenderJSEmbeddedGadget; + + ///////////////////////////////////////////////////////////////// + // privateDeclarePublicGadget + ///////////////////////////////////////////////////////////////// + function privateDeclarePublicGadget(url, options, parent_gadget) { + var gadget_instance; + if (options.element === undefined) { + options.element = document.createElement("div"); + } + + function loadDependency(method, url) { + return function () { + return method(url); + }; + } + + return new RSVP.Queue() + .push(function () { + return renderJS.declareGadgetKlass(url); + }) + // Get the gadget class and instanciate it + .push(function (Klass) { + var i, + template_node_list = Klass.__template_element.body.childNodes; + gadget_loading_klass = Klass; + gadget_instance = new Klass(); + gadget_instance.__element = options.element; + for (i = 0; i < template_node_list.length; i += 1) { + gadget_instance.__element.appendChild( + template_node_list[i].cloneNode(true) + ); + } + setAqParent(gadget_instance, parent_gadget); + // Load dependencies if needed + return RSVP.all([ + gadget_instance.getRequiredJSList(), + gadget_instance.getRequiredCSSList() + ]); + }) + // Load all JS/CSS + .push(function (all_list) { + var q = new RSVP.Queue(), + i; + // Load JS + for (i = 0; i < all_list[0].length; i += 1) { + q.push(loadDependency(renderJS.declareJS, all_list[0][i])); + } + // Load CSS + for (i = 0; i < all_list[1].length; i += 1) { + q.push(loadDependency(renderJS.declareCSS, all_list[1][i])); + } + return q; + }) + .push(function () { + return gadget_instance; + }); + } + + ///////////////////////////////////////////////////////////////// + // RenderJSIframeGadget + ///////////////////////////////////////////////////////////////// + function RenderJSIframeGadget() { + if (!(this instanceof RenderJSIframeGadget)) { + return new RenderJSIframeGadget(); + } + RenderJSGadget.call(this); + } + RenderJSIframeGadget.__ready_list = RenderJSGadget.__ready_list.slice(); + RenderJSIframeGadget.ready = + RenderJSGadget.ready; + RenderJSIframeGadget.__service_list = RenderJSGadget.__service_list.slice(); + RenderJSIframeGadget.declareService = + RenderJSGadget.declareService; + RenderJSIframeGadget.prototype = new RenderJSGadget(); + RenderJSIframeGadget.prototype.constructor = RenderJSIframeGadget; + + ///////////////////////////////////////////////////////////////// + // privateDeclareIframeGadget + ///////////////////////////////////////////////////////////////// + function privateDeclareIframeGadget(url, options, parent_gadget) { + var gadget_instance, + iframe, + iframe_loading_deferred = RSVP.defer(); + if (options.element === undefined) { + throw new Error("DOM element is required to create Iframe Gadget " + + url); + } + + // Check if the element is attached to the DOM + if (!document.contains(options.element)) { + throw new Error("The parent element is not attached to the DOM for " + + url); + } + + gadget_instance = new RenderJSIframeGadget(); + setAqParent(gadget_instance, parent_gadget); + iframe = document.createElement("iframe"); +// gadget_instance.element.setAttribute("seamless", "seamless"); + iframe.setAttribute("src", url); + gadget_instance.__path = url; + gadget_instance.__element = options.element; + // Attach it to the DOM + options.element.appendChild(iframe); + + // XXX Manage unbind when deleting the gadget + + // Create the communication channel with the iframe + gadget_instance.__chan = Channel.build({ + window: iframe.contentWindow, + origin: "*", + scope: "renderJS" + }); + + // Create new method from the declareMethod call inside the iframe + gadget_instance.__chan.bind("declareMethod", + function (trans, method_name) { + gadget_instance[method_name] = function () { + var argument_list = arguments, + wait_promise = new RSVP.Promise(function (resolve, reject) { + gadget_instance.__chan.call({ + method: "methodCall", + params: [ + method_name, + Array.prototype.slice.call(argument_list, 0)], + success: function (s) { + resolve(s); + }, + error: function (e) { + reject(e); + } + }); + }); + return new RSVP.Queue() + .push(function () { + return wait_promise; + }); + }; + return "OK"; + }); + + // Wait for the iframe to be loaded before continuing + gadget_instance.__chan.bind("ready", function (trans) { + iframe_loading_deferred.resolve(gadget_instance); + return "OK"; + }); + gadget_instance.__chan.bind("failed", function (trans, params) { + iframe_loading_deferred.reject(params); + return "OK"; + }); + gadget_instance.__chan.bind("acquire", function (trans, params) { + gadget_instance.__aq_parent.apply(gadget_instance, params) + .then(function (g) { + trans.complete(g); + }).fail(function (e) { + trans.error(e.toString()); + }); + trans.delayReturn(true); + }); + + return RSVP.any([ + iframe_loading_deferred.promise, + // Timeout to prevent non renderJS embeddable gadget + // XXX Maybe using iframe.onload/onerror would be safer? + RSVP.timeout(50000) + ]); + } + + ///////////////////////////////////////////////////////////////// + // privateDeclareDataUrlGadget + ///////////////////////////////////////////////////////////////// + function privateDeclareDataUrlGadget(url, options, parent_gadget) { + + return new RSVP.Queue() + .push(function () { + return ajax(url); + }) + .push(function (xhr) { + // Insert a "base" element, in order to resolve all relative links + // which could get broken with a data url + var doc = (new DOMParser()).parseFromString(xhr.responseText, + 'text/html'), + base = doc.createElement('base'), + blob; + base.href = url; + doc.head.insertBefore(base, doc.head.firstChild); + blob = new Blob([doc.documentElement.outerHTML], + {type: "text/html;charset=UTF-8"}); + return readBlobAsDataURL(blob); + }) + .push(function (data_url) { + return privateDeclareIframeGadget(data_url, options, parent_gadget); + }); + } + + ///////////////////////////////////////////////////////////////// + // RenderJSGadget.declareGadget + ///////////////////////////////////////////////////////////////// + RenderJSGadget + .declareMethod('declareGadget', function (url, options) { + var queue, + parent_gadget = this, + local_loading_klass_promise, + previous_loading_klass_promise = loading_klass_promise; + + if (options === undefined) { + options = {}; + } + if (options.sandbox === undefined) { + options.sandbox = "public"; + } + + // transform url to absolute url if it is relative + url = renderJS.getAbsoluteURL(url, this.__path); + // Change the global variable to update the loading queue + loading_klass_promise = new RSVP.Queue() + // Wait for previous gadget loading to finish first + .push(function () { + return previous_loading_klass_promise; + }) + .push(undefined, function () { + // Forget previous declareGadget error + return; + }) + .push(function () { + var method; + if (options.sandbox === "public") { + method = privateDeclarePublicGadget; + } else if (options.sandbox === "iframe") { + method = privateDeclareIframeGadget; + } else if (options.sandbox === "dataurl") { + method = privateDeclareDataUrlGadget; + } else { + throw new Error("Unsupported sandbox options '" + + options.sandbox + "'"); + } + return method(url, options, parent_gadget); + }) + // Set the HTML context + .push(function (gadget_instance) { + // Drop the current loading klass info used by selector + gadget_loading_klass = undefined; + return gadget_instance; + }) + .push(undefined, function (e) { + // Drop the current loading klass info used by selector + // even in case of error + gadget_loading_klass = undefined; + throw e; + }); + local_loading_klass_promise = loading_klass_promise; + + queue = new RSVP.Queue() + .push(function () { + return local_loading_klass_promise; + }) + // Set the HTML context + .push(function (gadget_instance) { + var i; + // Trigger calling of all ready callback + function ready_wrapper() { + return gadget_instance; + } + for (i = 0; i < gadget_instance.constructor.__ready_list.length; + i += 1) { + // Put a timeout? + queue.push(gadget_instance.constructor.__ready_list[i]); + // Always return the gadget instance after ready function + queue.push(ready_wrapper); + } + + // Store local reference to the gadget instance + if (options.scope !== undefined) { + parent_gadget.__sub_gadget_dict[options.scope] = gadget_instance; + gadget_instance.__element.setAttribute("data-gadget-scope", + options.scope); + } + + // Put some attribute to ease page layout comprehension + gadget_instance.__element.setAttribute("data-gadget-url", url); + gadget_instance.__element.setAttribute("data-gadget-sandbox", + options.sandbox); + gadget_instance.__element._gadget = gadget_instance; + + if (document.contains(gadget_instance.__element)) { + // Put a timeout + queue.push(startService); + } + // Always return the gadget instance after ready function + queue.push(ready_wrapper); + + return gadget_instance; + }); + return queue; + }) + .declareMethod('getDeclaredGadget', function (gadget_scope) { + if (!this.__sub_gadget_dict.hasOwnProperty(gadget_scope)) { + throw new Error("Gadget scope '" + gadget_scope + "' is not known."); + } + return this.__sub_gadget_dict[gadget_scope]; + }) + .declareMethod('dropGadget', function (gadget_scope) { + if (!this.__sub_gadget_dict.hasOwnProperty(gadget_scope)) { + throw new Error("Gadget scope '" + gadget_scope + "' is not known."); + } + // http://perfectionkills.com/understanding-delete/ + delete this.__sub_gadget_dict[gadget_scope]; + }); + + ///////////////////////////////////////////////////////////////// + // renderJS selector + ///////////////////////////////////////////////////////////////// + renderJS = function (selector) { + var result; + if (selector === window) { + // window is the 'this' value when loading a javascript file + // In this case, use the current loading gadget constructor + result = gadget_loading_klass; + } + if (result === undefined) { + throw new Error("Unknown selector '" + selector + "'"); + } + return result; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.AcquisitionError + ///////////////////////////////////////////////////////////////// + renderJS.AcquisitionError = function (message) { + this.name = "AcquisitionError"; + if ((message !== undefined) && (typeof message !== "string")) { + throw new TypeError('You must pass a string.'); + } + this.message = message || "Acquisition failed"; + }; + renderJS.AcquisitionError.prototype = new Error(); + renderJS.AcquisitionError.prototype.constructor = + renderJS.AcquisitionError; + + ///////////////////////////////////////////////////////////////// + // renderJS.getAbsoluteURL + ///////////////////////////////////////////////////////////////// + renderJS.getAbsoluteURL = function (url, base_url) { + var doc, base, link, + html = "<!doctype><html><head></head></html>"; + + if (url && base_url && !isAbsoluteOrDataURL.test(url)) { + doc = (new DOMParser()).parseFromString(html, 'text/html'); + base = doc.createElement('base'); + link = doc.createElement('link'); + doc.head.appendChild(base); + doc.head.appendChild(link); + base.href = base_url; + link.href = url; + return link.href; + } + return url; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.declareJS + ///////////////////////////////////////////////////////////////// + renderJS.declareJS = function (url) { + // Prevent infinite recursion if loading render.js + // more than once + var result; + if (javascript_registration_dict.hasOwnProperty(url)) { + result = RSVP.resolve(); + } else { + result = new RSVP.Promise(function (resolve, reject) { + var newScript; + newScript = document.createElement('script'); + newScript.type = 'text/javascript'; + newScript.src = url; + newScript.onload = function () { + javascript_registration_dict[url] = null; + resolve(); + }; + newScript.onerror = function (e) { + reject(e); + }; + document.head.appendChild(newScript); + }); + } + return result; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.declareCSS + ///////////////////////////////////////////////////////////////// + renderJS.declareCSS = function (url) { + // https://github.com/furf/jquery-getCSS/blob/master/jquery.getCSS.js + // No way to cleanly check if a css has been loaded + // So, always resolve the promise... + // http://requirejs.org/docs/faq-advanced.html#css + var result; + if (stylesheet_registration_dict.hasOwnProperty(url)) { + result = RSVP.resolve(); + } else { + result = new RSVP.Promise(function (resolve, reject) { + var link; + link = document.createElement('link'); + link.rel = 'stylesheet'; + link.type = 'text/css'; + link.href = url; + link.onload = function () { + stylesheet_registration_dict[url] = null; + resolve(); + }; + link.onerror = function (e) { + reject(e); + }; + document.head.appendChild(link); + }); + } + return result; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.declareGadgetKlass + ///////////////////////////////////////////////////////////////// + renderJS.declareGadgetKlass = function (url) { + var result; + + function parse(xhr) { + var tmp_constructor, + key, + parsed_html; + if (!gadget_model_dict.hasOwnProperty(url)) { + // Class inheritance + tmp_constructor = function () { + RenderJSGadget.call(this); + }; + tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); + tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); + tmp_constructor.declareMethod = + RenderJSGadget.declareMethod; + tmp_constructor.declareAcquiredMethod = + RenderJSGadget.declareAcquiredMethod; + tmp_constructor.allowPublicAcquisition = + RenderJSGadget.allowPublicAcquisition; + tmp_constructor.ready = + RenderJSGadget.ready; + tmp_constructor.declareService = + RenderJSGadget.declareService; + tmp_constructor.prototype = new RenderJSGadget(); + tmp_constructor.prototype.constructor = tmp_constructor; + tmp_constructor.prototype.__path = url; + tmp_constructor.prototype.__acquired_method_dict = {}; + tmp_constructor.allowPublicAcquisition("pleasePublishMyState", + pleasePublishMyState); + // https://developer.mozilla.org/en-US/docs/HTML_in_XMLHttpRequest + // https://developer.mozilla.org/en-US/docs/Web/API/DOMParser + // https://developer.mozilla.org/en-US/docs/Code_snippets/HTML_to_DOM + tmp_constructor.__template_element = + (new DOMParser()).parseFromString(xhr.responseText, "text/html"); + parsed_html = renderJS.parseGadgetHTMLDocument( + tmp_constructor.__template_element, + url + ); + for (key in parsed_html) { + if (parsed_html.hasOwnProperty(key)) { + tmp_constructor.prototype['__' + key] = parsed_html[key]; + } + } + + gadget_model_dict[url] = tmp_constructor; + } + + return gadget_model_dict[url]; + } + + if (gadget_model_dict.hasOwnProperty(url)) { + // Return klass object if it already exists + result = RSVP.resolve(gadget_model_dict[url]); + } else { + // Fetch the HTML page and parse it + result = new RSVP.Queue() + .push(function () { + return ajax(url); + }) + .push(function (xhr) { + return parse(xhr); + }); + } + return result; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.clearGadgetKlassList + ///////////////////////////////////////////////////////////////// + // For test purpose only + renderJS.clearGadgetKlassList = function () { + gadget_model_dict = {}; + javascript_registration_dict = {}; + stylesheet_registration_dict = {}; + }; + + ///////////////////////////////////////////////////////////////// + // renderJS.parseGadgetHTMLDocument + ///////////////////////////////////////////////////////////////// + renderJS.parseGadgetHTMLDocument = function (document_element, url) { + var settings = { + title: "", + interface_list: [], + required_css_list: [], + required_js_list: [] + }, + i, + element; + + if (!url || !isAbsoluteOrDataURL.test(url)) { + throw new Error("The url should be absolute: " + url); + } + + if (document_element.nodeType === 9) { + settings.title = document_element.title; + + if (document_element.head !== null) { + for (i = 0; i < document_element.head.children.length; i += 1) { + element = document_element.head.children[i]; + if (element.href !== null) { + // XXX Manage relative URL during extraction of URLs + // element.href returns absolute URL in firefox but "" in chrome; + if (element.rel === "stylesheet") { + settings.required_css_list.push( + renderJS.getAbsoluteURL(element.getAttribute("href"), url) + ); + } else if (element.nodeName === "SCRIPT" && + (element.type === "text/javascript" || + !element.type)) { + settings.required_js_list.push( + renderJS.getAbsoluteURL(element.getAttribute("src"), url) + ); + } else if (element.rel === + "http://www.renderjs.org/rel/interface") { + settings.interface_list.push( + renderJS.getAbsoluteURL(element.getAttribute("href"), url) + ); + } + } + } + } + } else { + throw new Error("The first parameter should be an HTMLDocument"); + } + return settings; + }; + + ///////////////////////////////////////////////////////////////// + // global + ///////////////////////////////////////////////////////////////// + window.rJS = window.renderJS = renderJS; + window.__RenderJSGadget = RenderJSGadget; + window.__RenderJSEmbeddedGadget = RenderJSEmbeddedGadget; + window.__RenderJSIframeGadget = RenderJSIframeGadget; + + /////////////////////////////////////////////////// + // Bootstrap process. Register the self gadget. + /////////////////////////////////////////////////// + + function mergeSubDict(dict) { + var subkey, + subkey2, + subresult2, + value, + result = {}; + for (subkey in dict) { + if (dict.hasOwnProperty(subkey)) { + value = dict[subkey]; + if (value instanceof Object) { + subresult2 = mergeSubDict(value); + for (subkey2 in subresult2) { + if (subresult2.hasOwnProperty(subkey2)) { + // XXX key should not have an . inside + if (result.hasOwnProperty(subkey + "." + subkey2)) { + throw new Error("Key " + subkey + "." + + subkey2 + " already present"); + } + result[subkey + "." + subkey2] = subresult2[subkey2]; + } + } + } else { + if (result.hasOwnProperty(subkey)) { + throw new Error("Key " + subkey + " already present"); + } + result[subkey] = value; + } + } + } + return result; + + } + + function bootstrap() { + var url = removeHash(window.location.href), + tmp_constructor, + root_gadget, + loading_gadget_promise = new RSVP.Queue(), + declare_method_count = 0, + embedded_channel, + notifyReady, + notifyDeclareMethod, + gadget_ready = false, + iframe_top_gadget, + last_acquisition_gadget; + + // Create the gadget class for the current url + if (gadget_model_dict.hasOwnProperty(url)) { + throw new Error("bootstrap should not be called twice"); + } + loading_klass_promise = new RSVP.Promise(function (resolve, reject) { + + last_acquisition_gadget = new RenderJSGadget(); + last_acquisition_gadget.__acquired_method_dict = { + getTopURL: function () { + return url; + }, + reportServiceError: function (param_list) { + letsCrash(param_list[0]); + }, + pleaseRedirectMyHash: function (param_list) { + window.location.replace(param_list[0]); + }, + pleasePublishMyState: function (param_list) { + var key, + first = true, + hash = "#"; + param_list[0] = mergeSubDict(param_list[0]); + for (key in param_list[0]) { + if (param_list[0].hasOwnProperty(key)) { + if (!first) { + hash += "&"; + } + hash += encodeURIComponent(key) + "=" + + encodeURIComponent(param_list[0][key]); + first = false; + } + } + return hash; + } + }; + // Stop acquisition on the last acquisition gadget + // Do not put this on the klass, as their could be multiple instances + last_acquisition_gadget.__aq_parent = function (method_name) { + throw new renderJS.AcquisitionError( + "No gadget provides " + method_name + ); + }; + + //we need to determine tmp_constructor's value before exit bootstrap + //because of function : renderJS + //but since the channel checking is async, + //we can't use code structure like: + // if channel communication is ok + // tmp_constructor = RenderJSGadget + // else + // tmp_constructor = RenderJSEmbeddedGadget + if (window.self === window.top) { + // XXX Copy/Paste from declareGadgetKlass + tmp_constructor = function () { + RenderJSGadget.call(this); + }; + tmp_constructor.declareMethod = RenderJSGadget.declareMethod; + tmp_constructor.declareAcquiredMethod = + RenderJSGadget.declareAcquiredMethod; + tmp_constructor.allowPublicAcquisition = + RenderJSGadget.allowPublicAcquisition; + tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); + tmp_constructor.ready = RenderJSGadget.ready; + tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); + tmp_constructor.declareService = + RenderJSGadget.declareService; + tmp_constructor.prototype = new RenderJSGadget(); + tmp_constructor.prototype.constructor = tmp_constructor; + tmp_constructor.prototype.__path = url; + gadget_model_dict[url] = tmp_constructor; + + // Create the root gadget instance and put it in the loading stack + root_gadget = new gadget_model_dict[url](); + + tmp_constructor.declareService(function () { + return listenHashChange(this); + }); + + setAqParent(root_gadget, last_acquisition_gadget); + + } else { + // Create the communication channel + embedded_channel = Channel.build({ + window: window.parent, + origin: "*", + scope: "renderJS" + }); + // Create the root gadget instance and put it in the loading stack + tmp_constructor = RenderJSEmbeddedGadget; + tmp_constructor.__ready_list = RenderJSGadget.__ready_list.slice(); + tmp_constructor.__service_list = RenderJSGadget.__service_list.slice(); + tmp_constructor.prototype.__path = url; + root_gadget = new RenderJSEmbeddedGadget(); + + + // Notify parent about gadget instanciation + notifyReady = function () { + if ((declare_method_count === 0) && (gadget_ready === true)) { + embedded_channel.notify({method: "ready"}); + } + }; + + // Inform parent gadget about declareMethod calls here. + notifyDeclareMethod = function (name) { + declare_method_count += 1; + embedded_channel.call({ + method: "declareMethod", + params: name, + success: function () { + declare_method_count -= 1; + notifyReady(); + }, + error: function () { + declare_method_count -= 1; + } + }); + }; + + notifyDeclareMethod("getInterfaceList"); + notifyDeclareMethod("getRequiredCSSList"); + notifyDeclareMethod("getRequiredJSList"); + notifyDeclareMethod("getPath"); + notifyDeclareMethod("getTitle"); + + // Surcharge declareMethod to inform parent window + tmp_constructor.declareMethod = function (name, callback) { + var result = RenderJSGadget.declareMethod.apply( + this, + [name, callback] + ); + notifyDeclareMethod(name); + return result; + }; + + tmp_constructor.declareService = + RenderJSGadget.declareService; + tmp_constructor.declareAcquiredMethod = + RenderJSGadget.declareAcquiredMethod; + tmp_constructor.allowPublicAcquisition = + RenderJSGadget.allowPublicAcquisition; + + //Default: Define __aq_parent to inform parent window + tmp_constructor.prototype.__aq_parent = function (method_name, + argument_list, time_out) { + return new RSVP.Promise(function (resolve, reject) { + embedded_channel.call({ + method: "acquire", + params: [ + method_name, + argument_list + ], + success: function (s) { + resolve(s); + }, + error: function (e) { + reject(e); + }, + timeout: time_out + }); + }); + }; + } + + tmp_constructor.prototype.__acquired_method_dict = {}; + tmp_constructor.allowPublicAcquisition("pleasePublishMyState", + pleasePublishMyState); + gadget_loading_klass = tmp_constructor; + + function init() { + // XXX HTML properties can only be set when the DOM is fully loaded + var settings = renderJS.parseGadgetHTMLDocument(document, url), + j, + key; + for (key in settings) { + if (settings.hasOwnProperty(key)) { + tmp_constructor.prototype['__' + key] = settings[key]; + } + } + tmp_constructor.__template_element = document.createElement("div"); + root_gadget.__element = document.body; + for (j = 0; j < root_gadget.__element.childNodes.length; j += 1) { + tmp_constructor.__template_element.appendChild( + root_gadget.__element.childNodes[j].cloneNode(true) + ); + } + RSVP.all([root_gadget.getRequiredJSList(), + root_gadget.getRequiredCSSList()]) + .then(function (all_list) { + var i, + js_list = all_list[0], + css_list = all_list[1]; + for (i = 0; i < js_list.length; i += 1) { + javascript_registration_dict[js_list[i]] = null; + } + for (i = 0; i < css_list.length; i += 1) { + stylesheet_registration_dict[css_list[i]] = null; + } + gadget_loading_klass = undefined; + }).then(function () { + + // select the target node + var target = document.querySelector('body'), + // create an observer instance + observer = new MutationObserver(function (mutations) { + var i, k, len, len2, node, added_list; + mutations.forEach(function (mutation) { + if (mutation.type === 'childList') { + + len = mutation.removedNodes.length; + for (i = 0; i < len; i += 1) { + node = mutation.removedNodes[i]; + if (node.nodeType === Node.ELEMENT_NODE) { + if (node.hasAttribute("data-gadget-url") && + (node._gadget !== undefined)) { + createMonitor(node._gadget); + } + added_list = + node.querySelectorAll("[data-gadget-url]"); + len2 = added_list.length; + for (k = 0; k < len2; k += 1) { + node = added_list[k]; + if (node._gadget !== undefined) { + createMonitor(node._gadget); + } + } + } + } + + len = mutation.addedNodes.length; + for (i = 0; i < len; i += 1) { + node = mutation.addedNodes[i]; + if (node.nodeType === Node.ELEMENT_NODE) { + if (node.hasAttribute("data-gadget-url") && + (node._gadget !== undefined)) { + if (document.contains(node)) { + startService(node._gadget); + } + } + added_list = + node.querySelectorAll("[data-gadget-url]"); + len2 = added_list.length; + for (k = 0; k < len2; k += 1) { + node = added_list[k]; + if (document.contains(node)) { + if (node._gadget !== undefined) { + startService(node._gadget); + } + } + } + } + } + + } + }); + }), + // configuration of the observer: + config = { + childList: true, + subtree: true, + attributes: false, + characterData: false + }; + + // pass in the target node, as well as the observer options + observer.observe(target, config); + + return root_gadget; + }).then(resolve, function (e) { + reject(e); + console.error(e); + throw e; + }); + } + document.addEventListener('DOMContentLoaded', init, false); + }); + + loading_gadget_promise + .push(function () { + return loading_klass_promise; + }) + .push(function (root_gadget) { + var i; + + function ready_wrapper() { + return root_gadget; + } + + if (window.top !== window.self) { + //checking channel should be done before sub gadget's declaration + //__ready_list: + //0: clearGadgetInternalParameters + //1: loadSubGadgetDOMDeclaration + //..... + tmp_constructor.__ready_list.splice(1, 0, function () { + return root_gadget.__aq_parent('getTopURL', [], 100) + .then(function (topURL) { + var base = document.createElement('base'); + base.href = topURL; + base.target = "_top"; + document.head.appendChild(base); + //the channel is ok + //so bind calls to renderJS method on the instance + embedded_channel.bind("methodCall", function (trans, v) { + root_gadget[v[0]].apply(root_gadget, v[1]) + .then(function (g) { + trans.complete(g); + }).fail(function (e) { + trans.error(e.toString()); + }); + trans.delayReturn(true); + }); + }) + .fail(function (error) { + if (error === "timeout_error") { + //the channel fail + //we consider current gadget is parent gadget + //redifine last acquisition gadget + iframe_top_gadget = true; + tmp_constructor.declareService(function () { + return listenHashChange(this); + }); + setAqParent(root_gadget, last_acquisition_gadget); + } else { + throw error; + } + }); + }); + } + + tmp_constructor.ready(function (g) { + return startService(g); + }); + + loading_gadget_promise.push(ready_wrapper); + for (i = 0; i < tmp_constructor.__ready_list.length; i += 1) { + // Put a timeout? + loading_gadget_promise + .push(tmp_constructor.__ready_list[i]) + // Always return the gadget instance after ready function + .push(ready_wrapper); + } + }); + if (window.self === window.top) { + loading_gadget_promise + .fail(function (e) { + letsCrash(e); + throw e; + }); + } else { + // Inform parent window that gadget is correctly loaded + loading_gadget_promise + .then(function () { + gadget_ready = true; + notifyReady(); + }) + .fail(function (e) { + //top gadget in iframe + if (iframe_top_gadget) { + letsCrash(e); + } else { + embedded_channel.notify({method: "failed", params: e.toString()}); + } + throw e; + }); + } + + } + bootstrap(); + +}(document, window, RSVP, DOMParser, Channel, MutationObserver, Node, + FileReader, Blob)); \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml new file mode 100644 index 0000000000..934df0b448 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_renderjs.js.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>travel_expense_renderjs.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_renderjs.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense RenderJS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540348.77</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37730.40029.35072</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540335.0</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472540316.54</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js new file mode 100644 index 0000000000..78261c3059 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.js @@ -0,0 +1,89 @@ +function multiLoopEventListener(jquery_wrapped_set_target, type, useCapture, callback) { + jquery_wrapped_set_target.each(function(){ + loopEventListener(this, type, useCapture, callback) + }) +} + +function createOptions(select, option_array, selected_value){ + var option + for(var i=0; i < option_array.length; i++){ + var option = document.createElement("option"); + option.text = option_array[i].text + option.value = option_array[i].value + select.appendChild(option); + } + if(selected_value){ + select.value = selected_value + } + $(select).selectmenu('refresh') +} + +function getSequentialID(record_type_prefix){ + var last_sequential_id = Cookies.get('last_sequential_id'); + if (last_sequential_id == undefined){ + last_sequential_id = 0; + }else{ + last_sequential_id = Number(last_sequential_id); + } + last_sequential_id++; + Cookies.set('last_sequential_id', last_sequential_id, {expires:36500, path:'/', secure:true}); + + var prefix = Cookies.get('sequential_id_prefix'); + if (prefix == undefined){ + prefix = getRandomPrefixForID(); + Cookies.set('sequential_id_prefix', prefix, {expires:36500, path:'/', secure:true}); + } + var date = new Date(); + var date_text = date.getFullYear()+('0'+(date.getMonth()+1)).slice(-2)+('0'+date.getDate()).slice(-2) + return record_type_prefix + '-' + date_text + '-' + prefix + ('0000'+last_sequential_id).slice(-5) +} + +function getRandomPrefixForID(){ + function random(){ + return 65 + Math.floor( Math.random() * 26 ); + } + return String.fromCharCode(random())+String.fromCharCode(random())+String.fromCharCode(random()); +} + +var my_resource = undefined; +var my_currency_option_array = new Array(); +function createResourceSelection(gadget, selected){ + if (my_resource !== undefined && my_currency_option_array.length != 0){ + createOptions(gadget.props.element.querySelector('select[name=resource]'), my_currency_option_array, selected); + }else{ + gadget.allDocs({ + query: 'portal_type: "Currency" AND validation_state: "validated"', + select_list: ["title", "logical_path", "relative_url"], + limit: [0, 1234567890] + }) + .then(function(result){ + for (i = 0; i < result.data.total_rows; i += 1) { + my_currency_option_array[i] = {text:result.data.rows[i].value.title, + value:result.data.rows[i].value.relative_url}; + } + }) + .then(function(){ + createOptions(gadget.props.element.querySelector('select[name=resource]'), my_currency_option_array, selected); + }); + } +} + +function translateString(string) { + var language = Cookies.get('language'); + if (language == undefined){ + language = 'en' + } + return translation_data[language][string] || string; +} + +function getWorkflowState(portal_type, id, sync_flag){ + var sync_state; + if(id.indexOf("_module/") > 0){ + sync_state = "Synced" + }else if(sync_flag){ + sync_state = "Not Synced" + }else{ + sync_state = "Not Ready To Sync" + } + return translateString(sync_state) +} \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml new file mode 100644 index 0000000000..58f4a8a126 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_page_module/travel_expense_utility.js.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>travel_expense_utility.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_utility.js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Utility</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472526622.78</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.39239.63448.21981</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472636564.26</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472523951.25</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml new file mode 100644 index 0000000000..418ad1f815 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app.xml @@ -0,0 +1,604 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Site" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Authenticated</string> + <string>Author</string> + <string>Manager</string> + <string>Member</string> + <string>Owner</string> + <string>Reviewer</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_folders_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Copy_or_Move_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Delete_objects_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Authenticated</string> + <string>Author</string> + <string>Manager</string> + <string>Member</string> + <string>Owner</string> + <string>Reviewer</string> + </tuple> + </value> + </item> + <item> + <key> <string>__before_publishing_traverse__</string> </key> + <value> + <object> + <klass> + <global name="MultiHook" module="ZPublisher.BeforeTraverse"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_defined_in_class</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>_hookname</string> </key> + <value> <string>__before_publishing_traverse__</string> </value> + </item> + <item> + <key> <string>_list</string> </key> + <value> + <list> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </list> + </value> + </item> + <item> + <key> <string>_prior</string> </key> + <value> + <none/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>__before_traverse__</string> </key> + <value> + <dictionary> + <item> + <key> + <tuple> + <int>99</int> + <string>ERP5 Web Site/travel_expense_app</string> + </tuple> + </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>_count</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_identity_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>_local_properties</string> </key> + <value> + <tuple> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>frontpage_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_frontpage_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_application_title</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_hateoas_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_view_action_category</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_default_view_action_reference</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_panel_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_manifest_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_jio_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + </tuple> + </value> + </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + <item> + <key> <string>_range_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> + </value> + </item> + <item> + <key> <string>available_language</string> </key> + <value> + <tuple> + <string>en</string> + </tuple> + </value> + </item> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>aggregate/web_page_module/gadget_travel_expense_record_application.html</string> + </tuple> + </value> + </item> + <item> + <key> <string>configuration_application_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_default_view_action_reference</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_frontpage_gadget_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_hateoas_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_jio_gadget_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_manifest_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_panel_gadget_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_view_action_category</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>container_layout</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>content_layout</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>custom_render_method_id</string> </key> + <value> <string>WebSection_renderDefaultPageAsGadget</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>frontpage_gadget_url</string> </key> + <value> <string>gadget_woelfel_pt_frontpage.html</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_app</string> </value> + </item> + <item> + <key> <string>layout_configuration_form_id</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Site</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>skin_selection_name</string> </key> + <value> <string>RJS</string> </value> + </item> + <item> + <key> <string>static_language_selection</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense App</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="WebSiteTraversalHook" module="Products.ERP5.Document.WebSite"/> + </pickle> + <pickle> + <dictionary/> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="Length" module="BTrees.Length"/> + </pickle> + <pickle> <int>0</int> </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="7" aka="AAAAAAAAAAc="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="8" aka="AAAAAAAAAAg="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>category_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAo=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="9" aka="AAAAAAAAAAk="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472094318.71</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="10" aka="AAAAAAAAAAo="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.37759.7217.49766</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472548158.97</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml new file mode 100644 index 0000000000..f8c7f665a8 --- /dev/null +++ b/bt5/erp5_travel_expense/PathTemplateItem/web_site_module/travel_expense_app/hateoas.xml @@ -0,0 +1,467 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Section" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_folders_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Copy_or_Move_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Delete_objects_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>__before_publishing_traverse__</string> </key> + <value> + <object> + <klass> + <global name="MultiHook" module="ZPublisher.BeforeTraverse"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_defined_in_class</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>_hookname</string> </key> + <value> <string>__before_publishing_traverse__</string> </value> + </item> + <item> + <key> <string>_list</string> </key> + <value> + <list> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </list> + </value> + </item> + <item> + <key> <string>_prior</string> </key> + <value> + <none/> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>__before_traverse__</string> </key> + <value> + <dictionary> + <item> + <key> + <tuple> + <int>99</int> + <string>ERP5 Web Section/hateoas</string> + </tuple> + </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>__translation_dict</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_identity_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_local_properties</string> </key> + <value> + <tuple> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>default_view_action_reference</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>view_action_category</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>frontpage_gadget</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>frontpage_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_frontpage_gadget_url</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>configuration_application_title</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>string</string> </value> + </item> + </dictionary> + </tuple> + </value> + </item> + <item> + <key> <string>_range_criterion</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>configuration_application_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>configuration_frontpage_gadget_url</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>container_layout</string> </key> + <value> <string>ERP5Document_getHateoas</string> </value> + </item> + <item> + <key> <string>content_layout</string> </key> + <value> <string>ERP5Document_getHateoas</string> </value> + </item> + <item> + <key> <string>custom_render_method_id</string> </key> + <value> <string>ERP5Document_getHateoas</string> </value> + </item> + <item> + <key> <string>default_view_action_reference</string> </key> + <value> <string>view</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>empty_criterion_valid</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>frontpage_gadget</string> </key> + <value> <string>gadget_woelfel_pt_frontpage.html</string> </value> + </item> + <item> + <key> <string>frontpage_gadget_url</string> </key> + <value> <string>gadget_woelfel_pt_frontpage.html</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>hateoas</string> </value> + </item> + <item> + <key> <string>layout_configuration_form_id</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Section</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>skin_selection_name</string> </key> + <value> <string>HalRestricted</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Restricted Hateoas</string> </value> + </item> + <item> + <key> <string>view_action_category</string> </key> + <value> <string>object_view</string> </value> + </item> + <item> + <key> <string>visible</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="WebSectionTraversalHook" module="Products.ERP5.Document.WebSection"/> + </pickle> + <pickle> + <dictionary/> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>category_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472094281.15</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>embedded</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="7" aka="AAAAAAAAAAc="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>953.30296.45093.48503</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1472548158.93</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml b/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml new file mode 100644 index 0000000000..9cf38fae2f --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeAllowedContentTypeTemplateItem/allowed_content_types.xml @@ -0,0 +1,8 @@ +<allowed_content_type_list> + <portal_type id="Expense Record Module"> + <item>Expense Record</item> + </portal_type> + <portal_type id="Expense Validation Item Module"> + <item>Expense Validation Item</item> + </portal_type> +</allowed_content_type_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml b/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml new file mode 100644 index 0000000000..c33873f0d3 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeBaseCategoryTemplateItem/base_category_list.xml @@ -0,0 +1,8 @@ +<base_category_list> + <portal_type id="Expense Record Module"> + <item>business_application</item> + </portal_type> + <portal_type id="Expense Validation Item Module"> + <item>business_application</item> + </portal_type> +</base_category_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml b/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml new file mode 100644 index 0000000000..071b63cb4d --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeHiddenContentTypeTemplateItem/hidden_content_type_list.xml @@ -0,0 +1,5 @@ +<hidden_content_type_list> + <portal_type id="Expense Record Module"> + <item>Expense Record</item> + </portal_type> +</hidden_content_type_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml b/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml new file mode 100644 index 0000000000..e26b10eab7 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypePropertySheetTemplateItem/property_sheet_list.xml @@ -0,0 +1,5 @@ +<property_sheet_list> + <portal_type id="Expense Record"> + <item>ExpenseRecord</item> + </portal_type> +</property_sheet_list> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record%20Module.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record%20Module.xml new file mode 100644 index 0000000000..ea5107e02a --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record%20Module.xml @@ -0,0 +1,138 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_property_domain_dict</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>content_icon</string> </key> + <value> <string>folder_icon.gif</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addFolder</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>module</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Record Module</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Folder</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>short_title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>short_title</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>title</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml new file mode 100644 index 0000000000..a24febfd02 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Record.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>content_icon</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addXMLObject</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>event</string> + <string>delivery</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Record</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> <string>ExpenseRecord_init</string> </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Event</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml new file mode 100644 index 0000000000..7d7020e78f --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item%20Module.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_property_domain_dict</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>content_icon</string> </key> + <value> <string>folder_icon.gif</string> </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addFolder</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>module</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Validation Item Module</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Folder</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>short_title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>short_title</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="TranslationInformation" module="Products.ERP5Type.TranslationProviderBase"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>domain_name</string> </key> + <value> <string>erp5_ui</string> </value> + </item> + <item> + <key> <string>property_name</string> </key> + <value> <string>title</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml new file mode 100644 index 0000000000..ac31ce344d --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeTemplateItem/portal_types/Expense%20Validation%20Item.xml @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Base Type" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>content_icon</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>factory</string> </key> + <value> <string>addXMLObject</string> </value> + </item> + <item> + <key> <string>group_list</string> </key> + <value> + <tuple> + <string>ticket</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Expense Validation Item</string> </value> + </item> + <item> + <key> <string>init_script</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>permission</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Base Type</string> </value> + </item> + <item> + <key> <string>type_class</string> </key> + <value> <string>Ticket</string> </value> + </item> + <item> + <key> <string>type_interface</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_mixin</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml b/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml new file mode 100644 index 0000000000..8cdb568de4 --- /dev/null +++ b/bt5/erp5_travel_expense/PortalTypeWorkflowChainTemplateItem/workflow_chain_type.xml @@ -0,0 +1,10 @@ +<workflow_chain> + <chain> + <type>Expense Record</type> + <workflow>document_conversion_interaction_workflow, edit_workflow, event_interaction_workflow, pricing_interaction_workflow, travel_expense_event_simulation_workflow, travel_expense_jio_interaction_workflow</workflow> + </chain> + <chain> + <type>Expense Validation Item</type> + <workflow>edit_workflow, pricing_interaction_workflow, ticket_interaction_workflow, ticket_workflow, travel_expense_jio_interaction_workflow</workflow> + </chain> +</workflow_chain> \ No newline at end of file diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord.xml new file mode 100644 index 0000000000..35bffb000e --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Property Sheet" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_count</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>_mt_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>_tree</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Property Sheet</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Length" module="BTrees.Length"/> + </pickle> + <pickle> <int>0</int> </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="OOBTree" module="BTrees.OOBTree"/> + </pickle> + <pickle> + <none/> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/comment_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/comment_property.xml new file mode 100644 index 0000000000..20bdfd9a5f --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/comment_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>comment_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml new file mode 100644 index 0000000000..778c2d096f --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/contributor_category.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Category Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>contributor_category</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Category Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml new file mode 100644 index 0000000000..98493e1c1b --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/copy_of_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>copy_of_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/date_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/date_property.xml new file mode 100644 index 0000000000..a2110e77d5 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/date_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>date_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml new file mode 100644 index 0000000000..b94157dffa --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/doc_id_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>doc_id_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/photo_data_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/photo_data_property.xml new file mode 100644 index 0000000000..32de36ab83 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/photo_data_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>photo_data_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/quantity_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/quantity_property.xml new file mode 100644 index 0000000000..8e6345326d --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/quantity_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>quantity_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml new file mode 100644 index 0000000000..210bf53a4f --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/record_revision_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/int</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>record_revision_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml new file mode 100644 index 0000000000..0af10e9e48 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/resource_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>resource_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml new file mode 100644 index 0000000000..b11e76453f --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/sync_flag_property.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/string</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>sync_flag_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml new file mode 100644 index 0000000000..97797f51f6 --- /dev/null +++ b/bt5/erp5_travel_expense/PropertySheetTemplateItem/portal_property_sheets/ExpenseRecord/visible_in_html5_app_flag_property.xml @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Standard Property" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>categories</string> </key> + <value> + <tuple> + <string>elementary_type/boolean</string> + </tuple> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>visible_in_html5_app_flag_property</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Standard Property</string> </value> + </item> + <item> + <key> <string>property_default</string> </key> + <value> + <none/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml new file mode 100644 index 0000000000..71ac7edaac --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense.xml @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Folder" module="OFS.Folder"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_local_properties</string> </key> + <value> + <tuple> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>business_template_skin_layer_priority</string> </value> + </item> + <item> + <key> <string>type</string> </key> + <value> <string>float</string> </value> + </item> + </dictionary> + </tuple> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>business_template_skin_layer_priority</string> </key> + <value> <float>99.59</float> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>erp5_travel_expense</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml new file mode 100644 index 0000000000..d56be5e14f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view.xml @@ -0,0 +1,160 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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>Base_edit</string> </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> + <string>listbox</string> + </list> + </value> + </item> + <item> + <key> <string>center</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list> + <string>listbox_source</string> + <string>listbox_source_credit</string> + <string>listbox_source_debit</string> + <string>listbox_source_function</string> + <string>listbox_source_funding</string> + </list> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_source_section</string> + <string>my_source_reference</string> + <string>my_title</string> + <string>my_destination_section_title</string> + <string>my_reference</string> + <string>my_ledger</string> + <string>my_resource</string> + <string>your_photo</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>my_start_date</string> + <string>my_source_project_title</string> + <string>my_comment</string> + <string>my_causality_title_list</string> + <string>my_translated_portal_type</string> + <string>my_translated_simulation_state_title</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>AccountingTransaction_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>AccountingTransaction_view</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>Accounting Transaction</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml new file mode 100644 index 0000000000..5ae7e9f70f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>list_method</string> + <string>stat_method</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</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>my_source_view_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>stat_method</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </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> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>AccountingTransaction_getAccountingTransactionLineList</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="Method" module="Products.Formulator.MethodField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>method_name</string> </key> + <value> <string>AccountingTransaction_getAccountingTransactionLineList</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml new file mode 100644 index 0000000000..3eac19821d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_source</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>listbox_node</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml new file mode 100644 index 0000000000..9459578c3a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_credit.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_source_credit</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> + <item> + <key> <string>title</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>listbox_source_credit</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>listbox_source_credit</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml new file mode 100644 index 0000000000..b3227b547a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_debit.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_source_debit</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> + <item> + <key> <string>title</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>listbox_source_debit</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>listbox_source_debit</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml new file mode 100644 index 0000000000..d83843f0f3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_function.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_source_function</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>listbox_function</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml new file mode 100644 index 0000000000..8c337d6705 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/listbox_source_funding.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox_source_funding</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>listbox_funding</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml new file mode 100644 index 0000000000..6b51044ef1 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_causality_title_list.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_causality_title_list</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>my_causality_title_list</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml new file mode 100644 index 0000000000..fb67d8a035 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_comment.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</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>description</string> </key> + <value> <string>Comments which can be read by internal users but unlike description, are not printed out on official documents.</string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Comments</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml new file mode 100644 index 0000000000..54ca51c50d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_destination_section_title.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>base_category</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_destination_section_title</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>base_category</string> </key> + <value> <string>destination_section</string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_destination_section_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml new file mode 100644 index 0000000000..6daf4f3bbc --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_ledger.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_ledger</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>my_ledger</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml new file mode 100644 index 0000000000..a69166ad4b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_reference.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </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>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Document Reference</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml new file mode 100644 index 0000000000..015d866ea3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_resource.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource</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>my_resource</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml new file mode 100644 index 0000000000..b437844945 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_project_title.xml @@ -0,0 +1,637 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="RelationStringField" module="Products.ERP5Form.RelationField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_project_title</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>line_too_long</string> </key> + <value> <string>A line was too long.</string> </value> + </item> + <item> + <key> <string>relation_result_ambiguous</string> </key> + <value> <string>Select appropriate document in the list.</string> </value> + </item> + <item> + <key> <string>relation_result_empty</string> </key> + <value> <string>No such document was found.</string> </value> + </item> + <item> + <key> <string>relation_result_too_long</string> </key> + <value> <string>Too many documents were found.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>You entered too many characters.</string> </value> + </item> + <item> + <key> <string>too_many_lines</string> </key> + <value> <string>You entered too many lines.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>allow_jump</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>base_category</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>catalog_index</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>columns</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>container_getter_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_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>jump_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>parameter_list</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>proxy_listbox_ids</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>relation_form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>relation_setter_id</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>sort</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>allow_jump</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>base_category</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>catalog_index</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>columns</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>container_getter_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </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>first_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>jump_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>parameter_list</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent> + </value> + </item> + <item> + <key> <string>proxy_listbox_ids</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>relation_form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>relation_setter_id</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>sort</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>update_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>allow_creation</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>allow_jump</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>base_category</string> </key> + <value> <string>(tales)</string> </value> + </item> + <item> + <key> <string>catalog_index</string> </key> + <value> <string>(tales)</string> </value> + </item> + <item> + <key> <string>columns</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>container_getter_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra_item</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>first_item</string> </key> + <value> <int>0</int> </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>jump_method</string> </key> + <value> <string>Base_jumpToRelatedDocument</string> </value> + </item> + <item> + <key> <string>list_method</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>parameter_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>(tales)</string> + <string>(tales)</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>proxy_listbox_ids</string> </key> + <value> + <list> + <tuple> + <string>ProjectModule_viewProjectList/listbox</string> + <string>Projects</string> + </tuple> + <tuple> + <string>Folder_viewTicketList/listbox</string> + <string>Campaigns</string> + </tuple> + <tuple> + <string>Base_viewRelatedObjectListBase/listbox</string> + <string>All</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>relation_form_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>relation_setter_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>sort</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Project</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>update_method</string> </key> + <value> <string>Base_validateRelation</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: field.Base_getFieldParameterDict()[\'base_category\']</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: field.Base_getFieldParameterDict()[\'catalog_index\']</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>context/getPortalProjectTypeList</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="6" aka="AAAAAAAAAAY="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: [(x, x) for x in context.getPortalProjectTypeList()]</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml new file mode 100644 index 0000000000..be7934e147 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_reference.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_reference</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + </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>description</string> </key> + <value> <string>the accountant transaction reference of the sale</string> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_source_reference</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Transaction Reference</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml new file mode 100644 index 0000000000..38cd2f1449 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_source_section.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_section</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>my_source_section</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml new file mode 100644 index 0000000000..0156a7a7b9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_start_date.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_start_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>my_stop_date</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml new file mode 100644 index 0000000000..e9cec1bb03 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</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>my_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml new file mode 100644 index 0000000000..aa83411179 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_portal_type.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_portal_type</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>my_translated_portal_type</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml new file mode 100644 index 0000000000..ef385a03e8 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/my_translated_simulation_state_title.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_simulation_state_title</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>my_translated_simulation_state_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>AccountingTransaction_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml new file mode 100644 index 0000000000..503663fe1e --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/AccountingTransaction_view/your_photo.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ImageField" module="Products.ERP5Form.ImageField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_photo</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_display</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_format</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_pre_converted_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_quality</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_display</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_format</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_pre_converted_only</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_quality</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string>photo</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>image_display</string> </key> + <value> <string>original</string> </value> + </item> + <item> + <key> <string>image_format</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>image_pre_converted_only</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>image_quality</string> </key> + <value> <int>75</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Photo</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py new file mode 100644 index 0000000000..759f684671 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.py @@ -0,0 +1,9 @@ +portal = context.getPortalObject() + +date_now = None +if params is not None: + date_now = params.get('date_now') + +for brain in context.portal_catalog(portal_type="Expense Record", simulation_state="draft"): + if brain.getSimulationState() == 'draft': + brain.activate().ExpenseRecord_createExpenseValidationItem(date_now=date_now) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml new file mode 100644 index 0000000000..52a4cce297 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Alarm_createExpenseValidationItem.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>tag, fixit, params</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Alarm_createExpenseValidationItem</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py new file mode 100644 index 0000000000..39e7442e2f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.py @@ -0,0 +1,11 @@ +record_portal_type = record_value.portal_type +mapping = { +'Expense Record':(context.expense_validation_item_module, 'Expense Validation Item'), +} + +module, portal_type = mapping[record_portal_type] + +if getattr(module, record_value.getDocId(), None) is not None: + raise ValueError('%s %s' % (module, record_value.getDocId())) + +return module.newContent(portal_type=portal_type, id=record_value.getDocId()) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml new file mode 100644 index 0000000000..e46b942ec4 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_createTicket.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>record_value</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_createTicket</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py new file mode 100644 index 0000000000..330f3d4bba --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.py @@ -0,0 +1 @@ +return DateTime('%s 00:00:00 GMT+9' % date_text) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml new file mode 100644 index 0000000000..9b9002cd12 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getDateTime.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>date_text</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_getDateTime</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py new file mode 100644 index 0000000000..4a0cde982c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.py @@ -0,0 +1,24 @@ +if not record_value.getCopyOf(): + return ValueError + +original_event = context.getPortalObject().restrictedTraverse(record_value.getCopyOf()) + +if original_event is None: + raise ValueError + +if not original_event.getSimulationState() in ('cancelled', 'deleted', 'draft', 'error'): + return original_event + +record_list = [] +for brain in context.portal_catalog(portal_type=record_value.portal_type, title={'query':record_value.getDocId(), 'key':'ExactMatch'}): + record = brain.getObject() + if record in (record_value, original_event): + continue + if not record.getSimulationState() in ('cancelled', 'deleted', 'draft'): + record_list.append(record) + +if not record_list: + return None + +record_list.sort(key=lambda x:(x.getRecordRevision(), int(x.getId()))) +return record_list[-1] diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml new file mode 100644 index 0000000000..27a78063ff --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_getValidOriginalEvent.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>record_value</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_getValidOriginalEvent</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py new file mode 100644 index 0000000000..de6edeba72 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.py @@ -0,0 +1,19 @@ +doc_id = record_value.getDocId() +portal_type = record_value.portal_type +revision = int(record_value.getRecordRevision()) + +if not doc_id: + return False + +for brain in context.portal_catalog(portal_type=portal_type, title={'query':doc_id, 'key':'ExactMatch'}): + if brain.getObject() == record_value: + continue + + if int(brain.getRecordRevision()) > revision: + return False + elif int(brain.getRecordRevision()) == revision: + if not brain.getSimulationState() in ('cancelled', 'deleted'): + if int(brain.getId()) <= int(record_value.getId()): + return False + +return True diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml new file mode 100644 index 0000000000..875ac96823 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_isNewestVersionRecord.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>record_value</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_isNewestVersionRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml new file mode 100644 index 0000000000..89bddc38a2 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio.xml @@ -0,0 +1,156 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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></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>my_title</string> + <string>my_relative_url</string> + <string>my_parent_uid</string> + <string>my_logical_path</string> + <string>my_category_relative_url</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>Base_viewAsJio</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>General</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>View</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml new file mode 100644 index 0000000000..4d0ca9ddf9 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_category_relative_url.xml @@ -0,0 +1,279 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_category_relative_url</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Category Relative Url</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml new file mode 100644 index 0000000000..42f24b93f5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_logical_path.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_logical_path</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Logical Path</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml new file mode 100644 index 0000000000..153ebbe95b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_parent_uid.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_parent_uid</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Parent Uid</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml new file mode 100644 index 0000000000..f0ac5a535f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_relative_url.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_relative_url</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Relative Url</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml new file mode 100644 index 0000000000..2abedf0032 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Base_viewAsJio/my_title.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml new file mode 100644 index 0000000000..fd0b305db2 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio.xml @@ -0,0 +1,156 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </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></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>my_title</string> + <string>my_relative_url</string> + <string>my_parent_uid</string> + <string>my_logical_path</string> + <string>my_validation_state</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>Currency_viewAsJio</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>General</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>Currency</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml new file mode 100644 index 0000000000..42f24b93f5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_logical_path.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_logical_path</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Logical Path</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml new file mode 100644 index 0000000000..153ebbe95b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_parent_uid.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_parent_uid</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Parent Uid</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml new file mode 100644 index 0000000000..f0ac5a535f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_relative_url.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_relative_url</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Relative Url</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml new file mode 100644 index 0000000000..2abedf0032 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_title.xml @@ -0,0 +1,275 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>30</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_string_field_width\', 30)</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml new file mode 100644 index 0000000000..dddd5abcf1 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/Currency_viewAsJio/my_validation_state.xml @@ -0,0 +1,96 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_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> + </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>my_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Validation State</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py new file mode 100644 index 0000000000..ffdc616860 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.py @@ -0,0 +1,1014 @@ +from ZTUtils import make_query +import json +from base64 import urlsafe_b64encode, urlsafe_b64decode +from DateTime import DateTime +if REQUEST is None: + REQUEST = context.REQUEST + # raise Unauthorized +if response is None: + response = REQUEST.RESPONSE + +url_template_dict = { + "form_action": "%(traversed_document_url)s/%(action_id)s", + "traverse_generator": "%(root_url)s/%(script_id)s?mode=traverse" + \ + "&relative_url=%(relative_url)s&view=%(view)s", + "traverse_template": "%(root_url)s/%(script_id)s?mode=traverse" + \ + "{&relative_url,view}", + "search_template": "%(root_url)s/%(script_id)s?mode=search" + \ + "{&query,select_list*,limit*,sort_on*}", + "custom_search_template": "%(root_url)s/%(script_id)s?mode=search" + \ + "&relative_url=%(relative_url)s" \ + "&form_relative_url=%(form_relative_url)s" \ + "&list_method=%(list_method)s" \ + "&default_param_json=%(default_param_json)s" \ + "{&query,select_list*,limit*,sort_on*}", + "custom_search_template_no_editable": "%(root_url)s/%(script_id)s?mode=search" + \ + "&relative_url=%(relative_url)s" \ + "&list_method=%(list_method)s" \ + "&default_param_json=%(default_param_json)s" \ + "{&query,select_list*,limit*,sort_on*}", + "new_content_action": "%(root_url)s/%(script_id)s?mode=newContent", + "bulk_action": "%(root_url)s/%(script_id)s?mode=bulk", + # XXX View is set by default to empty + "document_hal": "%(root_url)s/%(script_id)s?mode=traverse" + \ + "&relative_url=%(relative_url)s", + "jio_get_template": "urn:jio:get:%(relative_url)s", + "jio_search_template": "urn:jio:allDocs?%(query)s" +} + +default_document_uri_template = url_template_dict["jio_get_template"] + +def getRealRelativeUrl(document): + return '/'.join(portal.portal_url.getRelativeContentPath(document)) + +def getFormRelativeUrl(form): + return portal.portal_catalog( + portal_type="ERP5 Form", + uid=form.getUid(), + id=form.getId(), + limit=1, + select_dict={'relative_url': None} + )[0].relative_url + +def getFieldDefault(traversed_document, field, key, value=None): + # REQUEST.get(field.id, field.get_value("default")) + return traversed_document.Field_getDefaultValue(field, key, value, REQUEST) + +def renderField(traversed_document, field, form_relative_url, value=None, meta_type=None, key=None): + if meta_type is None: + meta_type = field.meta_type + if key is None: + key = field.generate_field_key() + + if meta_type == "ProxyField": + result = renderField(traversed_document, field, form_relative_url, value, meta_type=field.getRecursiveTemplateField().meta_type, key=key) + elif meta_type == "ListField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + # XXX Message can not be converted to json as is + "items": field.get_value("items"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + elif meta_type == "RadioField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + "items": field.get_value("items"), + "select_first_item": field.get_value("first_item"), + "orientation": field.get_value("orientation"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + elif meta_type in ("ParallelListField", "MultiListField"): + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + # XXX Message can not be converted to json as is + "items": field.get_value("items"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + result["sub_select_key"] = traversed_document.Field_getSubFieldKeyDict(field, 'default:list', key=result["key"]) + result["sub_input_key"] = "default_" + traversed_document.Field_getSubFieldKeyDict(field, 'default:list:int', key=result["key"]) + elif meta_type in ("StringField", "FloatField", "EmailField", "TextAreaField", + "LinesField", "ImageField", "FileField", "IntegerField", + "PasswordField", "EditorField"): + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + if meta_type == "FloatField": + result["precision"] = field.get_value("precision") + if meta_type == "ImageField": + options = {} + options['display'] = field.get_value('image_display') + options['format'] = field.get_value('image_format') + options['quality'] = field.get_value('image_quality') + pre_converted_only = field.get_value('image_pre_converted_only') + if pre_converted_only: + options['pre_converted_only'] = pre_converted_only + parameters = '&'.join(['%s=%s' % (k, v) for k, v in options.items() \ + if v]) + if parameters: + result["default"] = '%s?%s' % (result["default"], parameters) + + elif meta_type == "DateTimeField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + "date_only": field.get_value("date_only"), + "ampm_time_style": field.get_value("ampm_time_style"), + "timezone_style": field.get_value("timezone_style"), + "allow_empty_time": field.get_value('allow_empty_time'), + "hide_day": field.get_value('hide_day'), + "hidden_day_is_last_day": field.get_value('hidden_day_is_last_day'), + } + date_value = getFieldDefault(traversed_document, field, result["key"], value) + if same_type(date_value, DateTime()): + # Serialize DateTime + date_value = date_value.rfc822() + result["default"] = date_value + for subkey in ("year", "month", "day", "hour", "minute", "ampm", "timezone"): + result["subfield_%s_key" % subkey] = traversed_document.Field_getSubFieldKeyDict(field, subkey, key=result["key"]) + + elif meta_type in ("RelationStringField", "MultiRelationStringField"): + portal_type_list = field.get_value('portal_type') + if portal_type_list: + portal_type_list = [x[0] for x in portal_type_list] + + # ported from Base_jumpToRelatedDocument\n + base_category = field.get_value('base_category') + kw = {} + for k, v in field.get_value('parameter_list'): + kw[k] = v + + accessor_name = 'get%sValueList' % \ + ''.join([part.capitalize() for part in base_category.split('_')]) + jump_reference_list = getattr(traversed_document, accessor_name)( + portal_type=[x[0] for x in field.get_value('portal_type')], + + filter=kw + ) + query = url_template_dict["jio_search_template"] % { + "query": make_query({"query": sql_catalog.buildQuery( + {"portal_type": portal_type_list} + ).asSearchTextExpression(sql_catalog)}) + } + result = { + "portal_types": portal_type_list, + "query": query, + "catalog_index": field.get_value('catalog_index'), + "allow_jump": field.get_value('allow_jump'), + "allow_creation": field.get_value('allow_creation'), + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required") + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + result["relation_field_id"] = traversed_document.Field_getSubFieldKeyDict( + field, + "relation", + key=result["key"] + ) + result["relation_item_key"] = traversed_document.Field_getSubFieldKeyDict( + field, + "item", key=result["key"] + ) + + if jump_reference_list: + url = [jump_reference.getRelativeUrl() for jump_reference in jump_reference_list] + uid = [jump_reference.getUid() for jump_reference in jump_reference_list] + result["relation_item_relative_url"] = url + result["relation_item_uid"] = uid + + elif meta_type == "CheckBoxField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title") + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + elif meta_type == "MultiCheckBoxField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "required": field.get_value("required"), + # XXX Message can not be converted to json as is + "items": field.get_value("items"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + elif meta_type == "GadgetField": + result = { + "type": meta_type, + "key": key, + "editable": field.get_value("editable"), + "css_class": field.get_value("css_class"), + "hidden": field.get_value("hidden"), + "description": field.get_value("description"), + "title": field.get_value("title"), + "url": field.get_value("gadget_url"), + "sandbox": field.get_value("js_sandbox"), + } + result["default"] = getFieldDefault(traversed_document, field, result["key"], value) + elif meta_type == "ListBox": + # XXX Not implemented + column_list = field.get_value("columns") + search_column_list = field.get_value('search_columns') + editable_column_list = field.get_value('editable_columns') + + # XXX +# list_method = getattr(traversed_document, traversed_document.Listbox_getListMethodName(field)) + # portal_types = [x[1] for x in field.get_value('portal_types')] + portal_types = field.get_value('portal_types') + default_params = dict(field.get_value('default_params')) + # How to implement pagination? + # default_params.update(REQUEST.form) + lines = field.get_value('lines') + list_method_name = traversed_document.Listbox_getListMethodName(field) + list_method_query_dict = dict( + portal_type=[x[1] for x in portal_types], **default_params + ) + list_method_custom = None + + if (editable_column_list): + list_method_custom = url_template_dict["custom_search_template"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id, + "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), + "form_relative_url": "%s/%s" % (form_relative_url, field.id), + "list_method": list_method_name, + "default_param_json": urlsafe_b64encode(json.dumps(list_method_query_dict)) + } + list_method_query_dict = {} + elif (list_method_name == "portal_catalog"): + pass + elif (list_method_name == "searchFolder"): + list_method_query_dict["parent_uid"] = traversed_document.getUid() + else: + list_method_custom = url_template_dict["custom_search_template_no_editable"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id, + "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), + "list_method": list_method_name, + "default_param_json": urlsafe_b64encode(json.dumps(list_method_query_dict)) + } + list_method_query_dict = {} + +# row_list = list_method(limit=lines, portal_type=portal_types, +# **default_params) +# line_list = [] +# for row in row_list: +# document = row.getObject() +# line = { +# "url": url_template_dict["document_hal"] % { +# "root_url": site_root.absolute_url(), +# "relative_url": document.getRelativeUrl(), +# "script_id": script.id +# } +# } +# for property, title in columns: +# prop = document.getProperty(property) +# if same_type(prop, DateTime()): +# prop = "XXX Serialize DateTime" +# line[title] = prop +# line["_relative_url"] = document.getRelativeUrl() +# line_list.append(line) + + result = { + "type": meta_type, + "editable": field.get_value("editable"), + # "column_list": [x[1] for x in columns], + "column_list": column_list, + "search_column_list": search_column_list, + "editable_column_list": editable_column_list, + "show_anchor": field.get_value("anchor"), +# "line_list": line_list, + "title": field.get_value("title"), + "key": key, + "portal_type": portal_types, + "lines": lines, + "default_params": default_params, + "list_method": list_method_name + } + if (list_method_custom is not None): + result["list_method_template"] = list_method_custom + + result["query"] = url_template_dict["jio_search_template"] % { + "query": make_query({"query": sql_catalog.buildQuery( + list_method_query_dict + ).asSearchTextExpression(sql_catalog)}) + } + else: + # XXX Not implemented + result = { + "type": meta_type, + "_debug": "Unsupported field type", + "title": field.get_value("title"), + "key": key, + } + return result + + +def renderForm(traversed_document, form, response_dict): + REQUEST.set('here', traversed_document) + field_errors = REQUEST.get('field_errors', {}) + + #hardcoded + if form.pt == 'form_dialog': + action_to_call = "Base_callDialogMethod" + else: + action_to_call = form.action + + # Form action + response_dict['_actions'] = { + 'put': { + "href": url_template_dict["form_action"] % { + "traversed_document_url": site_root.absolute_url() + "/" + traversed_document.getRelativeUrl(), + "action_id": action_to_call + }, + "action": form.action, + "method": form.method, + } + } + # Form traversed_document + response_dict['_links']['traversed_document'] = { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": traversed_document.getRelativeUrl(), + "script_id": script.id + }, + "name": traversed_document.getRelativeUrl(), + "title": traversed_document.getTitle() + } + + form_relative_url = getFormRelativeUrl(form) + response_dict['_links']['form_definition'] = { +# "href": default_document_uri_template % { +# "root_url": site_root.absolute_url(), +# "script_id": script.id, +# "relative_url": getFormRelativeUrl(form) +# }, + "href": default_document_uri_template % { + "relative_url": form_relative_url + }, + 'name': form.id + } + + for group in form.Form_getGroupTitleAndId(): + + if group['gid'].find('hidden') < 0: +# field_list = [] + for field in form.get_fields_in_group(group['goid']): +# field_list.append((field.id, renderRawField(field))) + if field.get_value("enabled"): + try: + response_dict[field.id] = renderField(traversed_document, field, form_relative_url) + if field_errors.has_key(field.id): + response_dict[field.id]["error_text"] = field_errors[field.id].error_text + except AttributeError: + # Do not crash if field configuration is wrong. + pass + + # for field_group in field.form.get_groups(): + # traversed_document.log("Field group: " + field_group) + # traversed_document.log(field_group) + # for field_property in field.form.get_fields_in_group(field_group): + # # traversed_document.log("Field attribute: " + field_property.id) + # # field.get_value(field_property.id) + # traversed_document.log(field_property) + +# group_list.append((group['gid'], field_list)) + + response_dict["form_id"] = { + "type": "StringField", + "key": "form_id", + "default": form.id, + "editable": 0, + "css_class": "", + "hidden": 1, + "description": "", + "title": "form_id", + "required": 1, + } + +# response_dict["group_list"] = group_list +# rendered_response_dict["_embedded"] = { +# "form": raw_response_dict +# } + + +# XXX form action update, etc +def renderRawField(field): + meta_type = field.meta_type + + return { + "meta_type": field.meta_type + } + + + if meta_type == "MethodField": + result = { + "meta_type": field.meta_type + } + else: + result = { + "meta_type": field.meta_type, + "_values": field.values, + # XXX TALES expression is not JSON serializable by default + # "_tales": field.tales + "_overrides": field.overrides + } + if meta_type == "ProxyField": + result['_delegated_list'] = field.delegated_list +# try: +# result['_delegated_list'].pop('list_method') +# except KeyError: +# pass + + # XXX ListMethod is not JSON serialized by default + try: + result['_values'].pop('list_method') + except KeyError: + pass + try: + result['_overrides'].pop('list_method') + except KeyError: + pass + return result + + +def renderFormDefinition(form, response_dict): + group_list = [] + for group in form.Form_getGroupTitleAndId(): + + if group['gid'].find('hidden') < 0: + field_list = [] + + for field in form.get_fields_in_group(group['goid'], include_disabled=1): + field_list.append((field.id, renderRawField(field))) + + group_list.append((group['gid'], field_list)) + response_dict["group_list"] = group_list + response_dict["title"] = form.getTitle() + response_dict["pt"] = form.pt + response_dict["action"] = form.action + + +mime_type = 'application/hal+json' +portal = context.getPortalObject() +sql_catalog = portal.portal_catalog.getSQLCatalog() + +# Calculate the site root to prevent unexpected browsing +is_web_mode = (context.REQUEST.get('current_web_section', None) is not None) or (hasattr(context, 'isWebMode') and context.isWebMode()) +# is_web_mode = traversed_document.isWebMode() +if is_web_mode: + site_root = context.getWebSectionValue() + view_action_type = site_root.getLayoutProperty("configuration_view_action_category", default='object_view') +else: + site_root = portal + view_action_type = "object_view" + +context.Base_prepareCorsResponse(RESPONSE=response) + +# Check if traversed_document is the site_root +if relative_url: + temp_traversed_document = site_root.restrictedTraverse(relative_url, None) + if (temp_traversed_document is None): + response.setStatus(404) + return "" +else: + temp_traversed_document = context +temp_is_site_root = (temp_traversed_document.getPath() == site_root.getPath()) +temp_is_portal = (temp_traversed_document.getPath() == portal.getPath()) + +def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, REQUEST=None, + response=None, view=None, mode=None, query=None, + select_list=None, limit=None, form=None, + relative_url=None, restricted=None, list_method=None, + default_param_json=None, form_relative_url=None): + + if relative_url: + try: + traversed_document = site_root.restrictedTraverse(str(relative_url)) + view = str(view) + is_site_root = False + except: + raise NotImplementedError(relative_url) + result_dict = { + '_debug': mode, + '_links': { + "self": { + # XXX Include query parameters + # FIXME does not work in case of bulk queries + "href": traversed_document.Base_getRequestUrl() + }, + # Always inform about site root + "site_root": { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": site_root.getRelativeUrl(), + "script_id": script.id + }, + "name": site_root.getTitle(), + }, + # Always inform about portal + "portal": { + "href": default_document_uri_template % { + "root_url": portal.absolute_url(), + # XXX the portal has an empty getRelativeUrl. Make it still compatible + # with restrictedTraverse + "relative_url": portal.getId(), + "script_id": script.id + }, + "name": portal.getTitle(), + } + } + } + + + if (restricted == 1) and (portal.portal_membership.isAnonymousUser()): + response.setStatus(401) + + elif mime_type != traversed_document.Base_handleAcceptHeader([mime_type]): + response.setStatus(406) + return "" + + + elif (mode == 'root') or (mode == 'traverse'): + ################################################# + # Raw document + ################################################# + if (REQUEST is not None) and (REQUEST.other['method'] != "GET"): + response.setStatus(405) + return "" + # Default properties shared by all ERP5 Document and Site + action_dict = {} + # result_dict['_relative_url'] = traversed_document.getRelativeUrl() + result_dict['title'] = traversed_document.getTitle() + + # Add a link to the portal type if possible + if not is_portal: + result_dict['_links']['type'] = { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": portal.portal_types[traversed_document.getPortalType()]\ + .getRelativeUrl(), + "script_id": script.id + }, + "name": traversed_document.getPortalType(), + } + + # Return info about container + if not is_portal: + container = traversed_document.getParentValue() + if container != portal: + # Jio does not support fetching the root document for now + result_dict['_links']['parent'] = { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": container.getRelativeUrl(), + "script_id": script.id + }, + "name": container.getTitle(), + } + + # XXX Loop on form rendering + erp5_action_dict = portal.Base_filterDuplicateActions( + portal.portal_actions.listFilteredActionsFor(traversed_document)) + + embedded_url = None + # XXX See ERP5Type.getDefaultViewFor + for erp5_action_key in erp5_action_dict.keys(): + erp5_action_list = [] + for view_action in erp5_action_dict[erp5_action_key]: + # Action condition is probably checked in Base_filterDuplicateActions + erp5_action_list.append({ + 'href': '%s' % view_action['url'], + 'name': view_action['id'], + 'title': view_action['title'] + }) + # Try to embed the form in the result + if (view == view_action['id']): + embedded_url = '%s' % view_action['url'] + + if (erp5_action_key in (view_action_type, "view", "workflow", "object_new_content_action")): + erp5_action_list[-1]['href'] = url_template_dict["traverse_generator"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id, + "relative_url": traversed_document.getRelativeUrl().replace("/", "%2F"), + "view": erp5_action_list[-1]['name'] + } + + if erp5_action_list: + if len(erp5_action_list) == 1: + erp5_action_list = erp5_action_list[0] + + if erp5_action_key == view_action_type: + # Configure view tabs on server level + result_dict['_links']["view"] = erp5_action_list + + # XXX Put a prefix to prevent conflict + result_dict['_links']["action_" + erp5_action_key] = erp5_action_list + + # for view_action in erp5_action_dict.get('object_view', []): + # traversed_document.log(view_action) + # # XXX Check the action condition + # # if (view is None) or (view != view_action['name']): + # object_view_list.append({ + # 'href': '%s' % view_action['url'], + # 'name': view_action['name'] + # }) + + + # if (renderer_form is not None): + # traversed_document_property_dict, renderer_form_json = traversed_document.Base_renderFormAsSomething(renderer_form) + # result_dict['_embedded'] = { + # 'object_view': renderer_form_json + # } + # result_dict.update(traversed_document_property_dict) + + # XXX XXX XXX XXX + if (embedded_url is not None): + # XXX Try to fetch the form in the traversed_document of the document + # Of course, this code will completely crash in many cases (page template + # instead of form, unexpected action TALES expression). Happy debugging. + # renderer_form_relative_url = view_action['url'][len(portal.absolute_url()):] + form_id = embedded_url.split('?', 1)[0].split("/")[-1] + # renderer_form = traversed_document.restrictedTraverse(form_id, None) + # XXX Proxy field are not correctly handled in traversed_document of web site + renderer_form = getattr(traversed_document, form_id) + # traversed_document.log(form_id) + if (renderer_form is not None): + embedded_dict = { + '_links': { + 'self': { + 'href': embedded_url + } + } + } + # Put all query parameters (?reset:int=1&workflow_action=start_action) in request to mimic usual form display + query_split = embedded_url.split('?', 1) + if len(query_split) == 2: + for query_parameter in query_split[1].split("&"): + query_key, query_value = query_parameter.split("=") + REQUEST.set(query_key, query_value) + + renderForm(traversed_document, renderer_form, embedded_dict) + result_dict['_embedded'] = { + '_view': embedded_dict + # embedded_action_key: embedded_dict + } + # result_dict['_links']["_view"] = {"href": embedded_url} + + # Include properties in document JSON + # XXX Extract from renderer form? + """ + for group in renderer_form.Form_getGroupTitleAndId(): + for field in renderer_form.get_fields_in_group(group['goid']): + field_id = field.id + # traversed_document.log(field_id) + if field_id.startswith('my_'): + property_name = field_id[len('my_'):] + # traversed_document.log(property_name) + property_value = traversed_document.getProperty(property_name, d=None) + if (property_value is not None): + if same_type(property_value, DateTime()): + # Serialize DateTime + property_value = property_value.rfc822() + result_dict[property_name] = property_value + """ + + ############## + # XXX Custom slapos code + ############## + if is_site_root: + + result_dict['default_view'] = 'view' + REQUEST.set("X-HATEOAS-CACHE", 1) + + # Global action users for the jIO plugin + # XXX Would be better to not hardcode them but put them as portal type + # "actions" (search could be on portal_catalog document, traverse on all + # documents, newContent on all, etc) + # result_dict['_links']['object_search'] = { + # 'href': '%s/ERP5Site_viewSearchForm?portal_skin=Hal' % absolute_url, + # 'name': 'Global Search' + # } + result_dict['_links']['raw_search'] = { + "href": url_template_dict["search_template"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id + }, + 'name': 'Raw Search', + 'templated': True + } + result_dict['_links']['traverse'] = { + "href": url_template_dict["traverse_template"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id + }, + 'name': 'Traverse', + 'templated': True + } + action_dict['add'] = { + "href": url_template_dict["new_content_action"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id + }, + 'method': 'POST', + 'name': 'New Content', + } + action_dict['bulk'] = { + "href": url_template_dict["bulk_action"] % { + "root_url": site_root.absolute_url(), + "script_id": script.id + }, + 'method': 'POST', + 'name': 'Bulk' + } + + # Handle also other kind of users: instance, computer, master + person = portal.ERP5Site_getAuthenticatedMemberPersonValue() + if person is not None: + result_dict['_links']['me'] = { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": person.getRelativeUrl(), + "script_id": script.id + }, + # '_relative_url': person.getRelativeUrl() + } + + else: + traversed_document_portal_type = traversed_document.getPortalType() + if traversed_document_portal_type == "ERP5 Form": + renderFormDefinition(traversed_document, result_dict) + REQUEST.set("X-HATEOAS-CACHE", 1) + + # Define document action + if action_dict: + result_dict['_actions'] = action_dict + + + elif mode == 'search': + ################################################# + # Portal catalog search + ################################################# + if REQUEST.other['method'] != "GET": + response.setStatus(405) + return "" + + if query == "__root__": + # XXX Hardcoded behaviour to get root object with jIO + sql_list = [site_root] + + elif query == "__portal__": + # XXX Hardcoded behaviour to get portal object with jIO + sql_list = [portal] + + # document = site_root + # document_result = { + # # '_relative_url': site_root.getRelativeUrl(), + # '_links': { + # 'self': { + # "href": default_document_uri_template % { + # "root_url": site_root.absolute_url(), + # "relative_url": document.getRelativeUrl(), + # "script_id": script.id + # }, + # }, + # } + # } + # for select in select_list: + # document_result[select] = document.getProperty(select, d=None) + # result_dict['_embedded'] = {"contents": [document_result]} + else: + # raise NotImplementedError("Unsupported query: %s" % query) + + + # # XXX + # length = len('/%s/' % portal.getId()) + # # context.log(portal.portal_catalog(full_text=query, limit=limit, src__=1)) + # context.log(query) + catalog_kw = {} + if (default_param_json is not None): + catalog_kw = json.loads(urlsafe_b64decode(default_param_json)) + if (list_method is None): + callable_list_method = portal.portal_catalog + else: + callable_list_method = getattr(traversed_document, list_method) + + tmp_sort_on = () + if sort_on is not None: + for grain in sort_on: + if grain != "": + tmp_sort_on += (tuple([x for x in grain.split(",")]),) + + if query: + sql_list = callable_list_method(full_text=query, limit=limit, sort_on=tmp_sort_on, **catalog_kw) + else: + sql_list = callable_list_method(limit=limit, sort_on=tmp_sort_on, **catalog_kw) + + result_list = [] + + # if (select_list is None): + # # Only include links + # for sql_document in sql_list: + # document = sql_document.getObject() + # result_list.append({ + # "href": default_document_uri_template % { + # "root_url": site_root.absolute_url(), + # "relative_url": document.getRelativeUrl(), + # "script_id": script.id + # }, + # }) + # result_dict['_links']['contents'] = result_list + # + # else: + + # Cast to list if only one element is provided + editable_field_dict = {} + if select_list is None: + select_list = [] + elif same_type(select_list, ""): + select_list = [select_list] + + if select_list: + if (form_relative_url is not None): + listbox_field = portal.restrictedTraverse(form_relative_url) + listbox_field_id = listbox_field.id + # XXX Proxy field are not correctly handled in traversed_document of web site + listbox_form = getattr(traversed_document, listbox_field.aq_parent.id) + for select in select_list: + # See Listbox.py getEditableField method + if listbox_form.has_field("%s_%s" % (listbox_field_id, select), include_disabled=1): + editable_field_dict[select] = listbox_form.get_field("%s_%s" % (listbox_field_id, select), include_disabled=1) + + # CUSTOMIZATION FOR TRAVEL EXPENSE APP######################## + person = portal.ERP5Site_getAuthenticatedMemberPersonValue() + for sql_document in sql_list: + try: + document = sql_document.getObject() + # CUSTOMIZATION FOR TRAVEL EXPENSE APP######################## + if getattr(document, 'isVisibleInHtml5AppFlag', None) is not None and not document.isVisibleInHtml5AppFlag(): + continue + elif document.portal_type.endswith('Record') and document.getSimulationState() == 'cancelled': + continue + elif document.portal_type.endswith('Record') and not person in document.getContributorValueList(): + continue + ############################################### + except AttributeError, e: + # XXX ERP5 Site is not an ERP5 document + document = sql_document + document_uid = document.getUid() + document_result = { + # '_relative_url': sql_document.path[length:], + '_links': { + 'self': { + "href": default_document_uri_template % { + "root_url": site_root.absolute_url(), + # XXX ERP5 Site is not an ERP5 document + "relative_url": getRealRelativeUrl(document) or document.getId(), + "script_id": script.id + }, + }, + } + } + if editable_field_dict: + document_result['listbox_uid:list'] = { + 'key': "%s_uid:list" % listbox_field_id, + 'value': document_uid + } + for select in select_list: + if editable_field_dict.has_key(select): + REQUEST.set('cell', document) + + if ('default' in editable_field_dict[select].tales): + tmp_value = None + else: + tmp_value = document.getProperty(select, d=None) + + property_value = renderField(traversed_document, editable_field_dict[select], form_relative_url, + tmp_value, + key='field_%s_%s' % (editable_field_dict[select].id, + document_uid)) + REQUEST.other.pop('cell', None) + else: + property_value = document.getProperty(select, d=None) + if property_value is not None: + if same_type(property_value, DateTime()): + # Serialize DateTime + property_value = property_value.rfc822() + document_result[select] = property_value + result_list.append(document_result) + result_dict['_embedded'] = {"contents": result_list} + + result_dict['_query'] = query + result_dict['_limit'] = limit + result_dict['_select_list'] = select_list + + elif mode == 'form': + ################################################# + # Calculate form value + ################################################# + if REQUEST.other['method'] != "POST": + response.setStatus(405) + return "" + + renderForm(traversed_document, form, result_dict) + + elif mode == 'newContent': + ################################################# + # Create new document + ################################################# + if REQUEST.other['method'] != "POST": + response.setStatus(405) + return "" + portal_type = REQUEST.form["portal_type"] + parent_relative_url = REQUEST.form["parent_relative_url"] + # First, try to validate the data on a temp document + parent = portal.restrictedTraverse(parent_relative_url) + # module = portal.getDefaultModule(portal_type=portal_type) + document = parent.newContent( + portal_type=portal_type + ) + # http://en.wikipedia.org/wiki/Post/Redirect/Get + response.setStatus(201) + response.setHeader("X-Location", + default_document_uri_template % { + "root_url": site_root.absolute_url(), + "relative_url": document.getRelativeUrl(), + "script_id": script.id + }) + return '' + + elif mode == 'bulk': + ################################################# + # Return multiple documents in one request + ################################################# + if REQUEST.other['method'] != "POST": + response.setStatus(405) + return "" + result_dict["result_list"] = [calculateHateoas(mode="traverse", **x) for x in json.loads(bulk_list)] + + else: + raise NotImplementedError("Unsupported mode %s" % mode) + + return result_dict + +response.setHeader('Content-Type', mime_type) +hateoas = calculateHateoas(is_portal=temp_is_portal, is_site_root=temp_is_site_root, + traversed_document=temp_traversed_document, + REQUEST=REQUEST, response=response, view=view, mode=mode, + query=query, select_list=select_list, limit=limit, form=form, + restricted=restricted, list_method=list_method, + default_param_json=default_param_json, + form_relative_url=form_relative_url) +if hateoas == "": + return hateoas +else: + return json.dumps(hateoas, indent=2) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml new file mode 100644 index 0000000000..627515ccdb --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ERP5Document_getHateoas.xml @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_Cacheable__manager_id</string> </key> + <value> + <none/> + </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>_params</string> </key> + <value> <string>REQUEST=None, response=None, view=None, mode=\'root\', query=None, select_list=None, limit=10, local_roles=None, form=None, relative_url=None, restricted=0, list_method=None, default_param_json=None, form_relative_url=None, bulk_list="[]", sort_on=()</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ERP5Document_getHateoas</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Customized for Travel Expense App</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml new file mode 100644 index 0000000000..b78b84b710 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_doSelect</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> + <string>listbox</string> + </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/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecordModule_viewExpenseRecordList</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecordModule_viewExpenseRecordList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</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>Expense Records</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml new file mode 100644 index 0000000000..1d4ff1ade2 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecordModule_viewExpenseRecordList/listbox.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>columns</string> + <string>selection_name</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</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> + </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> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>columns</string> </key> + <value> + <list> + <tuple> + <string>title</string> + <string>Title</string> + </tuple> + <tuple> + <string>record_revision</string> + <string>Record Revision</string> + </tuple> + <tuple> + <string>contributor_title</string> + <string>Contributor</string> + </tuple> + <tuple> + <string>translated_simulation_state_title</string> + <string>State</string> + </tuple> + <tuple> + <string>creation_date</string> + <string>Creation Date</string> + </tuple> + <tuple> + <string>modification_date</string> + <string>Modification Date</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Expense Record</string> + <string>Expense Record</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>expense_record_module_selection</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Records</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py new file mode 100644 index 0000000000..9989a26712 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.py @@ -0,0 +1,135 @@ +if REQUEST is not None: + raise ValueError + +if context.getPortalType() != "Expense Record": + raise TypeError('%s is not supported' % context.getPortalType()) + +if not context.getDocId(): + # It means that sync is not finished yet. + return + +if not context.Base_isNewestVersionRecord(context): + context.cancel(comment='Newer revision is found') + return + +portal = context.getPortalObject() +isTransitionPossible = portal.portal_workflow.isTransitionPossible +event = context + +def markHistory(document, comment): + portal_workflow = portal.portal_workflow + last_workflow_item = portal_workflow.getInfoFor(ob=document, + name='comment', + wf_id='edit_workflow') + if last_workflow_item != comment: + portal_workflow.doActionFor(document, action='edit_action', comment=comment) + +error = False + +update_flag = False + +if (event.getSimulationState() == "draft"): + + if context.portal_activities.countMessage(path=context.getPath(), method_id=script.id) > 1: + return + + # Try to fetch person document. If none is found, do nothing. + organisation = None + person = event.getContributorValue() + if (person is None): + markHistory(event, "No owner person found") + error = True + if person is not None: + organisation = person.getSubordinationValue() + if (organisation is None): + markHistory(event, "No subordination found for: %s" % person.getRelativeUrl()) + error = True + + from Products.ERP5Type.DateUtils import addToDate + if date_now is None: + date_now = DateTime() + if context.Base_getDateTime(event.getDate()) > addToDate(date_now, day=31): + markHistory(event, 'Date %s is a future date' % event.getDate()) + error = True + elif context.Base_getDateTime(event.getDate()) < addToDate(date_now, day=-335): + markHistory(event, 'Date %s is an old date' % event.getDate()) + error = True + + if error: + context.changeToError() + return + + + # Document has been cloned and should be attached to an existing ticket + ticket = None + original_event = None + if event.getCopyOf(): + original_event = context.Base_getValidOriginalEvent(event) + if original_event is not None: + + ticket = original_event.getFollowUpValue() + + # Suspend original event if possible + original_event.edit( + visible_in_html5_app_flag=False, + ) + if isTransitionPossible(original_event, 'deliver'): + original_event.deliver(comment='New clone: %s' % event.getRelativeUrl()) + + # Activate new event + if isTransitionPossible(ticket, 'validate'): + ticket.validate(comment='New clone: %s' % event.getRelativeUrl()) + ticket.suspend(comment='New clone: %s' % event.getRelativeUrl()) + + # Update existing document + update_flag = True + + if ticket is not None and update_flag: + accounting_transaction = ticket.getSourceProjectValue() + if not accounting_transaction.getSimulationState() in ('draft', 'planned'): + raise ValueError('Accounting Transaction is no longer editable.') + else: + ticket = context.Base_createTicket(event) + accounting_transaction = context.accounting_module.newContent(portal_type='Accounting Transaction') + accounting_transaction.manage_delObjects(ids=list(accounting_transaction.objectIds())) + + account_dict = context.ExpenseRecord_getAccountDict(organisation) + + accounting_transaction.edit( + title=event.getDocId(), + comment=event.getComment(), + source_section_value=organisation, + destination_section_value=person, + start_date=context.Base_getDateTime(event.getDate()), + resource=context.getResource(), + ) + accounting_transaction.newContent(portal_type='Accounting Transaction Line', source_value=account_dict['credit_account_value'], source_credit=context.getQuantity()) + accounting_transaction.newContent(portal_type='Accounting Transaction Line', source_value=account_dict['debit_account_value'], source_debit=context.getQuantity()) + accounting_transaction.newContent(id='photo', portal_type='Embedded File', data=context.getPhotoData().split(',')[1].decode('base64')) + + if accounting_transaction.getSimulationState() == 'draft': + accounting_transaction.plan() + + ticket.edit( + source_project_value=accounting_transaction, + title='Accounting Transaction requested for: %s' % event.getTitle(), + start_date=DateTime() + ) + ticket.validate(comment='New automatic ticket from %s for %s' % (event.getRelativeUrl(), accounting_transaction.getRelativeUrl())) + ticket.suspend(comment='New automatic ticket from %s for %s' % (event.getRelativeUrl(), accounting_transaction.getRelativeUrl())) + + # Prevent concurrent transaction to create 2 tickets for the same event + event_kw = { + 'follow_up_value': ticket, + 'source_value': person, + 'source_section_value': organisation + } + event.edit(**event_kw) + event.serializeSimulationState() + + if update_flag: + event.stop(comment='Attached to existing ticket: %s' % ticket.getRelativeUrl()) + else: + event.stop(comment='New automatic ticket: %s' % ticket.getRelativeUrl()) + + return ticket, accounting_transaction diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml new file mode 100644 index 0000000000..9b00bdb35a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_createExpenseValidationItem.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>REQUEST=None, date_now=None</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_createExpenseValidationItem</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py new file mode 100644 index 0000000000..53ca73b9bf --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.py @@ -0,0 +1,2 @@ +raise NotImplementedError('This script must be customized.') +#return {'credit_account_value':payable_for_employees, 'debit_account_value':travel_expense} diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml new file mode 100644 index 0000000000..3aaecea1f7 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_getAccountDict.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>section_value</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_getAccountDict</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>This script must be customized</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py new file mode 100644 index 0000000000..1491ce6385 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.py @@ -0,0 +1,5 @@ +# Without this, getContentType() returns a method +# and it causes a problem when record is cloned. +context.setContentType(None) + +context.setContributorValue(context.ERP5Site_getAuthenticatedMemberPersonValue()) diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml new file mode 100644 index 0000000000..cae1198c6f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_init.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>*args, **kw</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_init</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml new file mode 100644 index 0000000000..1ed7fdb63f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view.xml @@ -0,0 +1,141 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string></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> + <string>my_date</string> + <string>my_comment</string> + <string>my_quantity</string> + <string>your_image</string> + </list> + </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>left</string> </key> + <value> + <list> + <string>my_record_revision</string> + <string>my_contributor_title</string> + <string>my_follow_up_title</string> + <string>my_translated_simulation_state_title</string> + </list> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list> + <string>your_error_message</string> + </list> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>Expense Record</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml new file mode 100644 index 0000000000..0dcb2805e5 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_comment.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Comment</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml new file mode 100644 index 0000000000..445a552db3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_contributor_title.xml @@ -0,0 +1,113 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>editable</string> + <string>portal_type</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_contributor_title</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>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_relation_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Person</string> + <string>Person</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Contributor</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml new file mode 100644 index 0000000000..ee2de1dc35 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_date.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_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> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml new file mode 100644 index 0000000000..c8bee21986 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_follow_up_title.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>portal_type</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_follow_up_title</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>my_relation_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Expense Validation Item</string> + <string>Expense Validation Item</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Validation Item</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml new file mode 100644 index 0000000000..6e04bf4b59 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_quantity.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</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>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Total Price</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml new file mode 100644 index 0000000000..40fc886ed3 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_record_revision.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_record_revision</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>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Record Revision</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml new file mode 100644 index 0000000000..a0ac2ca510 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/my_translated_simulation_state_title.xml @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_simulation_state_title</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>my_translated_workflow_state_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml new file mode 100644 index 0000000000..4c04b94879 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_error_message.xml @@ -0,0 +1,310 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TextAreaField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_error_message</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>line_too_long</string> </key> + <value> <string>A line was too long.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>You entered too many characters.</string> </value> + </item> + <item> + <key> <string>too_many_lines</string> </key> + <value> <string>You entered too many lines.</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>height</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>width</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> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </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>height</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>width</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>error</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> <int>0</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>height</string> </key> + <value> <int>5</int> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Error Message</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>width</string> </key> + <value> <int>40</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>here/Base_getErrorMessageForRecord</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python:here.getSimulationState() == \'error\'</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml new file mode 100644 index 0000000000..b7c21c0e0f --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_view/your_image.xml @@ -0,0 +1,311 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="EditorField" module="Products.ERP5Form.EditorField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>your_image</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>line_too_long</string> </key> + <value> <string>A line was too long.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>You entered too many characters.</string> </value> + </item> + <item> + <key> <string>too_many_lines</string> </key> + <value> <string>You entered too many lines.</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>height</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>text_editor</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>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>width</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>height</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>text_editor</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>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>width</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>0</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>height</string> </key> + <value> <int>5</int> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_linelength</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_lines</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>text_editor</string> </key> + <value> <string>text_area</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Photo</string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>width</string> </key> + <value> <int>40</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +python:\'<img src="%s">\' % here.getPhotoData() + +]]></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml new file mode 100644 index 0000000000..2d3ab5441b --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio.xml @@ -0,0 +1,165 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_edit</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> + <string>price (Price)</string> + <string>supplier (Supplier)</string> + <string>product (Product)</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>my_resource</string> + <string>my_quantity</string> + <string>my_date</string> + <string>my_comment</string> + <string>my_sync_flag</string> + <string>my_doc_id</string> + <string>my_copy_of</string> + <string>my_record_revision</string> + <string>my_photo_data</string> + <string>my_visible_in_html5_app_flag</string> + </list> + </value> + </item> + <item> + <key> <string>price (Price)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>product (Product)</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>supplier (Supplier)</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseRecord_viewAsJio</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseRecord_view</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>ERP5 Form</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>Expense Record</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml new file mode 100644 index 0000000000..dbb51dbd8c --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_comment.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_comment</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Description</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml new file mode 100644 index 0000000000..d0c3974992 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_copy_of.xml @@ -0,0 +1,90 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_copy_of</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>my_string_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml new file mode 100644 index 0000000000..7e81e4bc91 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_date.xml @@ -0,0 +1,268 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_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> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Date</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml new file mode 100644 index 0000000000..b04862b8b2 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_doc_id.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_doc_id</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_doc_id</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml new file mode 100644 index 0000000000..26aa02f391 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_photo_data.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_photo_data</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>photo_canvas</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml new file mode 100644 index 0000000000..ae148c161d --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_quantity.xml @@ -0,0 +1,286 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="FloatField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_quantity</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>not_float</string> </key> + <value> <string>You did not enter a floating point number.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_large_precision</string> </key> + <value> <string>The number you input has too large precision.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string>figure</string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_style</string> </key> + <value> <string>-1 234.5</string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>precision</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Priced Quantity</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_quantity_field_width\', 10)</string> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="TALESMethod" module="Products.Formulator.TALESField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_text</string> </key> + <value> <string>python: preferences.getPreference(\'preferred_float_number_style\', \'-1 234.5\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml new file mode 100644 index 0000000000..f7b9f9e320 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_record_revision.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_record_revision</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>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_record_revision</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml new file mode 100644 index 0000000000..8260053988 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_resource.xml @@ -0,0 +1,260 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_resource</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Price Currency</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml new file mode 100644 index 0000000000..5fc56dd845 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_sync_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_sync_flag</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Sync Flag</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml new file mode 100644 index 0000000000..cbba17ea13 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseRecord_viewAsJio/my_visible_in_html5_app_flag.xml @@ -0,0 +1,264 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="IntegerField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_visible_in_html5_app_flag</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>integer_out_of_range</string> </key> + <value> <string>The integer you entered was out of range.</string> </value> + </item> + <item> + <key> <string>not_integer</string> </key> + <value> <string>You did not enter an integer.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>end</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>start</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>my_visible_in_html5_app_flag</string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml new file mode 100644 index 0000000000..d2cdf087ad --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList.xml @@ -0,0 +1,131 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string>Base_doSelect</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> + <string>listbox</string> + </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/> + </value> + </item> + <item> + <key> <string>right</string> </key> + <value> + <list/> + </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ExpenseValidationItemModule_viewExpenseValidationItemList</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseValidationItemModule_viewExpenseValidationItemList</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_list</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>Expense Validation Items</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml new file mode 100644 index 0000000000..939754e33a --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItemModule_viewExpenseValidationItemList/listbox.xml @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>portal_type</string> + <string>selection_name</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>listbox</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> + </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> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>field_id</string> </key> + <value> <string>my_list_mode_listbox</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Expense Validation Item</string> + <string>Expense Validation Item</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>selection_name</string> </key> + <value> <string>expense_validation_item_module_selection</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Validation Items</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml new file mode 100644 index 0000000000..5141b85dfc --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view.xml @@ -0,0 +1,134 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ERP5 Form" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>action</string> </key> + <value> <string></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>my_title</string> + <string>my_follow_up_related_title_list</string> + <string>my_source_project_title</string> + <string>my_translated_simulation_state_title</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>ExpenseValidationItem_view</string> </value> + </item> + <item> + <key> <string>method</string> </key> + <value> <string>POST</string> </value> + </item> + <item> + <key> <string>name</string> </key> + <value> <string>ExpenseValidationItem_view</string> </value> + </item> + <item> + <key> <string>pt</string> </key> + <value> <string>form_view</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>Expense Validation Item</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> + <item> + <key> <string>update_action_title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml new file mode 100644 index 0000000000..735e0c1a29 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_follow_up_related_title_list.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>portal_type</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_follow_up_related_title_list</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>my_multi_relation_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Expense Record</string> + <string>Expense Record</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Expense Record</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml new file mode 100644 index 0000000000..8f8241c619 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_source_project_title.xml @@ -0,0 +1,108 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>delegated_list</string> </key> + <value> + <list> + <string>portal_type</string> + <string>title</string> + </list> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>my_source_project_title</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>my_relation_field</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> + <list> + <tuple> + <string>Accounting Transaction</string> + <string>Accounting Transaction</string> + </tuple> + </list> + </value> + </item> + <item> + <key> <string>target</string> </key> + <value> <string>Click to edit the target</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Accounting Transaction</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml new file mode 100644 index 0000000000..4cc7d2e889 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_title.xml @@ -0,0 +1,272 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StringField" module="Products.Formulator.StandardFields"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_title</string> </value> + </item> + <item> + <key> <string>message_values</string> </key> + <value> + <dictionary> + <item> + <key> <string>external_validator_failed</string> </key> + <value> <string>The input failed the external validator.</string> </value> + </item> + <item> + <key> <string>required_not_found</string> </key> + <value> <string>Input is required but no input given.</string> </value> + </item> + <item> + <key> <string>too_long</string> </key> + <value> <string>Too much input was given.</string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>overrides</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>tales</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </value> + </item> + <item> + <key> <string>values</string> </key> + <value> + <dictionary> + <item> + <key> <string>alternate_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>css_class</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>default</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_maxwidth</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>display_width</string> </key> + <value> <int>20</int> </value> + </item> + <item> + <key> <string>editable</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>enabled</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>external_validator</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>extra</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>hidden</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>input_type</string> </key> + <value> <string>text</string> </value> + </item> + <item> + <key> <string>max_length</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>required</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Title</string> </value> + </item> + <item> + <key> <string>truncate</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>unicode</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>whitespace_preserve</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml new file mode 100644 index 0000000000..a0ac2ca510 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/ExpenseValidationItem_view/my_translated_simulation_state_title.xml @@ -0,0 +1,84 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ProxyField" module="Products.ERP5Form.ProxyField"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>id</string> </key> + <value> <string>my_translated_simulation_state_title</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>my_translated_workflow_state_title</string> </value> + </item> + <item> + <key> <string>form_id</string> </key> + <value> <string>Base_viewFieldLibrary</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_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py new file mode 100644 index 0000000000..07069464e2 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.py @@ -0,0 +1,37 @@ +if REQUEST is None: + REQUEST = context.REQUEST +if response is None: + response = REQUEST.RESPONSE + +web_page = context + +if REQUEST.getHeader('If-Modified-Since', '') == web_page.getModificationDate().rfc822(): + response.setStatus(304) + return "" + +portal_type = web_page.getPortalType() +web_content = web_page.getTextContent() + +# set headers depending on type of script +if (portal_type == "Web Script"): + response.setHeader('Content-Type', 'application/javascript') + +elif (portal_type == "Web Style"): + response.setHeader('Content-Type', 'text/css') + +elif (portal_type == "Web Manifest"): + response.setHeader('Content-Type', 'text/cache-manifest') + +else: + if (mapping_dict is not None): + web_content = web_page.TextDocument_substituteTextContent(web_content, mapping_dict=mapping_dict) + # Do not allow to put inside an iframe + # response.setHeader("X-Frame-Options", "SAMEORIGIN") + response.setHeader("X-Content-Type-Options", "nosniff") + + # Only fetch code (html, js, css, image) and data from this ERP5, to prevent any data leak as the web site do not control the gadget's code + response.setHeader("Content-Security-Policy", "default-src 'none'; img-src 'self' blob: data:; media-src 'self'; connect-src * 'self' mail.tiolive.com; script-src 'self' 'unsafe-eval'; font-src netdna.bootstrapcdn.com; style-src 'self' netdna.bootstrapcdn.com 'unsafe-inline' data:; frame-src 'self' data:") + + response.setHeader('Content-Type', 'text/html') + +return web_content diff --git a/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml new file mode 100644 index 0000000000..e5475d0478 --- /dev/null +++ b/bt5/erp5_travel_expense/SkinTemplateItem/portal_skins/erp5_travel_expense/WebPage_viewAsWeb.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>REQUEST=None, response=None, mapping_dict=None</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>WebPage_viewAsWeb</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Customized for CSP problem</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml new file mode 100644 index 0000000000..ee772c777a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow.xml @@ -0,0 +1,66 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="DCWorkflowDefinition" module="Products.DCWorkflow.DCWorkflow"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>creation_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_event_simulation_workflow</string> </value> + </item> + <item> + <key> <string>initial_state</string> </key> + <value> <string>draft</string> </value> + </item> + <item> + <key> <string>manager_bypass</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>permissions</string> </key> + <value> + <tuple> + <string>Access contents information</string> + <string>View</string> + <string>Add portal content</string> + <string>Modify portal content</string> + <string>Delete objects</string> + </tuple> + </value> + </item> + <item> + <key> <string>state_var</string> </key> + <value> <string>simulation_state</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense Event Simulation Workflow</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml new file mode 100644 index 0000000000..072c8f6540 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Scripts" module="Products.DCWorkflow.Scripts"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>scripts</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py new file mode 100644 index 0000000000..b9c9cc9a8e --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.py @@ -0,0 +1,2 @@ +object = state_change['object'] +object.Base_checkConsistency() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml new file mode 100644 index 0000000000..36eed6b71d --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_checkConsistency.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Event_checkConsistency</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py new file mode 100644 index 0000000000..595f23be78 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.py @@ -0,0 +1,16 @@ +event = state_change['object'] + +send_method = event.getTypeBasedMethod('send') +parameter_list = ('from_url', 'to_url', 'reply_url', 'subject', + 'body', 'attachment_format', 'attachment_list',) +if getattr(send_method, 'meta_type', None) == 'Script (Python)': + parameter_list = send_method.ZScriptHTML_tryParams() + +# Turn the SafeMapping from keyword arguments into a dict. +kwargs = {} +for key in parameter_list: + state_change_arg = state_change['kwargs'].get(key) + if state_change_arg: + kwargs[key] = state_change_arg + +event.send(**kwargs) # will call type based method diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml new file mode 100644 index 0000000000..cacefb63b0 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/scripts/Event_send.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Event_send</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml new file mode 100644 index 0000000000..27ec906902 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="States" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>states</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml new file mode 100644 index 0000000000..95b6026f5e --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/cancelled.xml @@ -0,0 +1,109 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>cancelled</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Cancelled</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml new file mode 100644 index 0000000000..17c33a82ca --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/confirmed.xml @@ -0,0 +1,120 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>confirmed</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Confirmed</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>cancel</string> + <string>cancel_action</string> + <string>start</string> + <string>start_action</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml new file mode 100644 index 0000000000..439857330f --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/deleted.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>deleted</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Deleted</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml new file mode 100644 index 0000000000..296b1400f6 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/delivered.xml @@ -0,0 +1,106 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>delivered</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Delivered</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml new file mode 100644 index 0000000000..1e09eeec40 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/draft.xml @@ -0,0 +1,132 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>draft</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Draft</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>cancel</string> + <string>cancel_action</string> + <string>change_to_error</string> + <string>delete</string> + <string>delete_action</string> + <string>initial_stop_action</string> + <string>plan</string> + <string>plan_action</string> + <string>start</string> + <string>start_action</string> + <string>stop</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml new file mode 100644 index 0000000000..e793152f8c --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/error.xml @@ -0,0 +1,41 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>error</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Error</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>cancel</string> + <string>cancel_action</string> + <string>change_to_draft</string> + <string>change_to_draft_action</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml new file mode 100644 index 0000000000..db166999ce --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/planned.xml @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>planned</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Planned</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>cancel</string> + <string>cancel_action</string> + <string>confirm</string> + <string>confirm_action</string> + <string>start</string> + <string>start_action</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml new file mode 100644 index 0000000000..bb0d3bc66e --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/started.xml @@ -0,0 +1,120 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>started</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Sent</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>deliver</string> + <string>deliver_action</string> + <string>stop</string> + <string>stop_action</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml new file mode 100644 index 0000000000..f6fef0dc24 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/states/stopped.xml @@ -0,0 +1,120 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="StateDefinition" module="Products.DCWorkflow.States"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>stopped</string> </value> + </item> + <item> + <key> <string>permission_roles</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Received</string> </value> + </item> + <item> + <key> <string>transitions</string> </key> + <value> + <tuple> + <string>create_ticket</string> + <string>create_ticket_action</string> + <string>deliver</string> + <string>deliver_action</string> + </tuple> + </value> + </item> + <item> + <key> <string>type_list</string> </key> + <value> + <tuple/> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>Access contents information</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Add portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Delete objects</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>Modify portal content</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>View</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml new file mode 100644 index 0000000000..aa36144efe --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Transitions" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>transitions</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml new file mode 100644 index 0000000000..7e1d6b2a8d --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>cancel</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>cancelled</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Cancel</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml new file mode 100644 index 0000000000..44e69e9732 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/cancel_action.xml @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Cancel</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=cancel_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>cancel</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>cancel_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Cancel Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml new file mode 100644 index 0000000000..2dd6a3185b --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>change_to_draft</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>draft</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Finish To Fix Error</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Manager</string> + <string>Assignee</string> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml new file mode 100644 index 0000000000..0814a99533 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_draft_action.xml @@ -0,0 +1,81 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Finish To Fix Error</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=change_to_draft_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>change_to_draft</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>change_to_draft_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Finish To Fix Error</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml new file mode 100644 index 0000000000..260781d0b5 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/change_to_error.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>change_to_error</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>error</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Change To Error</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml new file mode 100644 index 0000000000..0f6d1c24a4 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>confirm</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>confirmed</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Confirm</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml new file mode 100644 index 0000000000..2fb022427b --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/confirm_action.xml @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Confirm</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=confirm_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>confirm</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>confirm_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Confirm Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml new file mode 100644 index 0000000000..687d076b2b --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/create_ticket_action.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Create Follow-up Ticket</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Event_viewCreateTicketWorkflowActionDialog?workflow_action=create_ticket_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>create_ticket</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Disabled action.</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>create_ticket_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Create Follow-up Ticket Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>var_exprs</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml new file mode 100644 index 0000000000..486dd70801 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>delete</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>deleted</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Delete</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml new file mode 100644 index 0000000000..af682c6b08 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/delete_action.xml @@ -0,0 +1,78 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>delete</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>delete_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Delete Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Owner</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml new file mode 100644 index 0000000000..a4864f9b46 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>deliver</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>delivered</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Deliver</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml new file mode 100644 index 0000000000..738ff24350 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/deliver_action.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Deliver</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=deliver_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>deliver</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>deliver_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string>Event_checkConsistency</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Deliver Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>var_exprs</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Assignee</string> + <string>Associate</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml new file mode 100644 index 0000000000..74a8e5558a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/initial_stop_action.xml @@ -0,0 +1,78 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Declare as Received</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=initial_stop_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>stop</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>initial_stop_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Declare as Received Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Owner</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml new file mode 100644 index 0000000000..e3cb330eb6 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>plan</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>planned</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Plan</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml new file mode 100644 index 0000000000..970cde8952 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/plan_action.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Plan</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=plan_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>plan</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>plan_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Plan Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml new file mode 100644 index 0000000000..418bcd10a9 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start.xml @@ -0,0 +1,62 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>Event_send</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>start</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>started</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Send</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml new file mode 100644 index 0000000000..fe70d7db55 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/start_action.xml @@ -0,0 +1,102 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Send</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Event_viewStartWorkflowActionDialog?workflow_action=start_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>start</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>start_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string>Event_checkConsistency</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Send Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>var_exprs</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary/> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml new file mode 100644 index 0000000000..b62d15fc93 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>stop</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string>stopped</string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Declare as Received</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml new file mode 100644 index 0000000000..1e31e392a0 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/transitions/stop_action.xml @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="TransitionDefinition" module="Products.DCWorkflow.Transitions"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Declare as Received</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string>%(content_url)s/Base_viewWorkflowActionDialog?workflow_action=stop_action</string> </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> <string>stop</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>stop_action</string> </value> + </item> + <item> + <key> <string>new_state_id</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Declare as Received Action</string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml new file mode 100644 index 0000000000..bb12bef805 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Variables" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>variables</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml new file mode 100644 index 0000000000..cf9789beee --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/action.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The last transition</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>action</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>transition/getId|nothing</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml new file mode 100644 index 0000000000..99dc5a1238 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/actor.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>The name of the user who performed the last transition</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>actor</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>user/getUserName</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml new file mode 100644 index 0000000000..0c0b22fa8a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_portal_type.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>answer_portal_type</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml new file mode 100644 index 0000000000..5a88d139a3 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/answer_template.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>answer_template</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml new file mode 100644 index 0000000000..37beb5e4f4 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/comment.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Comments about the last transition</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>comment</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>python:state_change.kwargs.get(\'comment\', \'\')</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml new file mode 100644 index 0000000000..494a7c88bb --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/create_event.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>create_event</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml new file mode 100644 index 0000000000..535863de2a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/error_message.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Error message if validation failed</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>error_message</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml new file mode 100644 index 0000000000..44306b76d7 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/history.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Provides access to workflow history</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>history</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>state_change/getHistory</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml new file mode 100644 index 0000000000..318e098ff6 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/portal_type.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>portal type (use as filter for worklists)</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>portal_type</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml new file mode 100644 index 0000000000..1c47466b84 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_portal_type.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Stores the portal type of the event which is automatically created when the event is responded</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>respond_event_portal_type</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml new file mode 100644 index 0000000000..93afb470d0 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_resource.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Stores the nature of the event which is automatically created when the event is responded</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>respond_event_resource</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml new file mode 100644 index 0000000000..f605e94e19 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_text_content.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Stores the text content of the event which is automatically created when the event is responded</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>respond_event_text_content</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml new file mode 100644 index 0000000000..f0042a1726 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/respond_event_title.xml @@ -0,0 +1,48 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Stores the title of the event which is automatically created when the event is responded </string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>respond_event_title</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>0</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml new file mode 100644 index 0000000000..5a517524ee --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/variables/time.xml @@ -0,0 +1,61 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="VariableDefinition" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>default_expr</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>default_value</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Time of the last transition</string> </value> + </item> + <item> + <key> <string>for_catalog</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>for_status</string> </key> + <value> <int>1</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>time</string> </value> + </item> + <item> + <key> <string>info_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>update_always</string> </key> + <value> <int>1</int> </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Expression" module="Products.CMFCore.Expression"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>text</string> </key> + <value> <string>state_change/getDateTime</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml new file mode 100644 index 0000000000..c7242ee114 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Worklists" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>worklists</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml new file mode 100644 index 0000000000..5cf6a88d1c --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/0_draft_event_list.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Draft Events to Process (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +event_module/view?simulation_state=draft&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Draft Events</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>0_draft_event_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Owner</string> + <string>Assignee</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>draft</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml new file mode 100644 index 0000000000..cfe6649991 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/1_planned_event_list.xml @@ -0,0 +1,93 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Planned Events to Confirm (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +event_module/view?simulation_state=planned&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Planned Events</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>1_planned_event_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>planned</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml new file mode 100644 index 0000000000..1cfa0fd1ab --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/2_confirmed_event_list.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Confirmed Events to Generate (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +event_module/view?simulation_state=confirmed&local_roles:list=%(local_roles)s&portal_type:list=%(portal_type)s&reset:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Confirmed Events</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>2_confirmed_event_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Assignee</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>confirmed</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml new file mode 100644 index 0000000000..9a6f967c1b --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_event_simulation_workflow/worklists/3_stopped_event_list.xml @@ -0,0 +1,94 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="WorklistDefinition" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>global</string> </value> + </item> + <item> + <key> <string>actbox_icon</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string>Received Events to Deliver (%(count)s)</string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string encoding="cdata"><![CDATA[ + +event_module/view?simulation_state=stopped&local_roles:list=%(local_roles)s&portal_type=%(portal_type)s&reset=1&is_assigned_event:int=1 + +]]></string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string>Stopped Events</string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>3_stopped_event_list</string> </value> + </item> + <item> + <key> <string>var_matches</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="Guard" module="Products.DCWorkflow.Guard"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>roles</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + </tuple> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>simulation_state</string> </key> + <value> + <tuple> + <string>stopped</string> + </tuple> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml new file mode 100644 index 0000000000..0021da8b42 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="InteractionWorkflowDefinition" module="Products.ERP5.InteractionWorkflow"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>creation_guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>groups</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>travel_expense_jio_interaction_workflow</string> </value> + </item> + <item> + <key> <string>manager_bypass</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Travel Expense JIO Interaction Workflow</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml new file mode 100644 index 0000000000..e18bf8cbf7 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Interaction" module="Products.ERP5.Interaction"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>interactions</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml new file mode 100644 index 0000000000..edb8803d1a --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/copyDocIdToTitle.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>activate_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> + <list> + <string>Base_copyDocIdToTitle</string> + </list> + </value> + </item> + <item> + <key> <string>before_commit_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>copyDocIdToTitle</string> </value> + </item> + <item> + <key> <string>method_id</string> </key> + <value> + <list> + <string>_setDocId</string> + </list> + </value> + </item> + <item> + <key> <string>once_per_transaction</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>portal_type_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type_group_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>temporary_document_disallowed</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml new file mode 100644 index 0000000000..a156ec4f34 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/interactions/local_role_update.xml @@ -0,0 +1,100 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="InteractionDefinition" module="Products.ERP5.Interaction"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>actbox_category</string> </key> + <value> <string>workflow</string> </value> + </item> + <item> + <key> <string>actbox_name</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>actbox_url</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>activate_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>after_script_name</string> </key> + <value> + <list> + <string>Base_updateLocalRole</string> + </list> + </value> + </item> + <item> + <key> <string>before_commit_script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>description</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>guard</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>local_role_update</string> </value> + </item> + <item> + <key> <string>method_id</string> </key> + <value> + <list> + <string>_setContributor*</string> + </list> + </value> + </item> + <item> + <key> <string>once_per_transaction</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>portal_type_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>portal_type_group_filter</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>script_name</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>temporary_document_disallowed</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>trigger_type</string> </key> + <value> <int>2</int> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml new file mode 100644 index 0000000000..072c8f6540 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Scripts" module="Products.DCWorkflow.Scripts"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>scripts</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py new file mode 100644 index 0000000000..4924b0ebec --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.py @@ -0,0 +1,2 @@ +document = state_change['object'] +document.setTitle(document.getDocId()) diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml new file mode 100644 index 0000000000..c975d80ab3 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_copyDocIdToTitle.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_copyDocIdToTitle</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py new file mode 100644 index 0000000000..361ddd24b1 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.py @@ -0,0 +1,3 @@ +document = state_change['object'] + +document.updateLocalRolesOnSecurityGroups() diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml new file mode 100644 index 0000000000..8818f301a7 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/scripts/Base_updateLocalRole.xml @@ -0,0 +1,70 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </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>_params</string> </key> + <value> <string>state_change</string> </value> + </item> + <item> + <key> <string>_proxy_roles</string> </key> + <value> + <tuple> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_updateLocalRole</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml new file mode 100644 index 0000000000..6ae03699d1 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/variables.xml @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Variables" module="Products.DCWorkflow.Variables"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>variables</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml new file mode 100644 index 0000000000..c3432aa051 --- /dev/null +++ b/bt5/erp5_travel_expense/WorkflowTemplateItem/portal_workflow/travel_expense_jio_interaction_workflow/worklists.xml @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Worklists" module="Products.DCWorkflow.Worklists"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_mapping</string> </key> + <value> + <dictionary/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>worklists</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_travel_expense/bt/change_log b/bt5/erp5_travel_expense/bt/change_log new file mode 100644 index 0000000000..840ecdf7c4 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/change_log @@ -0,0 +1,2 @@ +2016-9-1 yusei +* Initial version. \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/dependency_list b/bt5/erp5_travel_expense/bt/dependency_list new file mode 100644 index 0000000000..e7a0846b5d --- /dev/null +++ b/bt5/erp5_travel_expense/bt/dependency_list @@ -0,0 +1,3 @@ +erp5_accounting +erp5_crm +erp5_web_renderjs_ui \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/description b/bt5/erp5_travel_expense/bt/description new file mode 100644 index 0000000000..5246937760 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/description @@ -0,0 +1 @@ +HTML5 offline app for travel expense \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_action_path_list b/bt5/erp5_travel_expense/bt/template_action_path_list new file mode 100644 index 0000000000..a432fe5c01 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_action_path_list @@ -0,0 +1,8 @@ +Category | jio_view +Currency | jio_view +Expense Record Module | jio_view +Expense Record Module | view +Expense Record | jio_view +Expense Record | view +Expense Validation Item Module | view +Expense Validation Item | view \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_format_version b/bt5/erp5_travel_expense/bt/template_format_version new file mode 100644 index 0000000000..56a6051ca2 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_format_version @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list new file mode 100644 index 0000000000..dbf0298b4a --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_keep_last_workflow_history_only_path_list @@ -0,0 +1,32 @@ +web_page_module/gadget_travel_expense_jio.html +web_page_module/gadget_travel_expense_jio.js +web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html +web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js +web_page_module/gadget_travel_expense_jio_expense_record_module_view.html +web_page_module/gadget_travel_expense_jio_expense_record_module_view.js +web_page_module/gadget_travel_expense_jio_expense_record_view.html +web_page_module/gadget_travel_expense_jio_expense_record_view.js +web_page_module/gadget_travel_expense_page_login.html +web_page_module/gadget_travel_expense_page_login.js +web_page_module/gadget_travel_expense_page_setting.html +web_page_module/gadget_travel_expense_page_setting.js +web_page_module/gadget_travel_expense_page_sync.html +web_page_module/gadget_travel_expense_page_sync.js +web_page_module/gadget_travel_expense_record_application.appcache +web_page_module/gadget_travel_expense_record_application.html +web_page_module/gadget_travel_expense_record_application.js +web_page_module/gadget_travel_expense_standalone_jio.html +web_page_module/gadget_travel_expense_standalone_jio.js +web_page_module/gadget_travel_expense_translation.html +web_page_module/gadget_travel_expense_translation.js +web_page_module/gadget_travel_expense_translation_data.js +web_page_module/gadget_travel_expense_widget_listbox.html +web_page_module/gadget_travel_expense_widget_listbox.js +web_page_module/megapix-image.js +web_page_module/travel_expense_app.css +web_page_module/travel_expense_jiodev_renderjs_storage.js +web_page_module/travel_expense_js_cookie.js +web_page_module/travel_expense_renderjs.js +web_page_module/travel_expense_utility.js +web_site_module/travel_expense_app +web_site_module/travel_expense_app/** \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_module_id_list b/bt5/erp5_travel_expense/bt/template_module_id_list new file mode 100644 index 0000000000..d45056b7e8 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_module_id_list @@ -0,0 +1,2 @@ +expense_record_module +expense_validation_item_module \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_path_list b/bt5/erp5_travel_expense/bt/template_path_list new file mode 100644 index 0000000000..258855d694 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_path_list @@ -0,0 +1,33 @@ +portal_alarms/travel_expense_create_validation_item +web_page_module/gadget_travel_expense_jio.html +web_page_module/gadget_travel_expense_jio.js +web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.html +web_page_module/gadget_travel_expense_jio_expense_record_module_add_expense_record.js +web_page_module/gadget_travel_expense_jio_expense_record_module_view.html +web_page_module/gadget_travel_expense_jio_expense_record_module_view.js +web_page_module/gadget_travel_expense_jio_expense_record_view.html +web_page_module/gadget_travel_expense_jio_expense_record_view.js +web_page_module/gadget_travel_expense_page_login.html +web_page_module/gadget_travel_expense_page_login.js +web_page_module/gadget_travel_expense_page_setting.html +web_page_module/gadget_travel_expense_page_setting.js +web_page_module/gadget_travel_expense_page_sync.html +web_page_module/gadget_travel_expense_page_sync.js +web_page_module/gadget_travel_expense_record_application.appcache +web_page_module/gadget_travel_expense_record_application.html +web_page_module/gadget_travel_expense_record_application.js +web_page_module/gadget_travel_expense_standalone_jio.html +web_page_module/gadget_travel_expense_standalone_jio.js +web_page_module/gadget_travel_expense_translation.html +web_page_module/gadget_travel_expense_translation.js +web_page_module/gadget_travel_expense_translation_data.js +web_page_module/gadget_travel_expense_widget_listbox.html +web_page_module/gadget_travel_expense_widget_listbox.js +web_page_module/megapix-image.js +web_page_module/travel_expense_app.css +web_page_module/travel_expense_jiodev_renderjs_storage.js +web_page_module/travel_expense_js_cookie.js +web_page_module/travel_expense_renderjs.js +web_page_module/travel_expense_utility.js +web_site_module/travel_expense_app +web_site_module/travel_expense_app/** \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list b/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list new file mode 100644 index 0000000000..34c7dbc7f7 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_allowed_content_type_list @@ -0,0 +1,2 @@ +Expense Record Module | Expense Record +Expense Validation Item Module | Expense Validation Item \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list b/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list new file mode 100644 index 0000000000..7b3fc8e180 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_base_category_list @@ -0,0 +1,2 @@ +Expense Record Module | business_application +Expense Validation Item Module | business_application \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list b/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list new file mode 100644 index 0000000000..e260de4d3c --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_hidden_content_type_list @@ -0,0 +1 @@ +Expense Record Module | Expense Record \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_id_list b/bt5/erp5_travel_expense/bt/template_portal_type_id_list new file mode 100644 index 0000000000..5cd8c5d587 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_id_list @@ -0,0 +1,4 @@ +Expense Record +Expense Record Module +Expense Validation Item +Expense Validation Item Module \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list b/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list new file mode 100644 index 0000000000..6ddcad7f11 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_property_sheet_list @@ -0,0 +1 @@ +Expense Record | ExpenseRecord \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list b/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list new file mode 100644 index 0000000000..2ff03c64c2 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_portal_type_workflow_chain_list @@ -0,0 +1,11 @@ +Expense Record | document_conversion_interaction_workflow +Expense Record | edit_workflow +Expense Record | event_interaction_workflow +Expense Record | pricing_interaction_workflow +Expense Record | travel_expense_event_simulation_workflow +Expense Record | travel_expense_jio_interaction_workflow +Expense Validation Item | edit_workflow +Expense Validation Item | pricing_interaction_workflow +Expense Validation Item | ticket_interaction_workflow +Expense Validation Item | ticket_workflow +Expense Validation Item | travel_expense_jio_interaction_workflow \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_property_sheet_id_list b/bt5/erp5_travel_expense/bt/template_property_sheet_id_list new file mode 100644 index 0000000000..ba7742faac --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_property_sheet_id_list @@ -0,0 +1 @@ +ExpenseRecord \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_skin_id_list b/bt5/erp5_travel_expense/bt/template_skin_id_list new file mode 100644 index 0000000000..7c96cdb670 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_skin_id_list @@ -0,0 +1 @@ +erp5_travel_expense \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/template_workflow_id_list b/bt5/erp5_travel_expense/bt/template_workflow_id_list new file mode 100644 index 0000000000..c8216f52b3 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/template_workflow_id_list @@ -0,0 +1,2 @@ +travel_expense_event_simulation_workflow +travel_expense_jio_interaction_workflow \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/title b/bt5/erp5_travel_expense/bt/title new file mode 100644 index 0000000000..7c96cdb670 --- /dev/null +++ b/bt5/erp5_travel_expense/bt/title @@ -0,0 +1 @@ +erp5_travel_expense \ No newline at end of file diff --git a/bt5/erp5_travel_expense/bt/version b/bt5/erp5_travel_expense/bt/version new file mode 100644 index 0000000000..ceab6e11ec --- /dev/null +++ b/bt5/erp5_travel_expense/bt/version @@ -0,0 +1 @@ +0.1 \ No newline at end of file -- 2.30.9