目前市面汽车排档类型有M、A、MA,因为有自驾车,所以有N类型,这样可以让排档类型在汽车和预约模块都可使用。另外,因为排档类型一经录入,不需改变,所以我们将在系统初始化的时候就载入这些默认数据,并且让使用者只能看,不能修改。排档编码 | 排档类型 |
M | 手动档 |
A | 自动档 |
MA | 手自一体 |
N | 自驾车 |
新增数据模型
在peijia->models目录下新增auto_tpe.py数据模型文件,因初始化时直接载入,且不能修改,所以结构简单,代码如下:from odoo import fields, modelsclass AutoType(models.Model): _name = "nebula.auto.type" _description = "车辆排档类型" _order = 'name' name = fields.Char('类型编码', size=2, index=True) name_type = fields.Char('类型名称')
将auto_tpe.py添加到 peijia->models目录下__init__.py文件中import部分,以逗号分割文件名。设置访问权限
在peijia->security目录下的ir.model.access.csv新增一行只有读权限的记录。access_nebula_auto_type,nebula.auto.tpe,model_nebula_auto_type,group_peijia_manager,1,0,0,0
创建视图层
在peijia->views目录新增auto_type_views.xml文件,因无特殊要求,所以用默认方式展示即可,内容如下:<?xml version="1.0" encoding="utf-8"?><odoo> <act_windowid="peijia.action_auto_type_views"name="排挡类型" res_model="nebula.auto.type" view_mode="tree,form" /></odoo>
修改peijia目录下__manifest__.py文件中data段,在views/car_type_views.xml前新增views/auto_type_views.xml文件名。在peijia->views目录下car_views.xml文件,前添加菜单指向排档模块,代码:<menuitem id="menu_auto_type_views" name="排挡类型" parent="menu_peijia_base_data" sequence="115" action="peijia.action_auto_type_views"/>
全部修改完成后,重启odoo服务,再将应用中陪驾模块升级,汽车陪驾模块的基础资料下拉菜单里面新增了排档类型菜单。因为只有查看权限,所以界面无新增等按钮。创建默认数据
在data目录(后续无特殊情况,默认都是peijia目录下)新增auto_type_data.xml文件,用来存放排档类默认数据。可能没有data目录,请新建。代码如下:<?xml version="1.0" encoding="utf-8"?><odoo> <datanoupdate="1"> <!-- 排挡类型默认数据--> <recordid="nebula_auto_type_m"model="nebula.auto.type"> <fieldname="name">M</field> <fieldname="name_type">手动挡</field> </record> <recordid="nebula_auto_type_a"model="nebula.auto.type"> <fieldname="name">A</field> <fieldname="name_type">自动挡</field> </record> <recordid="nebula_auto_type_ma"model="nebula.auto.type"> <fieldname="name">MA</field> <fieldname="name_type">手自一体</field> </record> <recordid="nebula_auto_type_n"model="nebula.auto.type"> <fieldname="name">N</field> <fieldname="name_type">自驾车</field> </record> </data></odoo>
noupdate=1时,即更新模块时不更新数据。此时会增加自己的数据,同样id的数据如果生产时有变更,更新模块时不会变更。noupdate=0时,即更新模块时同时更新数据,会增加原来代码中的data,同样id的数据如果生产时有变更,将不理会变更,更新时会变回原数据。我们在__manifest__.py文件中data段最后添加该文件位置,以方便调用。格式如下:data/auto_type_data.xml界面展示