上一篇博客
使用odoo14 社区版
1 效果展示
2 代码 展示
创建以下文件夹和文件:
- security:安全控制文件的存放
- views:配置视图
manifest.py文件介绍
- name:模块名
- summary:模块简介
- description:模块描述
- author:作者
- website:模块相关网站
- category:分类。默认Uncategorized
- version:版本
- depends:默认base模块,可以添加依赖的其他模块
- data:配置要用到的views文件
- installable:默认是True。是否显示在前端
- auto_intall:如果为True。则depends参数的模块都安装完成后,自动安装本模块。
bugmanage_record/model文件夹
_init_.py
from . import bugmanage_record
from . import follower
bugmanage_record.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class BugmanageRecord(models.Model):
_name = 'bugmanage.record'
_description = "bug"
name = fields.Char('bug简述', required=True)
detail = fields.Text(size=150)
is_closed = fields.Boolean('是否关闭')
close_reason = fields.Selection([('changed', '已修改'), ('cannot', '无法修改'), ('delay', '推迟')], string='关闭理由')
user_id = fields.Many2one('res.users', string='负责人')
follower_id = fields.Many2many('res.partner', string='关注者')
# 用于按钮
@api.model_create_multi
def do_close(self):
for item in self:
item.is_closed = True
return True
follower.py
# -*- coding: utf-8 -*-
from odoo import models, fields, api
class follower(models.Model):
_inherit = 'res.partner'
bug_ids = fields.Many2many('bugmanage.record', string='bug')
bugmanage_record/security文件夹
ir.model.access.csv
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_bugmanage_record_group_user,bugmanage.record,model_bugmanage_record,base.group_user,1,1,1,1
bugmanage_record/static/description文件夹
放名为icon.png的图片当做logo
bugmanage_record/views文件夹
bugs.xml
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<!-- 列表视图-->
<record id="bugmanage_record_tree_view" model="ir.ui.view">
<field name="name">bug列表</field>
<field name="model">bugmanage.record</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="is_closed"/>
<field name="user_id"/>
</tree>
</field>
</record>
<!--表单视图-->
<record id="bugmanage_record_form_view" model="ir.ui.view">
<field name="name">bug表单</field>
<field name="model">bugmanage.record</field>
<field name="arch" type="xml">
<form>
<header>
<button name="do_close" type="object" string="关闭bug" />
</header>
<sheet>
<group name="group_top" col="2">
<group name="group_left">
<field name="name"/>
<field name="is_closed"/>
<field name="user_id"/>
</group>
<group name="group_right">
<field name="close_reason"/>
<field name="follower_id"/>
</group>
</group>
<notebook>
<page string="详细内容">
<field name="detail" />
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!--搜索视图-->
<record id="bugmanage_record_search_view" model="ir.ui.view">
<field name="name">bug搜索</field>
<field name="model">bugmanage.record</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="is_closed"/>
<field name="user_id"/>
</search>
</field>
</record>
<!-- model里面的数据,展示在页面上-->
<record id="bugmanage_record_act_window" model="ir.actions.act_window">
<field name="name">bug window</field>
<field name="res_model">bugmanage.record</field>
<field name="view_mode">tree,form</field>
</record>
<!-- 菜单名-->
<menuitem name="bug管理系统" id="bugmanage_record_menu_root" />
<!--菜单分类-->
<menuitem name="bug管理" id="sec_bugmanage_record_menu" parent="bugmanage_record_menu_root"/>
<!--菜单动作-->
<menuitem name="bug列表" id="bugmanage_record_menu_list" parent="sec_bugmanage_record_menu"
action="bugmanage_record_act_window"/>
</data>
</odoo>
follower.xml
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<record id="bugmanage_record_follower_form_view" model="ir.ui.view">
<field name="name">关注者</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="mobile" position="after">
<field name="bug_ids"/>
</field>
</field>
</record>
<record id="bugmanage_record_follower_act_window" model="ir.actions.act_window">
<field name="name">follower window</field>
<field name="res_model">res.partner</field>
<field name="view_mode">form</field>
</record>
<menuitem name="关注者管理" id="sec_bugmanage_record_menu_2" parent="bugmanage_record_menu_root"/>
<menuitem name="关注者" id="bugmanage_record_menu_2_form" parent="sec_bugmanage_record_menu_2"
action="bugmanage_record_act_window"/>
</data>
</odoo>
_init_.py
from . import model
_manifest_.py
# -*- coding: utf-8 -*-
{
'name': "bug管理",
'summary': """
bug管理简介
""",
'description': """
bug管理描述
""",
'author': "czt",
'website': "http://www.yourcompany.com",
'version': '0.1',
'depends': [],
'data': [
'views/bugs.xml',
'views/follower.xml',
'security/ir.model.access.csv',
],
'application': True,
}
3 安装模块
bug_manage文件夹下创建static/description文件夹,该文件夹下存放icon.png。这可以显示图标
./odoo-bin
- 设置>激活开发者模式
- 刷新本地模块列表