1. 程式人生 > 其它 >odoo開發教程十五:儀表板

odoo開發教程十五:儀表板

儀表盤可以通過外部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',
    ],