仓库库存限制在编辑模式 odoo10 中不起作用?
Warehouse stock restriction not working in edit mode odoo10?
在我的自定义模块中,我使用选股类型来查看用户的仓库操作。
class ResUsers(models.Model):
_inherit = 'res.users'
default_picking_type_ids = fields.Many2many(
'stock.picking.type', 'stock_picking_type_users_rel',
'user_id', 'picking_type_id', string='Warehouse Operations')
我在用户表单中添加了这个。
在我的 sexurity.xml 文件中添加
<record id="filter_user_stock_picking_type" model="ir.rule">
<field name="name">Filter Stock Picking Type</field>
<field name="model_id" search="[('model','=','stock.picking.type')]" model="ir.model"/>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="domain_force">[('id','in', [ s.id for s in user.default_picking_type_ids ])]</field>
</record>
所以它在创建用户并分配库存操作时起作用。
但将库存操作更改为特定用户时,不会影响。
如何解决这个问题??
我想,问题出在Odoo Cache
。
旧值会长期保存在缓存中,您的更改不会生效。
您可以尝试清除缓存。它帮助我解决了类似的问题。
class User(models.Model):
_inherit = 'res.users'
@api.multi
def write(self, vals):
ret = super(User, self).write(vals)
if 'default_picking_type_ids' in vals:
# clear default ir values when default_picking_type_ids changes
self.env['ir.values'].get_defaults_dict.clear_cache(self.env['ir.values'])
return ret
在我的自定义模块中,我使用选股类型来查看用户的仓库操作。
class ResUsers(models.Model):
_inherit = 'res.users'
default_picking_type_ids = fields.Many2many(
'stock.picking.type', 'stock_picking_type_users_rel',
'user_id', 'picking_type_id', string='Warehouse Operations')
我在用户表单中添加了这个。
在我的 sexurity.xml 文件中添加
<record id="filter_user_stock_picking_type" model="ir.rule">
<field name="name">Filter Stock Picking Type</field>
<field name="model_id" search="[('model','=','stock.picking.type')]" model="ir.model"/>
<field name="groups" eval="[(4, ref('base.group_user'))]"/>
<field name="domain_force">[('id','in', [ s.id for s in user.default_picking_type_ids ])]</field>
</record>
所以它在创建用户并分配库存操作时起作用。
但将库存操作更改为特定用户时,不会影响。
如何解决这个问题??
我想,问题出在Odoo Cache
。
旧值会长期保存在缓存中,您的更改不会生效。
您可以尝试清除缓存。它帮助我解决了类似的问题。
class User(models.Model):
_inherit = 'res.users'
@api.multi
def write(self, vals):
ret = super(User, self).write(vals)
if 'default_picking_type_ids' in vals:
# clear default ir values when default_picking_type_ids changes
self.env['ir.values'].get_defaults_dict.clear_cache(self.env['ir.values'])
return ret