Tag: python

Making Fields Visible and Invisible based on One2many field values in Odoo

Py File

from odoo import models, fields, api, _
from odoo.exceptions import UserError

class AccountPaymentRegister(models.TransientModel):
_inherit = ‘account.payment.register’

# == Inherit fields ==
cheque_date = fields.Date(String="Cheque Date", default=fields.Date.context_today)
cheque_no = fields.Char(String="Cheque No.")
rec_bank = fields.Char(String="Receive Bank")    
payment_method_code = fields.Char(String="Payment Method code")

is_bank_selected = fields.Boolean(string="is bank selected")
# Journal ID - Many2one 
# If Journal ID is Bank is is_bank_selected become TRUE.
@api.onchange('journal_id')
def _change_journal_id(self):
    if self.journal_id.name == 'Bank':
        self.is_bank_selected = True
    else:           
        self.is_bank_selected = False    

XML file

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <record id="view_account_payment_register_mesco_inherit_form" model="ir.ui.view">
            <field name="name">account.payment.register.mesco.inherit.form</field>
            <field name="model">account.payment.register</field>
            <field name="inherit_id" ref="account.view_account_payment_register_form"/>
            <field name="arch" type="xml">
                <field name="communication" position="after">
                    <field name="is_bank_selected" invisible="1"/>
                    <field name="cheque_date" attrs="{'invisible': [('is_bank_selected', '!=', True)]}"/>
                    <field name="cheque_no" attrs="{'invisible': [('is_bank_selected', '!=', True)]}"/>
                    <field name="rec_bank" attrs="{'invisible': [('is_bank_selected', '!=', True)]}"/>
                </field>
            </field>
        </record>

    </data>
</odoo>

Change menu name and action name in Odoo

<!– Delete the Purchase Agreements –>
<delete model=”ir.ui.menu” id=”menu_purchase_requisition_pro_mgt” />
<!– Create the menu the Material Request –>
<menuitem
name=”Material Request” id=”menu_purchase_requisition_pro_mgt”
sequence=”10″
parent=”purchase.menu_procurement_management”
action=”purchase_requisition.action_purchase_requisition” />
<!– Update the action name Material Request –>
<record id=”purchase_requisition.action_purchase_requisition” model=”ir.actions.act_window”>
<field name=”name”>Material Request</field>
</record>aterial Request Material Request