Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
3479 Visualizzazioni


<record id="action_import_sale_order_line_wizard" model="ir.actions.act_window">

    <field name="name">Import Material</field>

    <field name="type">ir.actions.act_window</field>

    <field name="res_model">import.sale.order.line.wizard</field>

    <field name="domain">[('proposal_id', '=', active_id)]</field>

    <field name="view_mode">tree,form</field>

    <field name="view_id" ref="configurator.import_sale_order_line_wizard_tree"/>

    <field name="binding_model_id" ref="model_proposals"/>

    <field name="binding_view_types">form</field>

    <field name="context">{'default_proposal_id': active_id}</field>

</record>

   


I want to make  to add this condition attrs="{'readonly': ['|', ('state', '!=', 'draft'), ('is_author', '=', False)]}"​. But where should I put it?


I've tried add {'invisible': [('state', '!=', 'draft'), ('is_author', '=', False)]}. But I'm getting error


<record id="action_import_sale_order_line_wizard" model="ir.actions.act_window">

    <field name="name">Import Material</field>

    <field name="type">ir.actions.act_window</field>

    <field name="res_model">import.sale.order.line.wizard</field>

    <field name="domain">[('proposal_id', '=', active_id)]</field>

    <field name="view_mode">tree,form</field>

    <field name="view_id" ref="configurator.import_sale_order_line_wizard_tree"/>

    <field name="binding_model_id" ref="model_proposals"/>

    <field name="binding_view_types">form</field>

    <field name="context">{'default_proposal_id': active_id}</field>

    <field name="attrs">{'invisible': [('state', '!=', 'draft'), ('is_author', '=', False)]}</field>

</record>


 

Avatar
Abbandona
Autore Risposta migliore

While waiting, I already implement different approach to solve my problem. Instead of hiding the button, I prevent the user to access


I change my xml to add the "Import Material" button

<record id="action_import_sale_order_line_wizard2" model="ir.actions.server">

        <field name="name">Import Material</field>

        <field name="type">ir.actions.server</field>

        <field name="model_id" ref="model_proposals" />

        <field name="binding_model_id" ref="model_proposals" />

        <field name="state">code</field>

        <field name="code">action = records.action_import_sale_order_line_wizard()</field>

    </record>


Then in model_proposals I add new function to call the view


    def action_import_sale_order_line_wizard(self):

        if self.state != 'draft' or not self.is_author:

            raise UserError(_('You can only import sale order line in draft state and you are the author of this proposal'))

        return {

            'name': _('Import Material'),

            'type': 'ir.actions.act_window',

            'res_model': 'import.sale.order.line.wizard',

            'domain': [('proposal_id', '=', self.id,

            },

        }

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
3
gen 24
8887
1
ott 23
8362
0
apr 23
1592
3
dic 23
20311
0
mar 24
5013