Konsola - dashboard
Konsolę (dashboard) buduje się w oparciu o widok typu Kanban. Jak każdy inny widok - musi on być związany z modelem, z którego pobiera się dane do wyświetlenia.
Zbudujmy najprostszy taki model (wyświetlamy tylko nazwę).
# -*- coding: utf-8 -*-
from odoo import _, api, fields, models
class MyBoardModel(models.Model):
_name = 'demo.board'
name = fields.Char('Name')
show_on_dashboard = fields.Boolean('Show on d ashboard')
Zakładamy, że na konsoli pojawią się ramki z nazwami z tych rekordów, które mają ustawione show_on_dashboard
. Zbudujmy odpowiedni widok do edycji tych danych:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record model="ir.ui.view" id="view_board_tree">
<field name="name">board.tree.form.inherit</field>
<field name="model">demo.board</field>
<field name="arch" type="xml">
<tree toolbar="1" string="Ramki">
<field name="name" />
<field name="show_on_dashboard"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_board_form">
<field name="name">board.form.inherit</field>
<field name="model">demo.board</field>
<field name="arch" type="xml">
<form string="Ramki">
<group col="4">
<field name="name" />
<field name="show_on_dashboard"/>
</group>
</form>
</field>
</record>
<record id="demo_board_action_form" model="ir.actions.act_window">
<field name="name">Ramki</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">demo.board</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_board_tree"/>
</record>
<menuitem action="demo_board_action_form" id="demo_board_menu" />
</data>
</odoo>
Na koniec możemy stworzyć widok konsoli:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="demo_dashboard_kanban_view" model="ir.ui.view">
<field name="name">test_dashboard_kanban_view</field>
<field name="model">demo.board</field>
<field name="arch" type="xml">
<kanban create="false" class="oe_background_grey o_kanban_dashboard o_account_kanban">
<field name="id"/>
<templates>
<t t-name="kanban-box">
<div>
<field name="name"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record id="demo_dashboard_action" model="ir.actions.act_window">
<field name="name">My Dashboard</field>
<field name="res_model">demo.board</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,form</field>
<field name="usage">menu</field>
<field name="context">{}</field>
<field name="domain">[('show_on_dashboard','=','True')]</field>
</record>
<menuitem name="My Dashboard" id="demo_board_menu_config"
parent="demo_board_menu"
action="demo_dashboard_action" />
</odoo>
Aby zbudować bardziej złożoną konsolę, zapoznaj się z opisem.: https://webkul.com/blog/creating-odoo-custom-dashboard/