Как наследовать определенный вид в нашем собственном модуле? ОДОО

Доброе утро всем, я хотел бы унаследовать некоторые представления от представлений ODOO. так что я могу использовать его мой собственный модуль. может ли кто-нибудь объяснить мне, каковы возможные пути к этому?

Заранее спасибо.!


person CSMaverick    schedule 14.10.2015    source источник


Ответы (2)


Просмотреть наследование

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

Представление расширения ссылается на своего родителя с помощью поля inherit_id, и вместо одного представления его поле свода состоит из любого количества элементов xpath, выбирающих и изменяющих содержимое своего родительского представления:

<!-- improved idea categories list -->
<record id="idea_category_list2" model="ir.ui.view">
    <field name="name">id.category.list2</field>
    <field name="model">idea.category</field>
    <field name="inherit_id" ref="id_category_list"/>
    <field name="arch" type="xml">
        <!-- find field description and add the field
             idea_ids after it -->
        <xpath expr="//field[@name='description']" position="after">
          <field name="idea_ids" string="Number of ideas"/>
        </xpath>
    </field>
</record>

expr Выражение XPath, выбирающее один элемент в родительском представлении. Выдает ошибку, если не соответствует ни одному элементу или более чем одной позиции

Operation to apply to the matched element:

inside
    appends xpath's body at the end of the matched element
replace
    replaces the matched element by the xpath's body
before
    inserts the xpath's body as a sibling before the matched element
after
    inserts the xpaths's body as a sibling after the matched element
attributes
    alters the attributes of the matched element using special attribute elements in the xpath's body

Совет

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

<xpath expr="//field[@name='description']" position="after">
    <field name="idea_ids" />
</xpath>

<field name="description" position="after">
    <field name="idea_ids" />
</field>

Надеюсь, это поможет.

person Baiju KS    schedule 14.10.2015

Вот как я наследую и использую существующее представление в моем новом модуле. Я хотел унаследовать вид покупки, поэтому в своем модуле я наследую объект Purchase.order

class purchase_order(osv.osv):
_inherit="purchase.order"

//вы можете добавить сюда любые поля, как обычно

и я наследую вид, подобный этому ниже

<record id="purchase_order_advance_invoice_inherit_form" model="ir.ui.view">
<field name="name">purchase.order.advance.invoice.inherit.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" **ref="purchase.purchase_order_form"**/>

//здесь я ссылаюсь на представление, которое я собираюсь унаследовать, вы можете закончить остальную часть тега

person noble_man    schedule 14.10.2015