odoo11/odoo12二次开发扩展原有模型重写view视图

扩展原有模型重写视图和动作视图

在项目二次开发过程中,原有的模型无法完全满足业务需求,需要对原有的模型进行扩展,同时,原有的视图样式部分字段不需要展示。举个例子,如下图:
在这里插入图片描述
在这个项目中,我们打算沿用odoo产品模块,对product.template模型进行字段扩展,同时改变view视图样式。视图继承并没有太多必要也繁杂,所以,打算对视图进行重写。

以下为视图实现的具体操作

具体操作有以下几个步骤:

  1. 重新定义action动作展示样式;
  2. 重写tree、form、kanban等视图;

1、定义视图action动作

	<record id="action_sj_product" model="ir.actions.act_window">
		<field name="name">物料管理</field>
		<field name="type">ir.actions.act_window</field>
		<field name="res_model">product.template</field>
		<field name="view_type">form</field>
		<field name="view_mode">tree,form</field>
		<field name="view_ids" eval="[(5, 0, 0),
                      (0, 0, {'view_mode': 'tree', 'view_id': ref('sj_product_tree_view')}),
                      (0, 0, {'view_mode': 'form', 'view_id': ref('sj_product_form_view')})]" />
		<field name="context">{}</field>
		<field name="help" type="html">
			<p class="oe_view_nocontent_create">
				添加新物料
			</p>
		</field>
	</record>

Warnning!
若view_ids未定义,action动作依然会打开原来定义的视图!!

2、定义菜单挂载视图

<menuitem id="sj_product_manage" name="物料管理" parent="sj_product_menu" action="action_sj_product" sequence="2" />

3、定义tree视图

	<record id="sj_product_tree_view" model="ir.ui.view">
		<field name="name">sj.product.tree</field>
		<field name="model">product.template</field>
		<field name="priority">4</field>
		<field name="arch" type="xml">
			<tree string="物料管理" class="o_sale_order">
				<field name="sj_product_number" />
				<field name="name" string="物料名称" />
				<field name="sj_stock_number" />
				<field name="sj_stock_name" />
				<field name="sj_kanban_number" />
				<field name="sj_work_number" />
				<field name="sj_specificate_number" />
				<field name="sj_texture" />
				<field name="categ_id" />
				<field name="uom_id" />
				<field name="sj_is_check" />
				<field name="create_uid" />
				<field name="create_date" />
				<field name="active" string="状态" />
			</tree>
		</field>
	</record>	

4、定义form视图

	<record id="sj_product_form_view" model="ir.ui.view">
		<field name="name">sj.product.form</field>
		<field name="model">product.template</field>
		<field name="arch" type="xml">
			<form string="物料明细" class="o_sale_order">
				<sheet>
					<group>
						<group>
							<field name="sj_product_number" />
							<field name="sj_stock_name" />
							<field name="sj_specificate_number" />
							<field name="categ_id" />
						</group>
						<group>
							<field name="name" string="物料名称" />
							<field name="sj_kanban_number" />
							<field name="sj_texture" />
							<field name="sj_is_check" />
						</group>
						<group>
							<field name="sj_stock_number" />
							<field name="sj_work_number" />
							<field name="uom_id" />
							<field name="active" />
						</group>
					</group>
					<group>
						<field name="description" string="要求" />
					</group>
					<notebook>
						<page string="采购" name="sj_purchase">
							<group>
								<group name="purchase_info_left">
									<field name="sj_safe_inventory" />
								</group>
								<group name="purchase_info_right">
									<field name="sj_purchase_cycle" />
								</group>
							</group>
							<group>
								<field name="seller_ids" />
							</group>
						</page>
						<page string="销售" name="sj_sales">
							<group>
								<group name="sales_info_left">
									<field name="weight" string="单重" />
									<field name="sj_short_name" />
									<field name="list_price" />
								</group>
								<group name="sales_info_right">
									<field name="standard_price" />
									<field name="sj_back_mash" />
								</group>
							</group>
						</page>
						<page string="仓储" name="sj_inventory">
							<group>
								<!-- <group name="inventory_info_left">
									<field name="sj_warehouse_number"/>
									<field name="sj_goods_area_number"/>
								</group> -->
								<group name="inventory_info_right">
									<field name="sj_warehouse_id" />
									<field name="sj_goods_area_id" />
								</group>
							</group>
						</page>
						<page string="质检" name="sj_check">
						</page>
					</notebook>
				</sheet>
			</form>
		</field>
	</record>

最终效果展示

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值