This question has been flagged
5 Replies
14257 Views

I have a problem in changing the names for odoo addon modules. I've tried with xpath, attributes, but I just can't get it to work.

<xpath expr="//field[@name='manager_id']" position="attributes">
    <attribute name="string">New Field Label</attribute>
</xpath>

<field name="manager_id" position="attributes">
    <attribute name="string">New Field Label</attribute>
</field>

There must be a  way to change the field labels? And is there a way to change it so that it changes in every view the field is used?

EDIT:

code that I tried:

<record model="ir.ui.view" id="view_hr_res_company_form">
	<field name="inherit_id" ref="base.view_company_form" />
	<field name="model">res.company</field>
	<field name="arch" type="xml">
		<xpath expr="//form/sheet/notebook/page/field[@name='company_registry']" position="attributes">
			<attribute name="string">Matična številka</attribute>
		</xpath>
		<xpath expr="//field[@name='vat']" position="after">
			<field name="account_no"/>
			<field name="obcina"/>
			<field name="dejavnost"/>
		</xpath>
	</field>
</record>


  

Avatar
Discard

Hi Samo,

Your approach is correct, you need to check with priorities and also check with inherit_id.

Author

can you dumb it down so I could understand :) I edited the question with the code I tried.

Best Answer

Hi Samo,

You're trying update slovenian string as en_US in view, this is not correct approach better need to do this change into translation file directly.

add in your po file the related field like example:

#. module: <your_module>

#: field: <your_moddel>,field:0

#: field: <your_related_moddel>,field:0

msgid "English"

msgstr "Translation"

Avatar
Discard
Author

Can't change directly into the translation file. Needs to be in the custom module so it's independent from odoo install and it's files. Plus I don't have time to figure out another odoo functionality.

You could also change it from odoo ir translation if you're struggling to add it from files

Author

Sushma you are correct, but NOT helpful because I don't have time for the correct way, I just need a quick work around. I'll do the correct way, when I start building the next custom module from ground up.

Author

you where right in the first comment on my question. The xpath was to complicated. With only //field[@name="<name_of_field>"] it works.

Best Answer

You can inherit the model in python 

_inherit='model.name'

and override the field definition to set the string to whatever label you desire

manager_id = fields.Many2one(string='Your preferred label')
Avatar
Discard
Author

It doesn't work, probably because it's translated. Any way to change the translation?