如何模拟stock.picking.type看板视图的行为?
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"><span><field name="complete_name"/></span></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
模型申报)更优先,所以现在如果点击再次登录仓库>操作>所有操作,我的看板视图已加载。但是,嘿,这里的装载正确,它完美,完全按照我的意愿,看板视图是好的,它的搜索视图也链接重定向到我想要的视图...
任何人都可以解释我这里发生了什么事?
回答:
从你的代码的外观你没有任何域('state', '=', 'draft')
我假设当你第一次在你的代码中吃午餐你的代码有一个。当你有错误时,你将其删除。在XML中删除代码不会更新数据库中的数据。
<!-- you must tell Odoo empty the field first and next time remove the code(in production) when odoo load some thing to database
like context, domain, any other value clear it first then remove
the code -->
<fied name="domain">[] </field>
当你在XML中有一个错误,要尽量记住你之前,你清楚它从数据库中删除第一次什么样的代码。
以上是 如何模拟stock.picking.type看板视图的行为? 的全部内容, 来源链接: utcz.com/qa/263930.html