Не удается переопределить атрибут «имя» в представлении меню в Odoo 11? - PullRequest
0 голосов
/ 27 января 2019

Я новичок в Odoo.Я хотел бы изменить самое верхнее имя меню (без действий) с Employee на My new string.

<record id="hr.menu_hr_root" model="ir.ui.menu">
    <field name="name">My new string</field>
    <field name="sequence">92</field>
</record>

Я уверен, что идентификатор правильный, потому что атрибут sequence изменен, как и ожидалось,Проблема в том, что name остается неизменным в любом случае.Меню, которое я хочу изменить - это модуль по умолчанию hr.Единственное решение, которое у меня есть сейчас, - это удалить запись и воссоздать ее с новыми значениями.Я попытался обновить свои собственные представления меню, и они работают, как я ожидал, но это случай из модуля hr по умолчанию, который переведен на мой язык (вьетнамский).Кто-нибудь может рассказать мне об этом?

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Это будет работать

<menuitem id="hr.menu_hr_root" name="your new string" sequence="92" />

И не забудьте добавить час в зависимость

0 голосов
/ 01 февраля 2019

Я знал проблему и решил сам. Проблема в том, что любые переводимые строки всегда переопределяются при переводе. Код в моем вопросе работает на языке по умолчанию (английский). После перевода (при установке или настройке параметров) новое поле «имя» больше не работает (другие поля все еще работают).

Возможны 2 решения:

1) Как я уже говорил, удалите запись по id, а затем повторно объявите ее (скопируйте код из исходного модуля в новый). Проблема с решением - ненужный дублирующий код.

2) Экспортируйте файл .po (файл переводчика) модуля и измените его, как предполагалось. Затем вставьте файл в подпапку модуля i18n с тем же путем и именем, что и у исходного модуля. Наконец, запустите сервер odoo с флагом --i18n-overwrite, чтобы переопределить тот же файл в исходном модуле.

0 голосов
/ 30 января 2019

Попробуйте обновить имя с помощью ярлыка menuitem:

<menuitem id="hr.menu_hr_root"
          name="My new string"
          sequence="92" />

Попробуйте также использовать атрибут строки

<menuitem id="hr.menu_hr_root"
          string="My new string"
          sequence="92" />

Элемент меню указывает на действие, и оно берет имя оттудапоэтому вам, возможно, придется переопределить имя действия (как некоторые пользователи уже прокомментировали ваш вопрос).Просто оригинальный пример с пунктом меню action +:

<record model="ir.actions.act_window" id="account_analytic_distribution_action">
    <field name="name">Analytic distributions</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">account.analytic.distribution</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
    <field name="search_view_id" ref="account_analytic_distribution_search"/>
</record>

<menuitem parent="account.menu_analytic_accounting"
          id="menu_account_analytic_distribution"
          action="account_analytic_distribution_action"
          groups="analytic.group_analytic_accounting" />

И чтобы изменить имя действия:

<record model="ir.actions.act_window" id="account.account_analytic_distribution_action">
    <field name="name">New name</field>
</record>

Если проблема с переводами возникает, проверьте, если этот ответ полезен.Обновление базового модуля, используемого для работы в более старых версиях.

В качестве обходного пути вы можете перейти к переведенным элементам и напрямую обновить значения.

...