Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
11 Odpowiedzi
26305 Widoki

Hy,

I would like to filter datas with domain action and current company_id.
I tried many thinks without success :

<record id="action_tasks" model="ir.actions.act_window">
        <field name="name">tasks</field>
        <field name="res_model">project.task</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="context">{}</field>
        <field name="domain" >[('company_id','!=',context.get('company_id',False))]</field>
        </record>

More generally how to create an action linked on a menu that is filtered on current company.
Is there any way to dynamically associate the menu to an action and return a filtered action_window?

Thanks

Awatar
Odrzuć

In another way to Filter record using Record Rule

Najlepsza odpowiedź

I tested it on runbot => no success ccould it be a bug?

Awatar
Odrzuć

I have the same problem. Ho add mandatory filter for company_id?

Hy Ray, thanks fro reading my post, unfortunately, I have this message name : ``` NameError: name 'user' is not defined

Thanks to @Ray and @atchuthan for advice. It works implemented in rule. Small drawback is that this setting does not apply to the admin. Only an ordinary user has limited access to the data filtered by "company_id" rule.

Najlepsza odpowiedź

<field name="domain">[('company_id','=',allowed_company_ids[0])]</field>

Awatar
Odrzuć

look like this solution doesn't work on record rule.

Najlepsza odpowiedź

We already have a rule available for Project Task that was done for Multi-company

    <record model="ir.rule" id="task_comp_rule">
        <field name="name">Project/Task: multi-company</field>
        <field name="model_id" ref="model_project_task"/>
        <field name="global" eval="True"/>
        <field name="domain_force">['|',
                                        ('company_id', '=', False),
                                        ('company_id', 'child_of', [user.company_id.id]),
                                    ]</field>
    </record>

So, your requirement is to show the record for that particular company and not all its child company.  Then you need to change the RULE

<field name="domain_force">['|',
                                        ('company_id', '=', False),
                                        ('company_id', '=', [user.company_id.id]),
                                    ]</field>

But, functionally making this change is a wrong move.

Awatar
Odrzuć

I'm migrating from odoo11 to odoo12.

This domain works in odoo11 But not in odoo12 , Any Idea?

Najlepsza odpowiedź

    [ ("company_id", "=", base.main_company) ] if you rely on only one company (this usually works).

Is there any way to dynamically associate the menu to an action and return a filtered action_window?

Override the search method in your model.

Check also https://www.odoo.com/forum/help-1/question/how-to-append-a-domain-with-to-existing-domain-58308#answer-58389.

Awatar
Odrzuć
Najlepsza odpowiedź

[ ("company_id", "=", user.company_id.id) ]

Awatar
Odrzuć

I tried but result is

Uncaught Error: NameError: name 'user' is not defined

Same in model="ir.actions.act_window">