THE PURPOSE如何模擬stock.picking.type看板視圖的行爲?
我試圖建立一個菜單項類似於一個你可能使用與工作(如果你有安裝stock
模塊)。如果您轉至倉庫>操作>所有操作,您將看到一個美觀的看板stock.picking.type
模型,其中包含可用的揀配類型。如果您單擊所有操作鏈接的任何拾取類型框,您將被重定向到stock.picking
樹形視圖。那麼,這是我唯一需要的,但是,我希望鏈接將您重定向到我的自定義stock.move
樹。
所以,我創建了我的menuitem,以及我自己的stock.picking.type
看板視圖,該視圖將重定向到我自定義的stock.move
樹視圖。
MY CODE
我的看板視圖
<record id="stock_picking_type_2_move_kanban" model="ir.ui.view">
<field name="name">stock.picking.type.2.move.kanban</field>
<field name="model">stock.picking.type</field>
<field name="priority" eval="20"/>
<field name="arch" type="xml">
<kanban class="oe_background_grey" create="0">
<field name="complete_name"/>
<field name="color"/>
<templates>
<t t-name="kanban-box">
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_stock_picking_type">
<div class="oe_kanban_content">
<h4 class="text-center"><strong><field name="complete_name"/></strong></h4>
<div class="oe_items_list oe_kanban_ellipsis">
<div>
<a name="%(action_in_alt_move_views)d" type="action">Open moves</a>
</div>
</div>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
我將打開我的看板(和stock.picking.type
默認的形式)
<record id="action_in_alt_picking_type_views" model="ir.actions.act_window">
<field name="name">Picking types</field>
<field name="res_model">stock.picking.type</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,form</field>
<field name="search_view_id" ref="stock.view_pickingtype_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a new picking type.
</p><p>
The picking type system allows you to assign each stock
operation a specific type which will alter its views accordingly.
On the picking type you could e.g. specify if packing is needed by default,
if it should show the customer.
</p>
</field>
</record>
<record id="action_in_alt_picking_type_kanban" model="ir.actions.act_window.view">
<field name="view_mode">kanban</field>
<field name="view_id" ref="poc_alternative_stock.stock_picking_type_2_move_kanban"/>
<field name="act_window_id" ref="action_in_alt_picking_type_views"/>
</record>
<record id="action_in_alt_picking_type_form" model="ir.actions.act_window.view">
<field name="view_mode">form</field>
<field name="view_id" ref="stock.view_picking_type_form"/>
<field name="act_window_id" ref="action_in_alt_picking_type_views"/>
</record>
我的菜單項
行動10<menuitem action="action_in_alt_picking_type_views"
id="menu_action_in_alt_move_views"
parent="stock.menu_stock_warehouse_mgmt" sequence="4"/>
THE BEHAVIOUR
當我點擊我的菜單項,我得到了不同的錯誤,他們大多告訴我,什麼領域不存在。問題是,所有這些字段都屬於我爲stock.move
模型製作的搜索視圖。我不知道爲什麼這個搜索視圖正在加載到我的stock.picking.type
動作中,所以Odoo試圖用搜索視圖stock.move
顯示我的看板視圖。這是錯誤的原因。如果我評論搜索視圖的每一個領域,我得到這個錯誤:
raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'state' in leaf "<osv.ExtendedLeaf: ('state', '=', 'draft') on stock_picking_type (ctx:)>"
這是我stock.move
搜索視圖的第一個過濾器的域。
爲什麼Odoo試圖加載該搜索視圖? (如果您看到我的動作代碼,我甚至包含參數search_view_id
,嘗試加載默認搜索視圖stock.picking.type
而不是stock.move
)。
而且還有一個更令人驚訝的事情是,如果我修改我stock.picking.type
看板視圖的優先級和寫例如16,這將有比原來的(在stock
模型申報)更優先,所以現在如果點擊再次登錄倉庫>操作>所有操作,我的看板視圖已加載。但是,嘿,這裏的裝載正確,它完美,完全按照我的意願,看板視圖是好的,它的搜索視圖也鏈接重定向到我想要的視圖...
任何人都可以解釋我這裏發生了什麼事?
謝謝您回答@Cherif。不幸的是,該解決方案不起作用。我從來沒有爲'action_in_alt_picking_type_views'創建一個域,它試圖在重定向到'stock.picking.type'模型的動作中加載'stock.move'的搜索視圖,所以Odoo對每個域都抱怨。如果我從'stock.move'搜索視圖中刪除了帶有域['('state','=','draft')]'的過濾器,那麼錯誤就是另一個過濾器的域,甚至是一個'stock'域。移動「搜索視圖。 – forvas