Rekordok megtekintése

A nézetek határozzák meg, hogyan jelenjenek meg a rekordok a végfelhasználók számára. Ezek XML-ben vannak megadva és maguk is rekordként vannak tárolva, ami azt jelenti, hogy függetlenül szerkeszthetők az általuk képviselt modellektől. Rugalmasak és lehetővé teszik a képernyők magas szintű testreszabását, amelyeket irányítanak. Különböző nézettípusok léteznek. Mindegyik egy megjelenítési módot képvisel: form, list, kanban stb.

Általános szerkezet

Az alapvető nézetek általában az alább meghatározott közös minimális szerkezetet osztják meg. A helykitöltők nagybetűvel vannak jelölve.

<record id="ADDON.MODEL_view_TYPE" model="ir.ui.view">
  <field name="name">NAME</field>
  <field name="model">MODEL</field>
  <field name="arch" type="xml">
    <VIEW_TYPE>
      <views/>
    </VIEW_TYPE>
  </field>
</record>

Nézettípusok

Űrlap

Egyetlen rekord adatait jeleníti meg és szerkeszti.

Lista

Több rekord megtekintése és szerkesztése.

Keresés

Szűrők alkalmazása és keresések végrehajtása. Az eredmények a jelenlegi lista, kanban… nézetben jelennek meg.

Kanban

Display records as „cards”, configurable as a small template.

Qweb

Jelentések, weboldalak sablonozása…

Graph

Aggregációk megjelenítése rekordok vagy rekordcsoportok felett.

Pivot

Aggregációk megjelenítése pivot táblázat formájában.

Calendar

Rekordok megjelenítése eseményekként napi, heti, havi vagy éves naptárban.

Mezők

A nézetrekordok számos mezőt tárnak fel.

Megjegyzés

A jelenlegi kontextus és a felhasználói hozzáférési jogok szintén befolyásolhatják a nézet képességeit.

Öröklés

Az öröklés lehetővé teszi a szállított nézetek testreszabását. Lehetővé teszi például, hogy tartalmat adjon hozzá, ahogy a modulok telepítésre kerülnek, vagy hogy különböző megjelenítéseket biztosítson az akció szerint.

Az örökölt nézetek általában az alább meghatározott közös struktúrát osztják meg. A helyőrzők nagybetűkkel vannak jelölve. Ez a szintetikus nézet egy XPath által célzott csomópontot fog frissíteni, és egy másikat, amelyet a neve és attribútumai alapján céloznak meg.

<record id="ADDON.MODEL_view_TYPE" model="ir.ui.view">
    <field name="model">MODEL</field>
    <field name="inherit_id" ref="VIEW_REFERENCE"/>
    <field name="mode">MODE</field>
    <field name="arch" type="xml">
        <xpath expr="XPATH" position="POSITION">
            <CONTENT/>
        </xpath>
        <NODE ATTRIBUTES="VALUES" position="POSITION">
            <CONTENT/>
        </NODE>
    </field>
</record>

Az inherit_id és mode mezők határozzák meg a nézet feloldását. Az xpath vagy NODE elemek jelzik az öröklési specifikációkat. Az expr és position attribútumok meghatározzák az öröklési pozíciót.

Nézet feloldása

A feloldás a következőképpen generálja a kért/megfelelő primary nézet végső arch-ját:

  1. ha a nézetnek van szülője, a szülő teljesen feloldódik, majd az aktuális nézet öröklési specifikációi alkalmazásra kerülnek;

  2. ha a nézetnek nincs szülője, az arch-ját változatlanul használják;

  3. az aktuális nézet extension módú gyermekei kerülnek megkeresésre, és öröklési specifikációik mélységi sorrendben kerülnek alkalmazásra (egy gyermek nézet alkalmazásra kerül, majd annak gyermekei, majd testvérei).

Az öröklés az inherit_id mező szerint kerül alkalmazásra. Ha több nézetrekord örökli ugyanazt a nézetet, a sorrendet a priority határozza meg.

A gyermek nézetek alkalmazásának eredménye adja a végső arch-ot.

Öröklési specifikációk

