关注各种黑科技
B站UP主,编程教学,游戏玩家,挂B,金牛座

Odoo高级视图 part3

图表视图 用于显示一个model的多种统计图表,支持以下四种,通过type属性指定。 Pivot 数据透视表 Bar 柱状图(默认) @stacked="True" 设置堆叠条形图 Line 条形图 Pie 饼图   视图中field字段有一个type属性用来指定聚合方式,有两个值可选 row默认 measure禁用分组
<graph string="Total idea score by Inventor">
    <field name="inventor_id"/>
    <field name="score" type="measure"/>
</graph>
注意 graph的field如果是计算字段 必须stored=True   练习 添加课程人数图表
class Session(models.Model):
    attendees_count = fields.Integer(
        string="Attendees count", compute='_get_attendees_count', store=True)
    @api.depends('attendee_ids')
    def _get_attendees_count(self):
        for r in self:
            r.attendees_count = len(r.attendee_ids)
openacademy/views/openacademy.xml
            </field>
        </record>
        <record model="ir.ui.view" id="openacademy_session_graph_view">
            <field name="name">openacademy.session.graph</field>
            <field name="model">openacademy.session</field>
            <field name="arch" type="xml">
                <graph string="Participations by Courses">
                    <field name="course_id"/>
                    <field name="attendees_count" type="measure"/>
                </graph>
            </field>
        </record>
        <record model="ir.actions.act_window" id="session_list_action">
            <field name="name">Sessions</field>
            <field name="res_model">openacademy.session</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form,calendar,gantt,graph</field>
        </record>
        <menuitem id="session_menu" name="Sessions"
看板视图 常用来展示任务或产品开发的进度。kanban视图包含很多卡片,卡片在一个个的列表组中,一个卡片代表一条记录,一个列表代表聚合字段。例如产品任务卡片可以分在不同的产品阶段中或不同的负责人中。 kanban xml中每个card是用qweb格式定义。 练习 通过kanban显示课时 以课程作为组
class Session(models.Model):
    duration = fields.Float(digits=(6, 2), help="Duration in days")
    seats = fields.Integer(string="Number of seats")
    active = fields.Boolean(default=True)
    color = fields.Integer()
    instructor_id = fields.Many2one('res.partner', string="Instructor",
        domain=['|', ('instructor', '=', True),
openacademy/views/openacademy.xml
        </record>
        <record model="ir.ui.view" id="view_openacad_session_kanban">
            <field name="name">openacad.session.kanban</field>
            <field name="model">openacademy.session</field>
            <field name="arch" type="xml">
                <kanban default_group_by="course_id">
                    <field name="color"/>
                    <templates>
                        <t t-name="kanban-box">
                            <div
                                    t-attf-class="oe_kanban_color_{{kanban_getcolor(record.color.raw_value)}}
                                                  oe_kanban_global_click_edit oe_semantic_html_override
                                                  oe_kanban_card {{record.group_fancy==1 ? 'oe_kanban_card_fancy' : ''}}">
                                <div class="oe_dropdown_kanban">
                                    <!-- dropdown menu -->
                                    <div class="oe_dropdown_toggle">
                                        <span class="oe_e">#</span>
                                        <ul class="oe_dropdown_menu">
                                            <li>
                                                <a type="delete">Delete</a>
                                            </li>
                                            <li>
                                                <ul class="oe_kanban_colorpicker"
                                                    data-field="color"/>
                                            </li>
                                        </ul>
                                    </div>
                                    <div class="oe_clear"></div>
                                </div>
                                <div t-attf-class="oe_kanban_content">
                                    <!-- title -->
                                    Session name:
                                    <field name="name"/>
                                    <br/>
                                    Start date:
                                    <field name="start_date"/>
                                    <br/>
                                    duration:
                                    <field name="duration"/>
                                </div>
                            </div>
                        </t>
                    </templates>
                </kanban>
            </field>
        </record>
        <record model="ir.actions.act_window" id="session_list_action">
            <field name="name">Sessions</field>
            <field name="res_model">openacademy.session</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form,calendar,gantt,graph,kanban</field>
        </record>
        <menuitem id="session_menu" name="Sessions"
                  parent="openacademy_menu"
  default_group_by="course_id"  分组字段    
转载请注明出处
分享到: 更多 (0)

评论 0