Wizard RST Technical Guide moved from server trunk
bzr revid: olt@tinyerp.com-20090126114350-a83042jvdkxi66gz
This commit is contained in:
parent
ac6553a7a2
commit
a82ad7b0f9
|
@ -0,0 +1,24 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'Module Technical Guide in Restructured Text ',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Base',
|
||||
'description': """
|
||||
* This module generate the Technical Guides of selected modules in Restructured Text format.
|
||||
""",
|
||||
'author': 'Tiny',
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base'],
|
||||
'init_xml': [],
|
||||
'update_xml': ['base_module_doc_rst_wizard.xml'],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
'certificate': '',
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<wizard
|
||||
id="wiz_tech_guide_rst"
|
||||
model="ir.module.module"
|
||||
name="tech.guide.rst"
|
||||
string="Create RST Technical Guide"
|
||||
keyword="client_action_multi"
|
||||
multi="True"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
|
@ -0,0 +1,72 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="0">
|
||||
|
||||
<!--
|
||||
Users Groups
|
||||
-->
|
||||
<record model="res.groups" id="group_system">
|
||||
<field name="name">Administrator / Configuration</field>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="group_erp_manager">
|
||||
<field name="name">Administrator / Access Rights</field>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="group_user">
|
||||
<field name="name">Employee</field>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="group_extended">
|
||||
<field name="name">Useability / Extended View</field>
|
||||
</record>
|
||||
|
||||
<record model="res.groups" id="group_no_one">
|
||||
<field name="name">Useability / No One</field>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Users
|
||||
-->
|
||||
<record model="res.users" id="base.user_root">
|
||||
<field name="signature">Administrator</field>
|
||||
<field name="address_id" ref="main_address"/>
|
||||
<field name="company_id" ref="main_company"/>
|
||||
<field name="action_id" ref="action_menu_admin"/>
|
||||
<field name="menu_id" ref="action_menu_admin"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Set accesses to menu -->
|
||||
<record model="ir.ui.menu" id="base.menu_administration">
|
||||
<field name="groups_id" eval="[(6,0, [ref('group_system'), ref('group_erp_manager')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_security" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('base.group_erp_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_users" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('base.group_erp_manager')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_action_currency_form" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('base.group_system')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_custom" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('base.group_system')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_translation" model="ir.ui.menu">
|
||||
<!-- FIXME: a "Usability / Translations" group ?? -->
|
||||
<field eval="[(6,0,[ref('base.group_system')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<record id="base.menu_management" model="ir.ui.menu">
|
||||
<field eval="[(6,0,[ref('base.group_system')])]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_ir_attachment_group_system","ir_attachment group_system","model_ir_attachment",,1,1,1,1
|
||||
"access_ir_cron_group_cron","ir_cron group_cron","model_ir_cron","group_system",1,1,1,1
|
||||
"access_ir_cron_user","ir_cron user","model_ir_cron","group_user",1,0,0,0
|
||||
"access_ir_default_group_system","ir_default group_system","model_ir_default",,1,1,1,1
|
||||
"access_ir_exports_group_system","ir_exports group_system","model_ir_exports",,1,1,1,1
|
||||
"access_ir_exports_line_group_system","ir_exports_line group_system","model_ir_exports_line",,1,1,1,1
|
||||
"access_ir_model_group_erp_manager","ir_model group_erp_manager","model_ir_model","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_access_group_erp_manager","ir_model_access_group_erp_manager","model_ir_model_access","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_grid_group_erp_manager","ir_model_access_grid_group_erp_manager","model_ir_model_grid","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_config_group_erp_manager","ir_model_config group_erp_manager","model_ir_model_config","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_data_group_erp_manager","ir_model_data group_erp_manager","model_ir_model_data","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_fields_group_erp_manager","ir_model_fields group_erp_manager","model_ir_model_fields","group_erp_manager",1,1,1,1
|
||||
"access_ir_model_all","ir_model_all","model_ir_model",,1,0,0,0
|
||||
"access_ir_model_access_all","ir_model_access_all","model_ir_model_access",,1,0,0,0
|
||||
"access_ir_model_grid_all","ir_model_access_grid_all","model_ir_model_grid",,0,0,0,0
|
||||
"access_ir_model_config_all","ir_model_config_all","model_ir_model_config",,1,0,0,0
|
||||
"access_ir_model_data_all","ir_model_data all","model_ir_model_data",,1,0,0,0
|
||||
"access_ir_model_fields_all","ir_model_fields all","model_ir_model_fields",,1,0,0,0
|
||||
"access_ir_module_category_group_user","ir_module_category group_user","model_ir_module_category","group_system",1,0,0,0
|
||||
"access_ir_module_module_group_user","ir_module_module group_user","model_ir_module_module","group_system",1,1,1,1
|
||||
"access_ir_module_module_dependency_group_system","ir_module_module_dependency group_system","model_ir_module_module_dependency","group_system",1,1,1,1
|
||||
"access_ir_module_repository_group_system","ir_module_repository group_system","model_ir_module_repository","group_system",1,1,1,1
|
||||
"access_ir_property_group_user","ir_property group_user","model_ir_property",,1,0,0,0
|
||||
"access_ir_property_group_user_manager","ir_property group_manager","model_ir_property",base.group_partner_manager,1,1,1,1
|
||||
"access_ir_report_custom_group_system","ir_report_custom group_system","model_ir_report_custom",,1,0,0,0
|
||||
"access_ir_report_custom_fields_group_system","ir_report_custom_fields group_system","model_ir_report_custom_fields",,1,0,0,0
|
||||
"access_ir_rule_group_user","ir_rule group_user","model_ir_rule",,1,0,0,0
|
||||
"access_ir_rule_group_group_user","ir_rule_group group_user","model_ir_rule_group",,1,0,0,0
|
||||
"access_ir_rule_group_erp_manager","ir_rule group_erp_manager","model_ir_rule","group_erp_manager",1,1,1,1
|
||||
"access_ir_rule_group_group_erp_manager","ir_rule_group group_erp_manager","model_ir_rule_group","group_erp_manager",1,1,1,1
|
||||
"access_ir_sequence_group_user","ir_sequence group_user","model_ir_sequence",,1,1,1,1
|
||||
"access_ir_sequence_type_group_user","ir_sequence_type group_user","model_ir_sequence_type",,1,0,0,0
|
||||
"access_ir_translation_group_system","ir_translation group_system","model_ir_translation",,1,1,1,1
|
||||
"access_ir_ui_menu_group_user","ir_ui_menu group_user","model_ir_ui_menu",,1,0,0,0
|
||||
"access_ir_ui_menu_group_system","ir_ui_menu group_system","model_ir_ui_menu","group_system",1,1,1,1
|
||||
"access_ir_ui_view_group_user","ir_ui_view group_user","model_ir_ui_view",,1,0,0,0
|
||||
"access_ir_ui_view_group_system","ir_ui_view group_system","model_ir_ui_view","group_system",1,1,1,1
|
||||
"access_ir_ui_view_custom_group_user","ir_ui_view_custom_group_user","model_ir_ui_view_custom",,1,0,0,0
|
||||
"access_ir_ui_view_custom_group_system","ir_ui_view_custom_group_system","model_ir_ui_view_custom","group_system",1,1,1,1
|
||||
"access_ir_ui_view_sc_group_user","ir_ui_view_sc group_user","model_ir_ui_view_sc",,1,1,1,1
|
||||
"access_ir_values_group_erp_manager","ir_values group_erp_manager","model_ir_values",group_erp_manager,1,1,1,1
|
||||
"access_ir_values_group_all","ir_values group_all","model_ir_values",,1,0,0,0
|
||||
"access_wizard_ir_model_menu_create_group_system","wizard_ir_model_menu_create group_system","model_wizard_ir_model_menu_create","group_system",1,1,1,1
|
||||
"access_wizard_ir_model_menu_create_line_group_system","wizard_ir_model_menu_create_line group_system","model_wizard_ir_model_menu_create_line","group_system",1,1,1,1
|
||||
"access_wizard_module_lang_export_group_system","wizard_module_lang_export group_system","model_wizard_module_lang_export","group_system",1,1,1,1
|
||||
"access_res_company_group_erp_manager","res_company group_erp_manager","model_res_company","group_erp_manager",1,1,1,1
|
||||
"access_res_company_group_user","res_company group_user","model_res_company",,1,0,0,0
|
||||
"access_res_country_group_all","res_country group_user_all","model_res_country",,1,0,0,0
|
||||
"access_res_country_state_group_all","res_country_state group_user_all","model_res_country_state",,1,0,0,0
|
||||
"access_res_country_group_user","res_country group_user","model_res_country","group_partner_manager",1,1,1,1
|
||||
"access_res_country_state_group_user","res_country_state group_user","model_res_country_state","group_partner_manager",1,1,1,1
|
||||
"access_res_currency_group_all","res_currency group_all","model_res_currency",,1,0,0,0
|
||||
"access_res_currency_rate_group_all","res_currency_rate group_all","model_res_currency_rate",,1,0,0,0
|
||||
"access_res_currency_group_system","res_currency group_system","model_res_currency","group_system",1,1,1,1
|
||||
"access_res_currency_rate_group_system","res_currency_rate group_system","model_res_currency_rate","group_system",1,1,1,1
|
||||
"access_res_groups_group_erp_manager","res_groups group_erp_manager","model_res_groups","group_erp_manager",1,1,1,1
|
||||
"access_res_groups_group_user","res_groups group_user","model_res_groups",,1,0,0,0
|
||||
"access_res_lang_group_all","res_lang group_all","model_res_lang",,1,0,0,0
|
||||
"access_res_lang_group_user","res_lang group_user","model_res_lang","group_system",1,1,1,1
|
||||
"access_res_partner_group_partner_manager","res_partner group_partner_manager","model_res_partner","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_group_user","res_partner group_user","model_res_partner",group_user,1,0,0,0
|
||||
"access_res_partner_address_group_partner_manager","res_partner_address group_partner_manager","model_res_partner_address","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_address_group_user","res_partner_address group_user","model_res_partner_address",group_user,1,0,0,0
|
||||
"access_res_partner_bank_group_user","res_partner_bank group_user","model_res_partner_bank",group_user,1,0,0,0
|
||||
"access_res_partner_bank_group_partner_manager","res_partner_bank group_partner_manager","model_res_partner_bank","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_bank_type_group_partner_manager","res_partner_bank_type group_partner_manager","model_res_partner_bank_type","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_bank_type_group_user","res_partner_bank_type group_user","model_res_partner_bank_type",group_user,1,0,0,0
|
||||
"access_res_partner_bank_type_field_group_partner_manager","res_partner_bank_type_field group_partner_manager","model_res_partner_bank_type_field","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_bank_type_field_group_user","res_partner_bank_type_field group_user","model_res_partner_bank_type_field",group_user,1,0,0,0
|
||||
"access_res_partner_canal_group_user","res_partner_canal group_user","model_res_partner_canal",group_user,1,0,0,0
|
||||
"access_res_partner_canal_group_partner_manager","res_partner_canal group_partner_manager","model_res_partner_canal","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_category_group_user","res_partner_category group_user","model_res_partner_category",group_user,1,0,0,0
|
||||
"access_res_partner_category_group_partner_manager","res_partner_category group_partner_manager","model_res_partner_category","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_event_group_user","res_partner_event group_user","model_res_partner_event",group_user,1,1,1,1
|
||||
"access_res_partner_event_group_partner_manager","res_partner_event group_partner_manager","model_res_partner_event","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_event_type_group_partner_manager","res_partner_event_type group_partner_manager","model_res_partner_event_type","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_event_type_group_user","res_partner_event_type group_user","model_res_partner_event_type",group_user,1,0,0,0
|
||||
"access_res_partner_function_group_user","res_partner_function group_user","model_res_partner_function","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_function_group_partner_manager","res_partner_function group_partner_manager","model_res_partner_function",group_user,1,0,0,0
|
||||
"access_res_partner_som_group_user","res_partner_som group_user","model_res_partner_som","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_som_group_partner_manager","res_partner_som group_partner_manager","model_res_partner_som",group_user,1,0,0,0
|
||||
"access_res_partner_title_group_user","res_partner_title group_user","model_res_partner_title","group_partner_manager",1,1,1,1
|
||||
"access_res_partner_title_group_partner_manager","res_partner_title group_partner_manager","model_res_partner_title",group_user,1,0,0,0
|
||||
"access_res_request_group_user","res_request group_user","model_res_request",,1,1,1,1
|
||||
"access_res_request_history_group_user","res_request_history group_user","model_res_request_history",,1,1,1,1
|
||||
"access_res_request_link_group_system","res_request_link group_system","model_res_request_link","group_system",1,1,1,1
|
||||
"access_res_request_link_group_user","res_request_link group_user","model_res_request_link",,1,0,0,0
|
||||
"access_res_users_all","res_users all","model_res_users",,1,0,0,0
|
||||
"access_res_users_group_erp_manager","res_users group_erp_manager","model_res_users","group_erp_manager",1,1,1,1
|
||||
"access_ir_actions_all","ir_actions_all","model_ir_actions_actions",,1,0,0,0
|
||||
"access_ir_actions_group_system","ir_actions_group_system","model_ir_actions_actions","group_system",1,1,1,1
|
||||
"access_ir_actions_act_window_all","ir_actions_act_window_all","model_ir_actions_act_window",,1,0,0,0
|
||||
"access_ir_actions_act_window_system","ir_actions_act_window_system","model_ir_actions_act_window","group_system",1,1,1,1
|
||||
"access_ir_actions_act_window_close_all","ir_actions_act_window_close_all","model_ir_actions_act_window_close",,1,0,0,0
|
||||
"access_ir_actions_act_window_close_group_system","ir_actions_act_window_close_group_system","model_ir_actions_act_window_close","group_system",1,1,1,1
|
||||
"access_ir_actions_report_xml_all","ir_actions_report_xml","model_ir_actions_report_xml",,1,0,0,0
|
||||
"access_ir_actions_report_xml_group_system","ir_actions_report_xml_group_system","model_ir_actions_report_xml","group_system",1,1,1,1
|
||||
"access_ir_actions_wizard_all","ir_actions_wizard","model_ir_actions_wizard",,1,0,0,0
|
||||
"access_ir_actions_wizard_group_system","ir_actions_wizard_group_system","model_ir_actions_wizard","group_system",1,1,1,1
|
||||
"access_ir_actions_todo_group_system","ir_actions_todo group system","model_ir_actions_todo","group_system",1,1,1,1
|
||||
"access_ir_actions_config_wiz_group_system","ir_actions_configuration_wizard group system","model_ir_actions_configuration_wizard","group_system",1,1,1,1
|
||||
"access_workflow_all","workflow_all","model_workflow",,1,0,0,0
|
||||
"access_workflow_group_system","workflow_group_system","model_workflow","group_system",1,1,1,1
|
||||
"access_workflow_activity_all","workflow_activity_all","model_workflow_activity",,1,0,0,0
|
||||
"access_workflow_activity_group_system","workflow_activity_group_system","model_workflow_activity","group_system",1,1,1,1
|
||||
"access_workflow_instance_all","workflow_instance_all","model_workflow_instance",,1,1,1,1
|
||||
"access_workflow_transition_all","workflow_transition_all","model_workflow_transition",,1,0,0,0
|
||||
"access_workflow_transition_group_system","workflow_transition_group_system","model_workflow_transition","group_system",1,1,1,1
|
||||
"access_workflow_triggers_all","workflow_triggers_all","model_workflow_triggers",,1,0,0,0
|
||||
"access_workflow_triggers_group_system","workflow_triggers_group_system","model_workflow_triggers","group_system",1,1,1,1
|
||||
"access_workflow_workitem_all","workflow_workitem_all","model_workflow_workitem",,1,1,1,1
|
||||
"access_actions_report_custom_all","ir_actions_report_custom_all","model_ir_actions_report_custom",,1,0,0,0
|
||||
"access_actions_report_custom_group_system","ir_actions_report_custom_group_system","model_ir_actions_report_custom","group_system",1,1,1,1
|
||||
"access_ir_actions_act_window_view_all","ir_actions_act_window_view_all","model_ir_actions_act_window_view",,1,0,0,0
|
||||
"access_ir_actions_act_window_view_group_system","ir_actions_act_window_view_group_system","model_ir_actions_act_window_view","group_system",1,1,1,1
|
||||
"access_ir_actions_url_all","ir_actions_url_all","model_ir_actions_url",,1,0,0,0
|
||||
"access_ir_actions_url_group_system","ir_actions_url_group_system","model_ir_actions_url","group_system",1,1,1,1
|
||||
"access_ir_server_object_lines_all","ir_server_object_lines_all","model_ir_server_object_lines",,1,0,0,0
|
||||
"access_ir_server_object_lines_group_system","ir_server_object_lines_group_system","model_ir_server_object_lines","group_system",1,1,1,1
|
||||
"access_ir_actions_server_all","ir_actions_server_all","model_ir_actions_server",,1,0,0,0
|
||||
"access_ir_actions_server_group_system","ir_actions_server_group_system","model_ir_actions_server","group_system",1,1,1,1
|
||||
"access_module_update_translations_group_user","wizard_update_translations_group_user","model_wizard_module_update_translations","group_system",1,1,1,1
|
||||
"access_res_bank_group_system","res_bank_group_system","model_res_bank","group_system",1,1,1,1
|
||||
"access_res_payterm_group_system","res_payterm_group_system","model_res_payterm","group_system",1,1,1,1
|
||||
"access_res_roles_group_erpmanager","res_roles_group_erp_manager","model_res_roles","group_erp_manager",1,1,1,1
|
||||
"access_res_config_view_group_erpmanager","res_config_view_erp_manager","model_res_config_view","group_erp_manager",1,1,1,1
|
||||
"access_res_roles_all","res_roles_all","model_res_roles",,1,0,0,0
|
||||
"access_res_config_view_all","res_config_view_all","model_res_config_view",,1,0,0,0
|
||||
"access_res_bank_group_partner_manager","res_bank_group_partner_manager","model_res_bank","group_partner_manager",1,1,1,1
|
||||
"access_res_bank_user","res_bank user","model_res_bank","group_user",1,0,0,0
|
||||
"access_maintenance_group_user","maintenance_contract group_user","model_maintenance_contract","group_maintenance_manager",1,1,1,1
|
||||
"access_maintenance_contract_module","maintenance.contract.module","model_maintenance_contract_module","group_maintenance_manager",1,1,1,1
|
||||
"access_maintenance_contract_wizard","maintenance.contract.wizard","model_maintenance_contract_wizard","group_maintenance_manager",1,1,1,1
|
|
|
@ -0,0 +1,24 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard_tech_guide_rst
|
||||
|
|
@ -0,0 +1,314 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import netsvc
|
||||
import wizard
|
||||
import pooler
|
||||
import os
|
||||
|
||||
import base64
|
||||
import tempfile
|
||||
import tarfile
|
||||
|
||||
|
||||
|
||||
choose_file_form = '''<?xml version="1.0"?>
|
||||
<form string="Create Technical Guide in rst format">
|
||||
<separator string="Technical Guide in rst format" colspan="4"/>
|
||||
<label string="Please choose a file where the Technical Guide will be written." colspan="4"/>
|
||||
<field name="rst_file" />
|
||||
<field name="name" invisible="1"/>
|
||||
</form>
|
||||
'''
|
||||
|
||||
choose_file_fields = {
|
||||
'rst_file': {'string': 'file', 'type': 'binary', 'required': True, 'readonly': True},
|
||||
'name': {'string': 'filename', 'type': 'char', 'required': True, 'readonly': True},
|
||||
}
|
||||
|
||||
|
||||
class RstDoc(object):
|
||||
def __init__(self, module, objects):
|
||||
self.dico = {
|
||||
'name': module.name,
|
||||
'shortdesc': module.shortdesc,
|
||||
'latest_version': module.latest_version,
|
||||
'website': module.website,
|
||||
'description': self._handle_text(module.description or 'None'),
|
||||
'report_list': self._handle_list_items(module.reports_by_module),
|
||||
'menu_list': self._handle_list_items(module.menus_by_module),
|
||||
'view_list': self._handle_list_items(module.views_by_module),
|
||||
'depends': module.dependencies_id,
|
||||
}
|
||||
self.objects = objects
|
||||
|
||||
def _handle_list_items(self, list_item_as_string):
|
||||
return [item.replace('*', '\*') for item in list_item_as_string.split('\n')]
|
||||
|
||||
def _handle_text(self, txt):
|
||||
lst = [' %s' % line for line in txt.split('\n')]
|
||||
return '\n'.join(lst)
|
||||
|
||||
def _write_header(self):
|
||||
dico = self.dico
|
||||
title = "Module %s (*%s*)" % (dico['shortdesc'], dico['name'])
|
||||
title_underline = "=" * len(title)
|
||||
dico['title'] = title
|
||||
dico['title_underline'] = title_underline
|
||||
sl = [
|
||||
"",
|
||||
"%(title)s",
|
||||
"%(title_underline)s",
|
||||
":Module: %(name)s",
|
||||
":Name: %(shortdesc)s",
|
||||
":Version: %(latest_version)s",
|
||||
":Directory: %(name)s",
|
||||
":Web: %(website)s",
|
||||
"",
|
||||
"Description",
|
||||
"-----------",
|
||||
"",
|
||||
"::",
|
||||
" ",
|
||||
" %(description)s",
|
||||
""]
|
||||
return '\n'.join(sl) % (dico)
|
||||
|
||||
def _write_reports(self):
|
||||
sl = ["",
|
||||
"Reports",
|
||||
"-------"]
|
||||
for report in self.dico['report_list']:
|
||||
if report:
|
||||
sl.append("")
|
||||
sl.append(" * %s" % report)
|
||||
sl.append("")
|
||||
return '\n'.join(sl)
|
||||
|
||||
def _write_menus(self):
|
||||
sl = ["",
|
||||
"Menus",
|
||||
"-------"]
|
||||
for menu in self.dico['menu_list']:
|
||||
if menu:
|
||||
sl.append("")
|
||||
sl.append(" * %s" % menu)
|
||||
|
||||
sl.append("")
|
||||
return '\n'.join(sl)
|
||||
|
||||
def _write_views(self):
|
||||
sl = ["",
|
||||
"Views",
|
||||
"-----"]
|
||||
for view in self.dico['view_list']:
|
||||
if view:
|
||||
sl.append("")
|
||||
sl.append(" * %s" % view)
|
||||
sl.append("")
|
||||
return '\n'.join(sl)
|
||||
|
||||
def _write_depends(self):
|
||||
sl = ["",
|
||||
"Dependencies",
|
||||
"------------"]
|
||||
for dependency in self.dico['depends']:
|
||||
sl.append("")
|
||||
sl.append(" * %s - %s" % (dependency.name, dependency.state))
|
||||
return '\n'.join(sl)
|
||||
|
||||
def _write_objects(self):
|
||||
def write_field(field_def):
|
||||
field_name = field_def[0]
|
||||
field_dict = field_def[1]
|
||||
field_required = field_dict.get('required', '') and ', required'
|
||||
field_readonly = field_dict.get('readonly', '') and ', readonly'
|
||||
|
||||
field_help_s = field_dict.get('help', '').strip()
|
||||
if field_help_s:
|
||||
field_help_s = "*%s*" % (field_help_s)
|
||||
field_help = '\n'.join([' %s' % line.strip() for line in field_help_s.split('\n')])
|
||||
else:
|
||||
field_help = ''
|
||||
|
||||
s = ""
|
||||
s += ":%s: " % (field_name)
|
||||
s += field_dict.get('string', 'Unknown')
|
||||
s += ", " + field_dict['type']
|
||||
s += field_required
|
||||
s += field_readonly
|
||||
s += "\n\n%s" % (field_help)
|
||||
return s
|
||||
|
||||
sl = ["",
|
||||
"",
|
||||
"Objects",
|
||||
"-------"]
|
||||
for obj in self.objects:
|
||||
title = obj['object'].name
|
||||
sl.append("")
|
||||
sl.append(title)
|
||||
sl.append('#' * len(title))
|
||||
sl.append("")
|
||||
|
||||
for field in obj['fields']:
|
||||
sl.append("")
|
||||
sl.append(write_field(field))
|
||||
sl.append("")
|
||||
|
||||
return '\n'.join(sl)
|
||||
|
||||
def write(self):
|
||||
s = ''
|
||||
s += self._write_header()
|
||||
s += self._write_reports()
|
||||
s += self._write_menus()
|
||||
s += self._write_views()
|
||||
s += self._write_depends()
|
||||
s += self._write_objects()
|
||||
|
||||
return s
|
||||
|
||||
|
||||
class wizard_tech_guide_rst(wizard.interface):
|
||||
|
||||
def _generate(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
module_model = pool.get('ir.module.module')
|
||||
module_ids = data['ids']
|
||||
|
||||
module_index = []
|
||||
|
||||
# create a temporary gzipped tarfile:
|
||||
tgz_tmp_filename = tempfile.mktemp('_rst_module_doc.tgz')
|
||||
try:
|
||||
tarf = tarfile.open(tgz_tmp_filename, 'w:gz')
|
||||
|
||||
modules = module_model.browse(cr, uid, module_ids)
|
||||
for module in modules:
|
||||
index_dict = {
|
||||
'name': module.name,
|
||||
'shortdesc': module.shortdesc,
|
||||
}
|
||||
module_index.append(index_dict )
|
||||
|
||||
objects = self._get_objects(cr, uid, module)
|
||||
rstdoc = RstDoc(module, objects)
|
||||
out = rstdoc.write()
|
||||
|
||||
try:
|
||||
tmp_file = tempfile.NamedTemporaryFile()
|
||||
tmp_file.write(out.encode('utf8'))
|
||||
tmp_file.file.flush() # write content to file
|
||||
tarf.add(tmp_file.name, arcname=module.name + '.rst')
|
||||
finally:
|
||||
tmp_file.close()
|
||||
|
||||
# write index file:
|
||||
tmp_file = tempfile.NamedTemporaryFile()
|
||||
out = self._create_index(module_index)
|
||||
tmp_file.write(out.encode('utf8'))
|
||||
tmp_file.file.flush()
|
||||
tarf.add(tmp_file.name, arcname='index.rst')
|
||||
|
||||
finally:
|
||||
tarf.close()
|
||||
|
||||
try:
|
||||
os.unlink(tmp_file)
|
||||
except Exception, e:
|
||||
logger = netsvc.Logger()
|
||||
logger.notifyChannel("warning", netsvc.LOG_WARNING,
|
||||
"Temporary file %s could not be deleted. (%s)" % (tmp_file.name, e))
|
||||
|
||||
f = open(tgz_tmp_filename, 'rb')
|
||||
out = f.read()
|
||||
f.close()
|
||||
|
||||
return {
|
||||
'rst_file': base64.encodestring(out),
|
||||
'name': 'modules_technical_guide_rst.tgz'
|
||||
}
|
||||
|
||||
def _create_index(self, module_index):
|
||||
sl = ["",
|
||||
".. _module-technical-guide-link:",
|
||||
"",
|
||||
"Module Technical Guide: Introspection report on objects",
|
||||
"=======================================================",
|
||||
"",
|
||||
".. toctree::",
|
||||
" :maxdepth: 1",
|
||||
"",
|
||||
]
|
||||
for mod in module_index:
|
||||
sl.append(" %s" % mod['name'])
|
||||
sl.append("")
|
||||
return '\n'.join(sl)
|
||||
|
||||
def _get_objects(self, cr, uid, module):
|
||||
res = []
|
||||
objects = self._object_find(cr, uid, module)
|
||||
for obj in objects:
|
||||
dico = {
|
||||
'object': obj,
|
||||
'fields': self._fields_find(cr, uid, obj.model)
|
||||
}
|
||||
res.append(dico)
|
||||
return res
|
||||
|
||||
def _object_find(self, cr, uid, module):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
ids2 = pool.get('ir.model.data').search(cr, uid, [('module', '=', module.name), ('model', '=', 'ir.model')])
|
||||
ids = []
|
||||
for mod in pool.get('ir.model.data').browse(cr, uid, ids2):
|
||||
ids.append(mod.res_id)
|
||||
modobj = pool.get('ir.model')
|
||||
return modobj.browse(cr, uid, ids)
|
||||
|
||||
def _fields_find(self, cr, uid, obj):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
modobj = pool.get(obj)
|
||||
res = modobj.fields_get(cr, uid).items()
|
||||
return res
|
||||
|
||||
## def _object_doc(self, cr, uid, obj):
|
||||
## pool = pooler.get_pool(cr.dbname)
|
||||
## modobj = pool.get(obj)
|
||||
## return modobj.__doc__
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_generate],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': choose_file_form,
|
||||
'fields': choose_file_fields,
|
||||
'state': [
|
||||
('end', 'Close', 'gtk-close'),
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
wizard_tech_guide_rst('tech.guide.rst')
|
||||
|
Loading…
Reference in New Issue