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:
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;
ha a nézetnek nincs szülője, az
arch-ját változatlanul használják;az aktuális nézet
extensionmó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:
egy elem lokátor, amely az örökölt elemet a szülő nézetben illeszti;
gyermek elem, amely módosítja az örökölt elemet.
Háromféle elem lokátor létezik:
Egy
xpathelemexprattribútummal. Azexpregy XPath kifejezés1, amelyet az aktuálisarch-ra alkalmaznak, és az első megtalált csomópontot illeszti;Egy
fieldelemnameattribútummal, amely az első azonosname-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ésversionattribú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
attributeelemekből kell állnia, mindegyikneknameattribútummal és opcionális törzzsel.Ha az
attributeelemnek van törzse, egy új, anamealapján elnevezett attribútum kerül hozzáadásra a megfelelő csomóponthoz azattributeelem szövegével értékként.Ha az
attributeelemnek nincs törzse, anamealapján elnevezett attribútum eltávolításra kerül a megfelelő csomópontból.Ha az
attributeelemnek vanaddattribútuma,removeattribútuma, vagy mindkettő, a megfelelő csomópontnamealapján elnevezett attribútumának értéke újraszámításra kerül azadd,removeérték(ek) figyelembevételével, és egy opcionálisseparatorattribútummal, amely alapértelmezés szerint,. Azaddtartalmazza az érték(ek)et,separatoráltal elválasztva. Aremoveeltá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 attributepositionmust also be set, with valuesinside,replace,after, orbefore.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>