目 录CONTENT

文章目录

二、系统开发培训课程(二)

胡彬
2024-05-30 / 0 评论 / 0 点赞 / 647 阅读 / 610 字

引言

课前准备

  1. 学员准备:能访问互联网的电脑,可安装应用程序
  2. 教学材料:课件、讲义、案例、视频等教学材料,后续更新至该链接
  3. 课题纪律:培训签到及随堂作业完成情况,工作群通报

Odoo开发课程

准备

  1. 删除addons_local目录下的demo文件夹
  2. 下载模板:demo.7z
  3. 放置到addons_local目录
  4. 重启服务,升级模块

动态字段-many2one

在models.py修改

duty_engineer_id = fields.Many2one('res.users', string="负责人", required=True)

动态字段-many2many

在models.py修改

    duty_engineer_id = fields.Many2many('res.users', relation='duty_user_rel', column1='duty_engineer_id', column2='user_id', string="负责人", required=True)

在views.xml修改

<field name="duty_engineer_id" widget="many2many_avatar_user"/>
<field name="duty_engineer_id" widget="many2many_avatar_user" options="{'no_create': True}"/>

定义新的model

在models.py修改

class brand(models.Model):
    _name = 'demo.brand'
    _description = 'demo.brand'

    name = fields.Char(string="备件品牌", required=True)
spare_part_brand_id = fields.Many2one('demo.brand', string="备件品牌")

在ir.model.access.csv修改

access_demo_brand,demo.brand,model_demo_brand,base.group_user,1,1,1,1

增加视图

    <record model="ir.actions.act_window" id="demo.action_window">
      <field name="name">备件维护</field>
      <field name="res_model">demo.demo</field>
      <field name="view_mode">tree,form,calendar,graph,pivot</field>
    </record>

日历视图

    <record  model="ir.ui.view" id="demo.calendar">
        <field name="model">demo.demo</field>
        <field name="arch" type="xml">
            <calendar date_start="built_time" color="duty_engineer_id">
                <field name="equipment_id"/>
            </calendar>
        </field>
    </record>

图表视图

    <record model="ir.ui.view" id="demo.graph">
        <field name="model">demo.demo</field>
        <field name="arch" type="xml">
            <graph type="bar">
                <field name="name" />
                <field name="current_inventory" type="measure" />
            </graph>
        </field>
    </record>

透视视图

    <record model="ir.ui.view" id="demo.pivot">
        <field name="model">demo.demo</field>
        <field name="arch" type="xml">
            <pivot>
                <field name="name"/>
                <field name="spare_part_brand_id"/>
                <field name="current_inventory" type="measure" />
            </pivot>
        </field>
    </record>
0

评论区