在产品分类下添加产品是如何做的
-
也不知道自己整理的对不对 高手帮忙看下
1、建立树形目录VIEW
<record id="product_category_tree_view" model="ir.ui.view">
<field name="name">product.category.tree</field>
<field name="model">product.category</field>
<field name="type">tree</field>#树形目录一定得是tree
<field name="field_parent">child_id</field>#目录树 子树
<field name="arch" type="xml">
<tree string="Product Categories">
<field name="name"/>
</tree>
</field>
</record>
2、动作action 窗口动作(ir.actions.act_window)
<record id="product_category_action" model="ir.actions.act_window">
<field name="name">Products by Category</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.category</field>
<field name="domain">[('parent_id','=',False)]</field>#这个一定要有。指定根目录
<field name="view_type">tree</field>
<field name="view_id" ref="product_category_tree_view"/>#关联上面的树view
</record>
3、菜单关联action
<menuitem action="product_category_action" id="menu_product_category_action" parent="product.menu_main_product"
sequence="1"/>
4、点树时打开的那个view
<record id="product_normal_action_tree" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('categ_id','child_of',[active_id])]</field>
<field name="context">{'categ_id':active_id}</field>#新增时传递的categ_id参数,参数名应该是任意的吧?见6
</record>
5、由1中的树到4的view转。但是 这步是怎么触发的就不知道了似乎是内定的 tree点击就触发了?
<record id="ir_product_category_open" model="ir.values">
<field eval="'tree_but_open'" name="key2"/>
<field eval="'product.category'" name="model"/>#注意这里的类是product.category
<field name="name">Products by Categories</field>
<field eval="'ir.actions.act_window,%d'%product_normal_action_tree" name="value"/>#转换到4了 类也变成product.product
了
<field eval="True" name="object"/>
</record>
注意这个地方如果是在 系统管理--自定义--操作--关联动作到客户端事件中定义时res_id必须是空它默认是0
6、接收4步骤中“context”传递的参数
def _default_category(self, cr, uid, context={}):
if 'categ_id' in context and context['categ_id']:
return context['categ_id']
return False