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