Az öröklési specifikációk sorrendben alkalmazandók, és a következőkből állnak:

  1. egy elem lokátor, amely az örökölt elemet a szülő nézetben illeszti;

  2. gyermek elem, amely módosítja az örökölt elemet.

Háromféle elem lokátor létezik:

  • Egy xpath elem expr attribútummal. Az expr egy XPath kifejezés1, amelyet az aktuális arch-ra alkalmaznak, és az első megtalált csomópontot illeszti;

  • Egy field elem name attribútummal, amely az első azonos name-mel rendelkező mezőt illeszti.

    Megjegyzés

    Minden más attribútum figyelmen kívül marad.

  • Bármely más elem, amely az első azonos name-mel és azonos attribútumokkal rendelkező elemet illeszti.

    Megjegyzés

    Az position és version attribútumok figyelmen kívül maradnak.

1

Egy kiterjesztési funkció hozzáadásra kerül az egyszerűbb illesztés érdekében a QWeb nézetekben: hasclass(*classes) akkor illeszkedik, ha a kontextus csomópont rendelkezik az összes megadott osztállyal.

Example

<xpath expr="page[@name='pg']/group[@name='gp']/field" position="inside">
    <field name="description"/>
</xpath>

<div name="name" position="replace">
    <field name="name2"/>
</div>

Öröklési pozíció

Az öröklési specifikációk elfogadnak egy opcionális position attribútumot, amely alapértelmezés szerint inside, és meghatározza, hogyan kell módosítani a megfelelő csomópontot.

inside

Az öröklési specifikáció tartalma hozzáadódik a megfelelő csomóponthoz.

Example

<notebook position="inside">
    <page string="New feature">
        ...
    </page>
</notebook>
after

Az öröklési specifikáció tartalma hozzáadódik a megfelelő csomópont szülőjéhez a megfelelő csomópont után.

Example

<xpath expr="//field[@name='x_field']" position="after">
    <field name="x_other_field"/>
</xpath>
before

Az öröklési specifikáció tartalma hozzáadódik a megfelelő csomópont szülőjéhez a megfelelő csomópont előtt.

Example

<field name=x_field" position="before">
    <field name="x_other_field"/>
</field>
replace

Az öröklési specifikáció tartalma helyettesíti a megfelelő csomópontot. Bármely szövegcsomópont, amely csak $0-t tartalmaz a specifikáció tartalmában, a megfelelő csomópont másolatával helyettesítődik, hatékonyan körülölelve a megfelelő csomópontot.

Example

<xpath expr="//field[@name='x_field']" position="replace">
    <div class="wrapper">
        $0
    </div>
</xpath>
attributes

Az öröklési specifikáció tartalmának csak attribute elemekből kell állnia, mindegyiknek name attribútummal és opcionális törzzsel.

  • Ha az attribute elemnek van törzse, egy új, a name alapján elnevezett attribútum kerül hozzáadásra a megfelelő csomóponthoz az attribute elem szövegével értékként.

  • Ha az attribute elemnek nincs törzse, a name alapján elnevezett attribútum eltávolításra kerül a megfelelő csomópontból.

  • Ha az attribute elemnek van add attribútuma, remove attribútuma, vagy mindkettő, a megfelelő csomópont name alapján elnevezett attribútumának értéke újraszámításra kerül az add, remove érték(ek) figyelembevételével, és egy opcionális separator attribútummal, amely alapértelmezés szerint ,. Az add tartalmazza az érték(ek)et, separator által elválasztva. A remove eltávolítja az érték(ek)et, separator által elválasztva.

Example

<field name="x_field" position="attributes">
    <attribute name="invisible">True</attribute>
    <attribute name="class" add="mt-1 mb-1" remove="mt-2 mb-2" separator=" "/>
</field>
move

The attribute position="move" is set on the content of the inheritance spec to specify how nodes are moved relatively to the inheritance spec’s element locator, on which the attribute position must also be set, with values inside, replace, after, or before.

Example

<xpath expr="//@target" position="after">
    <xpath expr="//@node" position="move"/>
</xpath>

<field name="target_field" position="after">
    <field name="my_field" position="move"/>
</field>

Modell közös elemek