отключить редактируемые поля в Tree View Odoo 14
Я пытаюсь сделать в этом древовидном представлении поля только для чтения, но это представление унаследовано от hr.employee, и мы используем, и я могу сделать обычные поля только для чтения, за исключением столбцов TITLE и ASSIGNED TO.
или можно ли отключить этот флажок из коробки из Odoo 14? Спасибо!!
'''
<record id="view_task_tree_rw" model="ir.ui.view">
<field name="name">project.task.tree.inherited</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_tree2"/>
<field name="arch" type="xml">
<xpath expr="//tree[1]/field[@name='name']" position="after">
<field name="status"/>
<field name="date_start" widget="date"/>
<field name="date_end" widget="date" />
<field name="billable"/>
<field name="utilization"/>
<field name="planned_hours"/>
</xpath>
<xpath expr="//field[@name='company_id']" position="replace"/>
<xpath expr="//field[@name='activity_ids']" position="replace"/>
<xpath expr="//field[@name='tag_ids']" position="replace"/>
<xpath expr="//field[@name='stage_id']" position="replace"/>
<xpath expr="//field[@name='project_id']" position="replace"/>
<xpath expr="//tree[1]/field[@name='name']" position="after">
<xpath expr="//field[@name='user_id']" position="move"/>
</xpath>
</field>
</record>
'''[1]: https://stackru.com/images/c1cdfa4caed46b18bd6c681c938073623cc587a1.png
2 ответа
в
xpath
определение, которое вы могли бы использовать
position="attributes"
, чтобы переопределить существующие атрибуты поля унаследованного представления. поэтому ваш код будет следующим:
<xpath expr="//field[@name='TARGET FIELD NAME']" position="attributes">
<attribute name="readonly">1</attribute>
</xpath>
Запись метода с помощью @kerbose - это нормально, но иногда, когда есть много наследований для модели, и вы не знаете, какое из них последнее, и какое-то поле перезаписывает ваше поле, вы можете просто использовать приоритет. Значение приоритета по умолчанию - 16. Поэтому используйте более высокое значение, потому что, возможно, в будущем вы захотите загрузить что-то между вашим представлением и предыдущим представлением.
Пример:
<field name="priority">50</field>
Образец просмотра:
<record id="view_task_tree_rw_inherit_something" model="ir.ui.view">
<field name="name">project.task.tree.inherited.inherit.something</field>
<field name="model">project.task</field>
<field name="priority">50</field>
<field name="inherit_id" ref="project.view_task_tree2"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='TARGET FIELD NAME']" position="attributes"
<attribute name="readonly">1</attribute>
</xpath>
</field>
</record>