Ir al contenido
Menú
Se marcó esta pregunta
5 Respuestas
6033 Vistas

I try to figure how I can show a restricted list of orders, purchases or invoice based on a field I added in the product model, stock_owner_id. He should see only records related to his allowed_stock_owner_ids.

Am I forced to copy stock_owner_id from product.template to sale.order.line to sale.order to apply my domain filter? Is there another way around?

Here are my models:

class User(models.Model): 
    _inherit = 'res.users'
    
    current_stock_owner_id = fields.Many2one('res.partner', string='Current Stock Owner')
    allowed_stock_owner_ids = fields.Many2many('res.partner', 'res_partner_users_rel', 
                                       string='Stock Owners',
                                       domain="[('stock_owner','=',True)]")

class ProductTemplate(models.Model): _inherit = 'product.template' stock_owner_id = fields.Many2one('res.partner', string='Stock Owner',     domain="[('stock_owner','=',True)]")

Avatar
Descartar

you may need to provide domain in a RETURN.... which returns a model ,say 'purchase.order' and define that domain based on your condition

Autor

Abdul, can you give an example?

please check the question that i have asked "pass filtered purchase orders"...

Autor

That doesn't help me at all sorry. I don't see the link between your case and mine. My ultimate goal is to create record rules...

Autor Mejor respuesta

Got it! Here is the record rule I need :)

 <record id="isolate_stock_owners_sale_order_rule" model="ir.rule">
        <field name="name">Isolate Stock Owner Sale Order</field>
        <field name="model_id" ref="model_sale_order"/>
        <field eval="True" name="global"/>
        <field name="domain_force">[('order_line.product_tmpl_id.stock_owner_id', '=', user.allowed_stock_owner_ids.id)]</field>
    </record>
Avatar
Descartar

if u don't mind will u please explain,how record rule works??currently i am familiarised with only two types of records.ir.ui.view and action.

Autor

This allow us to define rules tu access records based on a domain filter. As you can see the domain filter allow dot notation on the left and right side. Check the documentation because when executed on the client side, domain filter doesn't allow dot notation on the left side if I'm not mistaken.

Publicaciones relacionadas Respuestas Vistas Actividad
1
may 24
2537
1
nov 22
4880
2
jul 22
3592
2
may 18
9793
2
jul 17
6720