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>

最終效果展示

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章