仪表盘可以通过外部ID引用其他视图文件的内容,整合到一个界面进行显示。
一:建立仪表盘视图文件
views/session_board.xml:
通过外部id引入要展示的视图文件——定义仪表板form表单,把引入的视图文件进行布局显示——定义action,指定打开仪表板视图的动作——定义子菜单绑带到odoo*仪表板菜单下,绑定action
<?xml version="1.0"?> <odoo> <data> <!--引用一个模型的图形视图--> <record model="ir.actions.act_window" id="act_session_graph"> <field name="name"></field> <field name="res_model">引用的模型</field> <field name="view_type">form</field> <field name="view_mode">graph</field> <field name="view_id" ref="模型.被引用的视图元素的外部id"/> </record> <!--引用日历视图--> <record model="ir.actions.act_window" id="act_session_calendar"> <field name="name"></field> <field name="res_model">模型</field> <field name="view_type">form</field> <field name="view_mode">calendar</field> <field name="view_id" ref="模型.视图外部id"/> </record> <!--引用模型列表/表单视图--> <record model="ir.actions.act_window" id="act_course_list"> <field name="name">Courses</field> <field name="res_model">openacademy.course</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> <!--定义仪表板form表单--> <record model="ir.ui.view" id="board_session_form"> <field name="name">仪表板</field> <field name="model">board.board</field> <field name="type">form</field> <field name="arch" type="xml"> <form string=" Dashboard"> <board style="2-1">//有好几种样式:1,1-1,2-1和1-1-1,可以在odoo里面点击切换 <column>//一列 <action string="视图一" name="%(上面引入的视图id)d" height="150" width="510"/> <action string="视图二" name="%(上面引入的视图id)d"/> </column> <column>//第二列 <action string="视图三" name="%(上面引入的视图id)d"/> </column> </board> </form> </field> </record> <!--定义动作打开仪表板form视图--> <record model="ir.actions.act_window" id="open_board_session"> <field name="name">Session Dashboard</field> <field name="res_model">board.board</field> <field name="view_type">form</field> <field name="view_mode">form</field> <field name="usage">menu</field> <field name="view_id" ref="board_session_form"/> </record> <!--在odoo原生仪表板菜单下,定义子菜单,把仪表板打开动作绑定到菜单项--> <menuitem name="Session Dashboard" parent="base.menu_reporting_dashboard" action="open_board_session" sequence="1" id="menu_board_session" icon="terp-graph"/> </data> </odoo>
2:修改manifest文件,添加depends以及注册视图文件:
'depends': ['base', 'board'], 'data': [ ...... 'views/session_board.xml', ],