отключить редактируемые поля в 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>
Другие вопросы по тегам