Nézet architektúrák¶
Általános architektúra¶
Egy nézet architektúráját az XML adatok határozzák meg, amelyeket a JavaScript keretrendszer értelmez.
A legtöbb nézet esetében van egy *.rng fájl, amely meghatározza az attribútumokat és a lehetséges architektúrákat. Néhány nézetet nem szabályoz ilyen fájl, vagy azért, mert HTML tartalmat fogadnak el, vagy teljesítmény okokból.
Megjegyzés
Az aktuális kontextus és a felhasználói hozzáférési jogok befolyásolhatják a nézet képességeit.
Lásd még
Python kifejezés¶
Amikor a csomópont attribútumait értékeljük, például a readonly módosítót, lehetőség van egy Python kifejezés megadására, amelyet egy olyan környezetben hajtanak végre, amely hozzáfér a következő változókhoz:
Az aktuális nézetben jelen lévő összes mező neve, amely tartalmazza az aktuális rekord értékét, kivéve a
column_invisiblea list view esetében; a relációs mezők ID-k listájaként vannak megadva;Az aktuális rekord ID-ja;
parent: a konténerre hivatkozó rekord; csak a relational fields alnézeteiben;context (dict): az aktuális nézet kontextusa;uid (int): az aktuális felhasználó azonosítója;today (str): az aktuális helyi dátumÉÉÉÉ-HH-NNformátumban;now (str): az aktuális helyi dátum és időÉÉÉÉ-HH-NN óó:pp:mmformátumban.
Example
<field name="field_a" readonly="True"/>
<field name="field_b" invisible="context.get('show_me') and field_a == 4"/>
Example
<field name="field_a"/>
<field name="x2m">
<!-- sub-view -->
<form>
<field name="field_b" invisible="parent.field_a"/>
</form>
</field>
Űrlap¶
Az űrlap nézetek egyetlen rekord adatait jelenítik meg. Ezek hagyományos HTML-ből állnak, kiegészítve további szemantikai és strukturális elemekkel.
Az űrlap nézetek gyökéreleme a form.
<form>
...
</form>
Gyökér attribútumok¶
Opcionális attribútumok adhatók a form gyökérelemhez a nézet testreszabásához.
- string
A nézet címe. Csak akkor jelenik meg, ha olyan műveletet nyit meg, amelynek nincs neve, és amelynek célja
new(párbeszédablak megnyitása).- követelmény
Opcionális
- típus
- alapértelmezett
''
- create
Rekord létrehozásának letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- edit
Rekord szerkesztésének letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- duplicate
Rekord másolásának letiltása/engedélyezése a nézeten az Action legördülő menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- delete
Rekord törlésének letiltása/engedélyezése a nézeten a Action legördülő menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- js_class
A JavaScript komponens neve, amelyet a webkliens a form nézet helyett példányosít.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- disable_autofocus
Az automatikus fókuszálás letiltása a nézet első mezőjén.
- követelmény
Opcionális
- típus
- alapértelmezett
False
Szemantikus komponensek¶
A szemantikus komponensek az Odoo rendszerhez kapcsolódnak és lehetővé teszik az interakciót vele.
A form nézetek a következő gyermek szemantikus komponenseket fogadják el: field, label, button, Csevegő widget, és Csatolmány előnézet widget.
A helyőrzők nagybetűkkel vannak jelölve.
field: mezőértékek megjelenítése¶
A field elem megjelenít (és lehetőleg szerkesztést is enged) egyetlen mezőt az aktuális rekordból.
Ugyanazon mező többszöri használata egy űrlap nézetben támogatott, és a mezők különböző értékeket kaphatnak az invisible és readonly attribútumokhoz. Ezek a mezők ugyanazokat az értékeket tartalmazhatják, de eltérően jeleníthetők meg. Azonban a viselkedés nem garantált, ha több mező létezik különböző értékekkel a required attribútumhoz.
<form>
<field name="FIELD_NAME"/>
</form>
A field elem a következő attribútumokkal rendelkezhet:
- name
A megjelenítendő mező neve.
- követelmény
Kötelező
- típus
- widget
The widget used to represent the field. The selected widget can change the way the field is rendered and/or the way it can be edited. It refers to a Javascript implementation (an Owl component) registered to the
fieldsregistry.- követelmény
Opcionális
- típus
- id
A csomópont azonosítója. Hasznos, ha ugyanazon mező több előfordulása van a nézetben (lásd: label: mezőcímkék megjelenítése).
- követelmény
Opcionális
- típus
- alapértelmezett
A mező neve
- string
A mező címkéje.
- követelmény
Opcionális
- típus
- alapértelmezett
A modell mezőjének
stringattribútuma
- help
A mező vagy annak címkéje fölé húzva megjelenő eszköztipp.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- options
A mező widgetjének konfigurációs beállításai (beleértve az alapértelmezett widgeteket), mint egy Python kifejezés, amely egy szótárra értékelődik ki.
Kapcsolati mezők esetén a következő opciók érhetők el:
no_create,no_quick_create,no_open, ésno_create_edit.Example
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'FIELD_NAME', 'no_quick_create': True}"/>
- követelmény
Opcionális
- típus
- alapértelmezett
{}
- readonly
A mező módosítható-e a felhasználó által (
False) vagy csak olvasható (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Example
<field name="fname_a" readonly="True"/> <field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- required
A mező üresen hagyható-e (
False) vagy kötelezően kitöltendő (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Example
<field name="fname_a" required="True"/> <field name="fname_b" required="fname_c != 3"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- domain
A szűrők, amelyeket alkalmazni kell a meglévő rekordok kiválasztásakor, mint egy Python kifejezés, amely egy domain-re értékelődik ki.
Example
<field name="fname" domain="[('fname_a', '=', parent.fname_b)]"/>
- követelmény
Opcionális
- típus
- alapértelmezett
[]- hatókör
Relációs mezők
- context
A kontextus, amelyet a lehetséges értékek lekérésekor és rekordok létrehozásakor vagy keresésekor kell használni, mint egy Python kifejezés, amely egy dict-re értékelődik ki.
Example
<field name="fname" context="{ 'TYPE_view_ref': 'ADDON.MODEL_view_TYPE', 'group_by': 'FIELD_NAME', 'default_FIELD_NAME': ANY, 'search_default_FIELD_NAME': True, 'OTHER_BUSINESS_KEY': ANY, }"/>
- követelmény
Opcionális
- típus
- alapértelmezett
{}- hatókör
Relációs mezők
- nolabel
Hogy a mező címkéjét el kell-e rejteni.
- követelmény
Opcionális
- típus
- alapértelmezett
False- hatókör
Mezők, amelyek közvetlen gyermekei egy
groupelemnek
- placeholder
A súgóüzenet, amelyet az üres mezőkön jelenít meg. Komplex űrlapokban helyettesítheti a mezőcímkéket. Azonban nem szabad adatpéldának lennie, mivel a felhasználók összetéveszthetik a helyőrző szöveget a kitöltött mezőkkel.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- mode
The comma-separated list of display modes (view types) to use for the field’s linked records. Allowed modes are:
list,form,kanban, andgraph.- követelmény
Opcionális
- típus
- alapértelmezett
list- hatókör
One2manyésMany2manymezők
- class
Az HTML osztály, amelyet a generált elemre állítunk.
A stílus a Bootstrap keretrendszert és a UI ikonokat használja. Gyakori Odoo osztályok közé tartozik:
oe_inline: megakadályozza a mezők utáni szokásos sortörést, és korlátozza azok kiterjedését;oe_left,oe_right: az elemet a megfelelő irányba úsztatja;oe_read_only,oe_edit_only: csak a megfelelő űrlap módban jeleníti meg az elemet;oe_avatar: for image fields, displays images as an „avatar” (max 90x90 square);oe_stat_button: meghatározza a különleges megjelenítést, amely dinamikusan jelenít meg információkat, miközben kattintható egy művelet célzására.
Example
<field name="fname" class="oe_inline oe_left oe_avatar"/>
Example
<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP"> <div class="o_field_widget o_stat_info"> <span class="o_stat_value"><FIELD/></span> <span class="o_stat_text">TEXT</span> </div> </button>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- filename
A kapcsolódó mező neve, amely a fájl nevét biztosítja.
- követelmény
Opcionális
- típus
- alapértelmezett
''- hatókör
Binarymezők
- password
A mező tárol-e jelszót, és így az adatait nem szabad megjeleníteni.
- követelmény
Opcionális
- típus
- alapértelmezett
False- hatókör
Charmezők
- kanban_view_ref
A mobil környezetben a rekordok kiválasztásakor használandó konkrét Kanban nézet rekord XMLID-je.
- követelmény
Opcionális
- típus
- alapértelmezett
''- hatókör
Relációs mezők
- default_focus
A mező fókuszált-e, amikor a nézet megnyílik. Csak egy mezőre alkalmazható egy nézetben.
- követelmény
Opcionális
- típus
- alapértelmezett
False
Megjegyzés
Relációs mezők csomópontok tartalmazhatnak specifikus alnézeteket.
Example
<field name="children_ids">
<list>
<field name="name"/>
</list>
<form>
<field name="id"/>
<field name="name"/>
</form>
</field>
label: mezőcímkék megjelenítése¶
Amikor egy mező komponens nincs közvetlenül elhelyezve egy csoport belsejében, vagy amikor a nolabel attribútuma be van állítva, a mező címkéje nem jelenik meg automatikusan az értéke mellett. A label komponens a mező címkéjének megjelenítésére szolgáló manuális alternatíva.
<form>
<div class="col col-md-auto">
<label for="FIELD_NAME" string="LABEL"/>
<div>
<field name="FIELD_NAME" class="oe_inline"/>
</div>
</div>
</form>
A label elem a következő attribútumokkal rendelkezhet:
- for
A címkéhez társított mezőre való hivatkozás. Lehet a mező neve vagy az azonosítója (az
idattribútum, amely a field-en van beállítva).Amikor ugyanazon mező több előfordulása van a nézetben, és több
labelkomponens társul ezekhez a mező csomópontokhoz, ezeknek a címkéknek egyediforattribútummal kell rendelkezniük; ebben az esetben a megfelelő mező csomópontokidattribútumára hivatkoznak.- követelmény
Kötelező
- típus
- string
A megjelenítendő címke.
- követelmény
Opcionális
- típus
- alapértelmezett
A mező címkéje, amely a modell meződefiníciójából származik
- class
Az HTML osztály, amelyet a generált elemre állítunk.
A stílus a Bootstrap keretrendszert és a UI ikonokat használja. Gyakori Odoo osztályok közé tartozik:
oe_inline: megakadályozza a mezők utáni szokásos sortörést, és korlátozza azok kiterjedését;oe_left,oe_right: az elemet a megfelelő irányba úsztatja;oe_read_only,oe_edit_only: csak a megfelelő űrlap módban jeleníti meg az elemet;oe_avatar: for image fields, displays images as an „avatar” (max 90x90 square);oe_stat_button: meghatározza a különleges megjelenítést, amely dinamikusan jelenít meg információkat, miközben kattintható egy művelet célzására.
Example
<field name="fname" class="oe_inline oe_left oe_avatar"/>
Example
<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP"> <div class="o_field_widget o_stat_info"> <span class="o_stat_value"><FIELD/></span> <span class="o_stat_text">TEXT</span> </div> </button>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
Csevegő widget¶
A chatter widget a kommunikációs és naplózási eszköz, amely lehetővé teszi, hogy közvetlenül egy rekordból (feladat, rendelés, számla, esemény, jegyzet…) e-mailezzünk kollégáknak és ügyfeleknek.
Egy div elemmel van hozzáadva, amelynek az osztálya oe_chatter, amikor a modell örökli a mail.thread mixint.
Example
<form>
<sheet>
...
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids"/>
<field name="activity_ids"/>
<field name="message_ids" options="OPTIONS"/>
</div>
</form>
Csatolmány előnézet widget¶
A csatolmány előnézet widget egy üres div elemmel van hozzáadva, amelynek az osztálya o_attachment_preview.
Example
<form>
<sheet>
...
</sheet>
<div class="o_attachment_preview"/>
<form>
Strukturális komponensek¶
Structural components provide structure or „visual” features with little logic. They are used as elements or sets of elements in form views.
Űrlap nézetek a következő gyermek strukturális komponenseket fogadják el: group, sheet, notebook, notebook, newline, separator, header, footer, Gombok tárolója, és Cím tároló.
A helyőrzők nagybetűkkel vannak jelölve.
group: oszlop elrendezések meghatározása¶
A group elem az oszlop elrendezések meghatározására szolgál az űrlapokban. Alapértelmezés szerint a csoportok 2 oszlopot határoznak meg, és a csoportok legtöbb közvetlen gyermeke egyetlen oszlopot foglal el.
A field elemek, amelyek közvetlen gyermekei a csoportoknak, alapértelmezés szerint megjelenítenek egy label-t, és a címke, valamint maga a mező colspan értéke 1.
A gyermekelemek vízszintesen helyezkednek el (megpróbálják kitölteni a következő oszlopot, mielőtt sort váltanának).
<form>
<group>
...
</group>
</form>
A group elem a következő attribútumokkal rendelkezhet:
- string
A csoport számára megjelenített cím.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- col
A
grouposzlopainak száma.- követelmény
Opcionális
- típus
egész
- alapértelmezett
2
- colspan
A gyermekelem által elfoglalt oszlopok száma.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
1
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
Lehetséges szerkezet és megjelenítésének reprezentációja
<group>
<field name="a" string="custom"/>
<field name="b"/>
</group>
<group string="title 1">
<group string="title 2">
<field name="c"/>
<field name="d"/>
</group>
<group>
<field name="e"/>
<field name="f"/>
<field name="g"/>
</group>
</group>
<group col="12">
<group colspan="8">
<field name="h"/>
</group>
<group colspan="4">
<field name="i"/>
</group>
</group>
|
sheet: a layout reszponzívvá tétele¶
A sheet elem közvetlen gyermekeként használható a form gyökérelemnek egy keskenyebb és reszponzívabb űrlap elrendezéshez (középre igazított oldal, margó…). Általában group elemeket tartalmaz.
<form>
<sheet>
...
</sheet>
</form>
notebook és page: lapfüles szakaszok hozzáadása¶
A notebook elem egy lapfüles szakaszt határoz meg. Minden lapot egy page gyerek elem határoz meg.
A notebook elemet nem szabad group elemekbe helyezni.
<form>
<notebook>
<page string="LABEL">
...
</page>
</notebook>
</form>
A page elem a következő attribútumokkal rendelkezhet:
- string
A lapfül címe.
- követelmény
Opcionális
- típus
szöveg- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
Lehetséges szerkezet és megjelenítésének reprezentációja
<form>
<notebook>
<page string="Page1">
...
</page>
<page string="Page2">
...
</page>
</notebook>
</form>
|
newline: új csoport sorok indítása¶
A newline elemet a group elemekben használják, hogy a jelenlegi sort korán lezárják, és azonnal egy új sorra váltsanak, anélkül, hogy előtte kitöltenék a fennmaradó oszlopot.
<form>
<group>
...
<newline/>
...
</group>
</form>
Lehetséges szerkezet és megjelenítésének reprezentációja
<form>
<group string="Title 1">
<group string="Title 1.1">...</group>
<newline/>
<group string="Title 1.2">...</group>
<group string="Title 1.3">...</group>
</group>
</form>
|
separator: vízszintes térköz hozzáadása¶
A separator elem függőleges térközt ad az elemek között egy csoporton belül.
<form>
...
<separator/>
...
</form>
A <separator> elem a következő attribútumokkal rendelkezhet:
- string
A cím mint szakaszcím.
- követelmény
Opcionális
- típus
szöveg- alapértelmezett
''
Lehetséges szerkezet és megjelenítésének reprezentációja
<form>
<group>
<FIELD/>
<separator string="Title 1"/>
<FIELD/>
<group>
<FIELD/>
<separator string="Title 2"/>
<FIELD/>
</group>
<group>
<FIELD/>
<FIELD/>
</group>
</group>
</form>
|
Javaslat
A separator elem használható vizuális elválasztás elérésére az azonos belső group elem elemei között, miközben azok vízszintesen igazodnak.
Cím tároló¶
Egy cím mező elem konténer létrehozható egy div elemmel, amelynek osztálya oe_title.
<form>
<sheet>
<div class="oe_title">
<h1><FIELD/></h1>
</div>
</sheet>
<form>
Beállítások¶
A beállítások nézetek a form nézet testreszabásai. Ezeket a beállítások központi helyen történő megjelenítésére használják. Abban különböznek az általános form nézetektől, hogy rendelkeznek keresősávval és oldalsávval.
Example
<app string="CRM" name="crm">
<setting type="header" string="Foo">
<field name="foo" title="Foo?."/>
<button name="nameAction" type="object" string="Button"/>
</setting>
<block title="Title of group Bar">
<setting help="this is bar" documentation="/applications/technical/web/settings/this_is_a_test.html">
<field name="bar"/>
</setting>
<setting string="This is Big BAR" company_specific="1">
<field name="bar"/>
</setting>
</block>
<block title="Title of group Foo">
<setting string="Personalize setting" help="this is full personalize setting">
<div>This is a different setting</div>
</setting>
</block>
</app>
Komponensek¶
A beállítások nézetek elfogadják a mező, címke és gomb elemeket a form nézetekből, valamint három további gyermekelemet: app, block, és setting.
A helyőrzők nagybetűkkel vannak jelölve.
app: az alkalmazás deklarálása¶
Az app elemet az alkalmazás deklarálására használják a beállítások nézetben. Létrehoz egy bejegyzést az alkalmazás logójával a nézet oldalsávján. Kereséskor elválasztóként is működik.
<form>
<app string="NAME" name="TECHNICAL_NAME">
...
</app>
</form>
Az app elem a következő attribútumokkal rendelkezhet:
- string
Az alkalmazás neve.
- követelmény
Kötelező
- típus
- name
Az alkalmazás technikai neve (a modul neve).
- követelmény
Kötelező
- típus
- logo
A logó relatív útvonala.
- követelmény
Opcionális
- típus
- alapértelmezett
Egy útvonal, amelyet a
nameattribútummal számítottunk ki:/name/static/description/icon.png
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
block: egy beállításcsoport deklarálása¶
A block elem egy beállításcsoport deklarálására szolgál. Ez a csoport rendelkezhet címmel és leírással.
<form>
<app string="NAME" name="TECHNICAL_NAME">
...
<block title="TITLE">
...
</block>
...
</app>
</form>
A block elem a következő attribútumokkal rendelkezhet:
- title
A beállításcsoport címe. Értékére lehet keresni.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- help
A beállításcsoport leírása. Értékére lehet keresni.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
setting: a beállítás deklarálása¶
A setting elem magának a beállításnak a deklarálására szolgál.
Az első field elem a beállításban fő mezőként van használva. Ha logikai mező, akkor a bal panelen helyezkedik el, egyébként a jobb panel tetején. A mező a beállítás címkéjének létrehozására is szolgál, ha nincs meghatározva string attribútum.
A setting elem további elemeket is tartalmazhat (pl. HTML). Ezek az elemek mind a jobb panelen jelennek meg.
<form>
<app string="NAME" name="TECHNICAL_NAME">
<block title="TITLE">
...
<setting string="SETTING_NAME">
...
<field name="FIELD_NAME"/>
...
</setting>
...
</block>
</app>
</form>
A <setting> elem a következő attribútumokkal rendelkezhet:
- type
By default, a setting is visually separated on two panels (left and right), and is used to edit a given field. By defining
type="header", a special kind of setting is rendered instead. This setting is used to modify the scope of the other settings. For example, on the Website application, this setting is used to indicate to which website the other settings apply. The header setting is visually represented as a banner on top of the screen.- követelmény
Opcionális
- típus
- alapértelmezett
''
- string
A beállítás címkéjeként használt szöveg.
- követelmény
Opcionális
- típus
- alapértelmezett
Az első mező címkéje
- title
A tooltipként használt szöveg.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- help
A beállítás leírása. Ez a szöveg közvetlenül a beállítás címkéje alatt jelenik meg (a
text-mutedosztállyal).- követelmény
Opcionális
- típus
- alapértelmezett
''
- company_dependent
A beállítás vállalatspecifikus-e. Ha be van állítva, egy ikon jelenik meg a beállítás címkéje mellett.
Csak a
'1'értéket fogadja el.- követelmény
Opcionális
- típus
- alapértelmezett
''
- documentation
A beállítás dokumentációjához vezető path. Ha be van állítva, egy kattintható ikon jelenik meg a beállítás címkéje mellett. Az útvonal lehet abszolút vagy relative path. Az utóbbi esetben az
https://www.odoo.com/documentation/<version>-hez viszonyítva értendő.- követelmény
Opcionális
- típus
útvonal_- alapértelmezett
''
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
Lista¶
The root element of list views is list (the previous name was tree).
Lehetséges szerkezet és megjelenítésének reprezentációja
<list>
...
</list>
|
Gyökér attribútumok¶
Optional attributes can be added to the root element list to customize the view.
- string
A nézet címe. Csak akkor jelenik meg, ha olyan műveletet nyit meg, amelynek nincs neve, és amelynek célja
new(párbeszédablak megnyitása).- követelmény
Opcionális
- típus
- alapértelmezett
''
- create
Rekord létrehozásának letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- edit
Rekord szerkesztésének letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- delete
Rekord törlésének letiltása/engedélyezése a nézeten a Action legördülő menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- import
A rekord importálásának letiltása/engedélyezése az adatokból a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- export_xlsx
A rekord exportálásának letiltása/engedélyezése az adatokba a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- editable
A nézet rekordjainak helyben szerkeszthetővé tétele, és új rekordok létrehozásának engedélyezése a lista egy sorából. Két különböző értéke lehet:
- top
Új rekordok a lista tetejéről jönnek létre.
- bottom
Új rekordok a lista aljáról jönnek létre.
Az inline form nézet architektúrája a lista nézetből származik. A legtöbb attribútum, amely érvényes egy űrlap nézet mezőire és gombjaira, elfogadott a lista nézetekben is, bár lehet, hogy nincs jelentésük, ha a lista nézet nem szerkeszthető.
Fontos
Ez a viselkedés le van tiltva, ha az
editattribútumFalseértékre van állítva.- követelmény
Opcionális
- típus
- alapértelmezett
''
- multi_edit
Aktiválja a többszörös szerkesztési funkciót, amely lehetővé teszi egy mező frissítését ugyanarra az értékre több rekord esetén egyszerre.
Csak a
'1'értéket fogadja el.- követelmény
Opcionális
- típus
- alapértelmezett
''
- open_form_view
Egy gomb megjelenítése minden sor végén, amely megnyitja a rekordot egy űrlap nézetben.
Nincs hatása, ha a nézet nem szerkeszthető.
- követelmény
Opcionális
- típus
- alapértelmezett
False
- default_group_by
Annak a mezőnek a neve, amely alapján a rekordokat alapértelmezés szerint csoportosítani kell, ha nincs csoportosítás megadva az akció vagy az aktuális search által.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- default_order
Egy vesszővel elválasztott mezőnevek listája, amely felülírja a modellen a
_orderattribútum által meghatározott rendezést.Egy mező rendezési sorrendjének megfordításához utótagként adja hozzá a
desc-t, szóközzel elválasztva.Example
<list default_order="sequence,name desc"> ... </list>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- decoration-<style>
Az a stílus, amelyet alkalmazni kell az egyező rekordok soraira, mint egy Python kifejezés, amely logikai értékre értékelődik ki.
<style>-t ki kell cserélni az alábbiak egyikére:bf(félkövér),it(dőlt),info,warning,danger,muted,primary, éssuccess.Example
<list decoration-danger="field_qty > field_limit"> ... </list>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- limit
Az oldal alapértelmezett mérete. Szigorúan pozitívnak kell lennie.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
80lista nézetekhez,40X2many listákhoz űrlap nézetekben
- groups_limit
Az alapértelmezett csoportok száma egy oldalon, amikor a lista nézet csoportosítva van. Szigorúan pozitívnak kell lennie.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
80lista nézetekhez,40X2many listákhoz űrlap nézetekben
- expand
Legyen-e az első szintű csoportok alapértelmezetten megnyitva, amikor a lista nézet csoportosítva van.
Figyelem
Lehet lassú, a csoportok számától függően.
- követelmény
Opcionális
- típus
- alapértelmezett
False
- sample
Legyen-e a nézet feltöltve egy mintarekord készlettel, ha a jelenlegi modellhez nem található rekord.
Ezek a hamis rekordok bizonyos mezőnevek/modellek esetén heuristikákat alkalmaznak. Például a
display_namemező ares.usersmodellen mintaszemélyek neveivel lesz feltöltve, míg azemailmező a[email protected]formátumban lesz.A felhasználó nem tud ezekkel az adatokkal interakcióba lépni, és amint egy művelet végrehajtásra kerül (rekord létrehozása, oszlop hozzáadása, stb.), el lesznek vetve.
- követelmény
Opcionális
- típus
- alapértelmezett
False
Komponensek¶
A lista nézetek a következő gyermek elemeket fogadják el: field, button, groupby, header, control, and create.
A helyőrzők nagybetűkkel vannak jelölve.
field: mezőértékek megjelenítése¶
A field elem megjelenít (és esetleg szerkesztést is engedélyez) egyetlen mezőt az összes aktuális rekordból oszlopként.
Ugyanazon mező többszöri használata egy lista nézetben nem támogatott.
<list>
<field name="FIELD_NAME"/>
</list>
A field elem a következő attribútumokkal rendelkezhet:
- name
A megjelenítendő mező neve.
- követelmény
Kötelező
- típus
- widget
The widget used to represent the field. The selected widget can change the way the field is rendered and/or the way it can be edited. It refers to a Javascript implementation (an Owl component) registered to the
fieldsregistry.- követelmény
Opcionális
- típus
- string
A mező címkéje.
- követelmény
Opcionális
- típus
- alapértelmezett
A modell mezőjének
stringattribútuma
- optional
Tegye a mező láthatóságát opcionálissá. A mező oszlopa elrejthető vagy megjeleníthető a nézet fejlécén található gomb segítségével.
Két különböző értéke lehet:
- show
A mező alapértelmezés szerint látható.
- hide
A mező alapértelmezés szerint rejtett.
Example
<field name="fname_a" optional="show"/> <field name="fname_b" optional="hide"/>
- követelmény
Opcionális
- típus
- readonly
A mező módosítható-e a felhasználó által (
False) vagy csak olvasható (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Example
<field name="fname_a" readonly="True"/> <field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- required
A mező üresen hagyható-e (
False) vagy kötelezően kitöltendő (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Example
<field name="fname_a" required="True"/> <field name="fname_b" required="fname_c != 3"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- column_invisible
Azt határozza meg, hogy az oszlop látható (
False) vagy rejtett (True), mint egy Python kifejezés, amely logikai értékre értékelődik ki.Ellentétben az
invisible-lel, az egész oszlopra hatással van, és a részfa értékek nélkül kerül kiértékelésre.Example
<field name="product_is_late" column_invisible="parent.has_late_products == False"/> <button type="object" name="action_confirm" column_invisible="context.get('hide_confirm')"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- decoration-<style>
Az a stílus, amelyet az egyező rekordok mezőjére kell alkalmazni, mint egy Python kifejezés, amely logikai értékre értékelődik ki.
<style>-t ki kell cserélni az alábbiak egyikére:bf(félkövér),it(dőlt),info,warning,danger,muted,primary, éssuccess.Example
<field name="name" decoration-bf="1"/> <field name="quantity" decoration-info="state == 'draft'"/>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- sum, avg
The aggregate to display at the bottom of the column. The aggregation is computed on only records that are currently displayed. The aggregation operation must match the corresponding field’s
aggregator.Example
<field name="sent" sum="Total" /> <field name="clicks_ratio" avg="Average"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- width
The list view always tries to optimize the available space among columns. For some field types, this is done by enforcing a width, depending on the field type. For instance, we know exactly the number of pixels required to display a date, so we can ensure that a column for a date field doesn’t take more space than what is strictly necessary, thus leaving the extra space for the other columns. However, the framework can’t guess the adequate width for every field types. For instance, char fields can be used to encode large values, or 3-letter country codes. In the latter case, one can set the width directly in the arch (e.g.
width="40px"). It represents the width (always in pixels) required to render the values inside the cells. The width of the column will then be the sum of the given value and the cells» left and right paddings.- követelmény
Opcionális
- típus
- alapértelmezett
''
- nolabel
Azt határozza meg, hogy a mező oszlopfejlécének üresen kell-e maradnia. Ha be van állítva, az oszlop nem lesz rendezhető.
Csak az
'1'értéket fogadja el.- követelmény
Opcionális
- típus
- alapértelmezett
''
Megjegyzés
Amikor egy lista nézet csoportosítva van, a numerikus mezők összesítve jelennek meg minden csoportnál. Továbbá, ha egy csoportban túl sok rekord van, egy lapozó jelenik meg a csoport sorának jobb oldalán. Emiatt rossz gyakorlat, ha egy numerikus mező az utolsó oszlopban van, amikor a lista nézet olyan helyzetben van, hogy csoportosítható. Azonban ez nem jelent problémát az X2many mezők esetében egy űrlap nézetben, mivel ezek nem csoportosíthatók.
Lehetséges szerkezet és megjelenítésének reprezentációja
<list>
<field name="name" string="My Custom Name"/>
<field name="amount" sum="Total"/>
<field name="currency_id"/>
<field name="tax_id"/>
</list>
|
groupby: csoportfejlécek meghatározása¶
A groupby elem a csoportfejlécek meghatározására szolgál button elemekkel, amikor rekordokat csoportosítanak Many2one mezőkön. Elfogad field elemeket is, amelyek módosítókhoz használhatók. Ezek a mezők így a Many2one társmodellhez tartoznak. Ezek az extra mezők kötegelt módon kerülnek lekérésre.
<list>
...
<groupby name="FIELD_NAME">
<BUTTONS/>
<FIELDS/>
</groupby>
</list>
A groupby elem a következő attribútumokkal rendelkezhet:
- name
A
Many2onemező neve, amelyet fejlécnek használnak.A special button element with
type="edit"can be defined to open the Many2one field’s form view.- követelmény
Kötelező
- típus
Lehetséges szerkezet és megjelenítésének reprezentációja
<list>
<field name="name"/>
<field name="amount"/>
<field name="currency"/>
<field name="tax_id"/>
<groupby name="partner_id">
<button type="edit" name="edit" icon="fa-edit" title="Edit"/>
<field name="email"/>
<button type="object" name="my_method" string="Button1" invisible="email == '[email protected]'"/>
</groupby>
</list>
|
Megjegyzés
A groupby elemben lévő mezők csak az érték lekérésére és tárolására szolgálnak, de soha nem jelennek meg.
Keresés¶
A keresési nézetek különböznek más nézettípusoktól abban, hogy nem tartalom megjelenítésére szolgálnak. Bár egy adott modellre vonatkoznak, egy másik nézet tartalmának szűrésére használják őket (általában összesített nézetek; pl. Lista és Grafikon).
A keresési nézetek gyökéreleme a search.
Nem vesz fel attribútumokat.
Lehetséges szerkezet és megjelenítésének reprezentációja
<search>
...
</search>
|
Komponensek¶
A keresési nézetek a következő gyermekelemeket fogadják el: field, filter, separator, group, és searchpanel.
A helyőrzők nagybetűkkel vannak jelölve.
field: szűrés mezőértékek alapján¶
A field elem felhasználó által megadott értékekkel határoz meg domaineket vagy kontextusokat. Amikor keresési domainek generálódnak, a mező domainek egymással és a szűrőkkel ÉS operátorral kapcsolódnak össze.
<search>
<field name="FIELD_NAME"/>
</search>
A field elem a következő attribútumokkal rendelkezhet:
- name
A mező neve, amelyen szűrni kell.
- követelmény
Kötelező
- típus
- string
A mező címkéje.
- követelmény
Opcionális
- típus
- alapértelmezett
A modell mezőjének
stringattribútuma
- operator
Alapértelmezés szerint a mezők a következő formájú domaineket generálnak:
[(name, operator, value)], aholnamea mező neve, ésvaluea felhasználó által megadott érték, amely esetleg szűrt vagy átalakított (pl. a felhasználótól elvárt, hogy egy kiválasztási mező értékének címkéjét adja meg, nem magát az értéket).Az
operatorattribútum lehetővé teszi az alapértelmezett operátor felülírását, amely a mező típusától függ (pl.=a float mezőknél, deilikea char mezőknél éschild_ofa many2one mezőknél).- követelmény
Opcionális
- típus
- alapértelmezett
=
- filter_domain
A mező keresési domainjeként használandó domain, mint egy Python kifejezés, amely egy domain-re értékelődik ki.
Használhatja a
selfváltozót a megadott érték beillesztésére az egyedi tartományba. Ez jelentősen rugalmasabb tartományok létrehozását teszi lehetővé, mint csak azoperatorattribútummal (pl. egyszerre több mezőn való keresés).Ha mind az
operator, mind afilter_domainattribútum meg van adva, afilter_domainélvez elsőbbséget.- követelmény
Opcionális
- típus
- alapértelmezett
[]
- context
A kontextus, amelyet a nézet kontextusába kell egyesíteni, amelyre a keresési nézet irányul, mint egy Python kifejezés, amely egy szótárra értékelődik ki.
Tartalmazhat felhasználó által megadott értékeket, amelyek a
selfváltozó alatt érhetők el.- követelmény
Opcionális
- típus
- alapértelmezett
{}
- domain
A szűrők, amelyeket alkalmazni kell az automatikus kiegészítést lehetővé tevő mezők kiegészítési eredményeire (pl.
Many2one).- követelmény
Opcionális
- típus
- alapértelmezett
[]
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
Lehetséges szerkezet és megjelenítésének reprezentációja
<search>
<field name="name" string="My Custom Name"/>
<field name="amount"/>
<field name="currency_id"/>
<field name="ref" filter_domain="[('name', 'like', self)]"/>
</search>
|
filter: előre definiált szűrők létrehozása¶
A filter elem előre definiált szűrők létrehozására szolgál, amelyek a keresési nézetben kapcsolhatók. Lehetővé teszi adatok hozzáadását a keresési kontextushoz a keresési/szűrési adatok nézetéhez átadott kontextus, vagy új szakaszok hozzáfűzését a keresési szűrőhöz.
<search>
<filter string="LABEL" domain="DOMAIN"/>
</search>
A filter elem a következő attribútumokkal rendelkezhet:
- name
A szűrő technikai neve. Használható arra, hogy alapértelmezés szerint engedélyezze vagy mint egy öröklési horog.
- követelmény
Kötelező
- típus
- string
A szűrő címkéje.
- követelmény
Kötelező
- típus
- help
A szűrő fölé húzva az egérmutatót megjelenő eszköztipp.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- domain
A domain, amelyet hozzá kell adni az akció domainjéhez a keresési domain részeként.
- követelmény
Opcionális
- típus
- alapértelmezett
[]
- date
A
datevagydatetimemező neve, amelyre szűrni kell.Ha használják, ez az attribútum egy szűrőkészletet hoz létre, amely elérhető a Szűrők menü al-menüjében. Az elérhető szűrők időfüggőek, de nem dinamikusak abban az értelemben, hogy domainjeiket a vezérlőpanel inicializálásakor értékelik ki.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date"/>
By default, these filters contain a dropdown with different sub-filters that allow you to filter based on months, quarters and years. Additionally, you can create custom sub-filters that allow filtering using domains. These custom filters must have the following attributes:
name,stringanddomain.Example
<filter string="Creation Date" name="filter_create_date" date="create_date"> <filter name="create_date_last_30_days" string="Last 30 Days" domain="[('create_date', '>', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/> </filter>
Note that all custom filters defined this way are mutually exclusive with each other and with the other sub-filters.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- start_month
The earliest month that will show up in the dropdown of a date filter, as an offset relative to the current month.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" start_month="-3"/>
If the current month is February, the earliest month selectable in the dropdown will be November.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
-2- hatókör
Nem üres
dateattribútummal rendelkező szűrők
- end_month
The latest month that will show up in the dropdown of a date filter, as an offset relative to the current month.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" end_month="2"/>
If the current month is February, the latest month selectable in the dropdown will be March.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
0- hatókör
Nem üres
dateattribútummal rendelkező szűrők
- start_year
The earliest year that will show up in the dropdown of a date filter, as an offset relative to the current year.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" start_year="-3"/>
If the current year is 2024, the earliest year selectable in the dropdown will be 2021.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
-2- hatókör
Nem üres
dateattribútummal rendelkező szűrők
- end_year
The latest year that will show up in the dropdown of a date filter, as an offset relative to the current year.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" end_year="2"/>
If the current year is 2024, the latest year selectable in the dropdown will be 2025.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
0- hatókör
Nem üres
dateattribútummal rendelkező szűrők
- default_period
The default period of the time-based filter (with a
dateattribute). It must be one of, or a comma-separated list of valid filter ids.Valid filter ids include the following:
first_quarter,second_quarter,third_quarterandfourth_quarter.One of
month,month-xandmonth+x, wherexis a non-zero integer value betweenstart_monthandend_month.One of
year,year-xandyear+x, wherexis a non-zero integer value betweenstart_yearandend_year.The
nameof any custom filter defined within the filter, prepended withcustom_.
A szűrőnek az alapértelmezett szűrőkészletben kell lennie, amely a nézet inicializálásakor aktiválódik.
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" default_period="year,month-1"/>
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" default_period="custom_create_date_last_30_days"> <filter name="create_date_last_30_days" string="Last 30 Days" domain="[('create_date', '>', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/> </filter>
- követelmény
Opcionális
- típus
- alapértelmezett
month, or the closest value to the current month if unavailable- hatókör
Nem üres
dateattribútummal rendelkező szűrők
- invisible
Az elem látható-e (
False) vagy rejtett (True), mint egy Python kifejezés, amely egy logikai értékre értékelődik ki.Megjegyzés
A
invisibleattribútumnak két felhasználási módja van:Használhatóság: a nézet túlterhelésének elkerülése és az olvashatóság megkönnyítése érdekében, a tartalomtól függően.
Technikai: egy mezőnek jelen kell lennie (az invisible elegendő) a nézetben, hogy egy Python kifejezésben használható legyen.
Example
<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/> <group invisible="fname_c != 4"> <field name="fname_c"/> <field name="fname_d"/> <group>
- követelmény
Opcionális
- típus
- alapértelmezett
False
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- context
A kontextus, amely az akció domainjébe kerül beolvasztásra a keresési domain generálásához
A kontextus kulcs
group_by, amely egy mezővel van beállítva értékként, használható egy csoport meghatározására, amely elérhető a Csoportosítás menüben. Ha a meződatevagydatetimetípusú, a szűrő egy al-menüt generál a Csoportosítás menüben a következő intervallum opciókkal: Év, Negyedév, Hónap, Hét, és Nap. Ha a szűrő az alapértelmezett szűrőkészletben van, amely a nézet inicializálásakor aktiválódik, a rekordok alapértelmezés szerint hónap szerint vannak csoportosítva. Ez megváltoztatható adate_field:intervalszintaxis használatával.Example
<filter string="Category" name="groupby_category" context="{'group_by': 'category_id'}"/> <filter string="Creation Date" name="groupby_create_date" context="{'group_by': 'create_date:week'}"/>
Megjegyzés
A
read_groupseredményei, amelyek egy mezőn alapuló csoportosítást tartalmaznak, befolyásolhatók agroup_expandattribútum által, lehetővé téve az üres csoportok megjelenítését, amikor szükséges. További információért kérjük, tekintse meg aField.- követelmény
Opcionális
- típus
- alapértelmezett
{}
Figyelem
A szűrők sorozatai (anélkül, hogy nem szűrő elemek választanák el őket) befogadóan összetettként kezelendők: OR-ral lesznek összekomponálva a szokásos AND helyett.
Example
<filter domain="[('state', '=', 'draft')]"/>
<filter domain="[('state', '=', 'done')]"/>
Azok a rekordok jelennek meg, amelyek state mezője draft vagy done.
Example
<filter domain="[('state', '=', 'draft')]"/>
<separator/>
<filter domain="[('delay', '<', 15)]"/>
Azok a rekordok jelennek meg, amelyek state mezője draft és delay mezője 15 alatti.
Lehetséges szerkezet és megjelenítésének reprezentációja
<search>
<filter string="My Custom Name" domain="[('name', 'ilike', 'AAA')]"/>
<filter string="My orders" domain="[('user_id', '=', uid)]"/>
<filter string="Category" context="{'group_by': 'category_id'}"/>
</search>
|
separator: szűrőcsoportok elválasztása¶
A separator elem a filters csoportok elválasztására szolgál egyszerű keresési nézetekben. Összetettebb keresési nézetek esetén a group elem ajánlott.
<search>
<FILTERS/>
<separator/>
<FILTERS/>
</search>
A separator elem nem vesz fel attribútumokat.
group: szűrőcsoportok elválasztása¶
A group elem a filters csoportok elválasztására szolgál zsúfolt keresési nézetekben. Egyszerűbb keresési nézetekben helyettesíthető a separator elemmel.
<search>
<group>
<FILTERS/>
</group>
</search>
A group elem nem vesz fel attribútumokat.
searchpanel: keresőpanelek megjelenítése¶
A searchpanel elem egy keresőpanelt jelenít meg a több rekordos nézetek bal oldalán. Lehetővé teszi az adatok gyors szűrését a megadott mezők alapján.
<search>
<searchpanel>
<FIELDS/>
</searchpanel>
</search>
A searchpanel elem csak field gyermekelemeket fogad el.
A field elem, amelyet a searchpanel elem gyermekelemeként használnak, a következő attribútumokkal rendelkezhet:
- name
A mező neve, amelyen szűrni kell.
- követelmény
Kötelező
- típus
- string
A mező címkéje.
- követelmény
Opcionális
- típus
- alapértelmezett
A modell mezőjének
stringattribútuma
- select
A mező viselkedése és megjelenítése. Két különböző értéket vehet fel:
- one
Legfeljebb egy érték választható ki. Támogatott mezőtípusok:
many2oneésselection.
- multi
Több érték is kiválasztható. Támogatott mezőtípusok:
many2one,many2manyésselection.
- követelmény
Opcionális
- típus
- alapértelmezett
egy
- groups
A felhasználói csoportok vesszővel elválasztott listája, akik számára az elem megjelenik. Azok a felhasználók, akik nem tartoznak legalább egy ilyen csoportba, nem láthatják az elemet. A csoportok elé negatív
!operátor is tehető, hogy kizárjuk őket.Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- icon
A mező ikonja.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- color
A mező színe.
- követelmény
Opcionális
- típus
- alapértelmezett
''
Amikor a field elem select=one attribútummal van beállítva, a következő további attribútumokkal rendelkezhet:
- hierarchize
Hogy a gyermek kategóriák megjelenjenek-e a szülő kategóriájuk alatt, vagy ugyanazon a hierarchia szinten.
- követelmény
Opcionális
- típus
- alapértelmezett
True- hatókör
Many2onemezők
Amikor a field elem select=multi attribútummal van beállítva, a következő további attribútumokkal rendelkezhet:
- enable_counters
Hogy a rekord számlálók kiszámításra és megjelenítésre kerüljenek-e, ha nem nulla.
Javaslat
Ez az attribútum azért létezik, hogy elkerülje a teljesítmény befolyásolását. Egy másik módja a teljesítményproblémák kezelésének a
search_panel_select_rangeéssearch_panel_select_multi_rangemetódusok felülírása.- követelmény
Opcionális
- típus
- alapértelmezett
False
- expand
Hogy a kategóriák és szűrők, amelyekhez nem tartoznak rekordok, megjelenjenek-e.
- követelmény
Opcionális
- típus
- alapértelmezett
False
- limit
A mezőhöz lekérendő értékek maximális száma. Ha a limit elérve, nem jelennek meg értékek a keresőpanelen, és helyette egy hibaüzenet jelenik meg. Ha 0-ra van állítva, minden érték lekérdezésre kerül.
- követelmény
Opcionális
- típus
egész
- alapértelmezett
200
- domain
A feltételek, amelyeket a rekordoknak teljesíteniük kell.
Example
<searchpanel> <field name="department_id"/> <field name="manager_id" select="multi" domain="[('department_id', '=', department_id)]"/> </searchpanel>
- követelmény
Opcionális
- típus
- alapértelmezett
[]
- groupby
Annak a mezőnévnek a neve, amely alapján az értékeket csoportosítani kell.
- követelmény
Opcionális
- típus
- alapértelmezett
''- hatókör
Many2oneésMany2manymezők
Keresési alapértelmezések¶
A keresési mezők és szűrők az akció context-jén keresztül konfigurálhatók search_default_name kulcsok használatával. Mezők esetén az értéknek a mezőhöz beállítandó értéknek kell lennie. Szűrők esetén logikai értéknek vagy számnak kell lennie.
Example
A foo, egy mező, és bar, egy szűrő esetén a következő akció kontextus foo-t keres acro-n és alapértelmezetten engedélyezi bar-t:
{
'search_default_foo': 'acro',
'search_default_bar': 1
}
Egy numerikus érték (1 és 99 között) használható az alapértelmezett groupby szűrők sorrendjének meghatározására.
Example
A foo és bar, két groupby szűrő esetén a következő akció kontextus először engedélyezi bar-t, majd foo-t.
{
'search_default_foo': 2,
'search_default_bar': 1
}
Kanban¶
Kanban views are used as a kanban board visualisation: they display records as „cards”, halfway between a list and a form view.
A rekordok oszlopokba csoportosíthatók a munkafolyamat vizualizációjához vagy manipulációjához (pl. feladatok vagy munkafolyamat-kezelés), vagy csoportosítatlanul (egyszerűen a rekordok megjelenítésére használva).
A Kanban nézetek gyökéreleme a kanban.
Lehetséges szerkezet és megjelenítésének reprezentációja
<kanban>
...
</kanban>
|
Megjegyzés
A Kanban nézetek legfeljebb tíz oszlopot töltenek be és jelenítenek meg. Az ezt követő oszlopok zárva vannak, de a felhasználó által megnyithatók.
Gyökér attribútumok¶
Opcionális attribútumok adhatók a kanban gyökérelemhez a nézet testreszabásához.
- string
A nézet címe. Csak akkor jelenik meg, ha olyan műveletet nyit meg, amelynek nincs neve, és amelynek célja
new(párbeszédablak megnyitása).- követelmény
Opcionális
- típus
- alapértelmezett
''
- create
Rekord létrehozásának letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- edit
Rekord szerkesztésének letiltása/engedélyezése a nézeten.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- delete
Rekord törlésének letiltása/engedélyezése a nézeten a Action legördülő menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- default_group_by
Annak a mezőnek a neve, amely alapján a rekordokat alapértelmezés szerint csoportosítani kell, ha nincs csoportosítás megadva az akció vagy az aktuális search által.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- default_order
Egy vesszővel elválasztott mezőnevek listája, amely felülírja a modellen a
_orderattribútum által meghatározott rendezést.Egy mező rendezési sorrendjének megfordításához utótagként adja hozzá a
desc-t, szóközzel elválasztva.Example
<list default_order="sequence,name desc"> ... </list>
- követelmény
Opcionális
- típus
- alapértelmezett
''
- class
Adjon hozzá HTML osztályokat a nézet gyökér HTML eleméhez.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- examples
The key in the
KanbanExamplesRegistryof the examples that can be browsed when creating a new column in the grouped kanban view.- követelmény
Opcionális
- típus
- alapértelmezett
''
- group_create
Látható-e az Új oszlop hozzáadása sáv.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- group_delete
Törölhetők-e az oszlopok a fogaskerék menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- group_edit
Szerkeszthetők-e az oszlopok a fogaskerék menün keresztül.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- groups_draggable
Átrendezhetők-e az oszlopok.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- records_draggable
Húzhatók-e a rekordok, amikor a kanban nézet csoportosítva van.
- követelmény
Opcionális
- típus
- alapértelmezett
True
- archivable
Annak meghatározása, hogy egy oszlophoz tartozó rekordok archiválhatók és visszaállíthatók-e, amikor az
activemező meg van határozva a modellen.- követelmény
Opcionális
- típus
- alapértelmezett
True
- quick_create
Annak meghatározása, hogy lehetséges-e rekordokat létrehozni anélkül, hogy átváltanánk az űrlap nézetre.
- követelmény
Opcionális
- típus
- alapértelmezett
True, ha a kanban nézetet many2one, selection, char vagy boolean mezők szerint csoportosítják, egyébkéntFalse
- quick_create_view
A form nézet hivatkozása, amely megnyílik, amikor a rekordok gyors létrehozását használjuk.
- követelmény
Opcionális
- típus
- alapértelmezett
''
- on_create
Az egyéni művelet, amelyet a Create gombra kattintva hívunk meg.
Ha
'quick_create'értékre van állítva, akkor a rekordok gyors létrehozását használjuk. Ha a gyors létrehozás le van tiltva, a szokásos létrehozási művelet kerül meghívásra.- követelmény
Opcionális
- típus
- alapértelmezett
''
- can_open
By default, clicking on a kanban card opens the corresponding record in a form view. This behavior can be disabled by setting the attribute
can_opentoFalse.- követelmény
Opcionális
- típus
- alapértelmezett
True
- highlight_color
Name of the integer field used to color the left border of the kanban cards.
- követelmény
Opcionális
- típus
- sample
Legyen-e a nézet feltöltve egy mintarekord készlettel, ha a jelenlegi modellhez nem található rekord.
Ezek a hamis rekordok bizonyos mezőnevek/modellek esetén heuristikákat alkalmaznak. Például a
display_namemező ares.usersmodellen mintaszemélyek neveivel lesz feltöltve, míg azemailmező a[email protected]formátumban lesz.A felhasználó nem tud ezekkel az adatokkal interakcióba lépni, és amint egy művelet végrehajtásra kerül (rekord létrehozása, oszlop hozzáadása, stb.), el lesznek vetve.
- követelmény
Opcionális
- típus
- alapértelmezett
False
Komponensek¶
Kanban views accept the following children elements: templates, field, header, progressbar.
templates: kártyák struktúrájának meghatározása¶
The templates element is used to define the QWeb templates that structure
the kanban cards.
The definition of a card’s structure can be split into multiple templates for clarity, but at least
one root card template must be defined.
An additional template can be defined: menu. If defined, it is rendered inside a dropdown
that can be toggled with a vertical ellipsis (⋮) on the top right of the card.
The templates are written in JavaScript QWeb.
<kanban>
<templates>
<t t-name="card">
<field name="name"/>
</t>
</templates>
</kanban>
Figyelem
These are QWeb templates, not Owl templates, meaning that
directives like t-on-click aren’t available.
Mezők¶
Inside those templates, the field element allows to render a field. It can have the following
attributes:
- name
A megjelenítendő mező neve.
- követelmény
Kötelező
- típus
- widget
The widget used to represent the field. The selected widget can change the way the field is rendered and/or the way it can be edited. It refers to a Javascript implementation (an Owl component) registered to the
fieldsregistry.- követelmény
Opcionális
- típus
By default, field nodes are replaced by a span containing their formatted value, unless the
widget attribute is specified, in which case their rendering and behavior depends on the
corresponding widget. The widget attribute can have different values including:
- handle
Allows reordering records with a drag and drop, using the corresponding field as order.
- kanban_color_picker
Allows editing a color (integer) field. Combined with the root attribute
highlight_color, allows editing the color of the cards.
See the Field section to discover various widgets and their options.
Rendering Context¶
Kanban templates being rendered with the QWeb engine, they have a rendering context, a set of variables available in the templates, containing useful information and tools. Here’re the available variables:
- record
An object with all the fields defined in the view. Each field has two attributes:
valueandraw_value. The former is formatted according to current user parameters, while the latter is the raw value (e.g. theidfor a many2one field). This object is useful for instance, for using field values insidet-ifconditions. For display purposes, we recommend using the<field>tag.Example
<kanban> <templates> <field name="is_company"/> <t t-name="card"> <field name="name"/> <field t-if="!record.is_company.raw_value" name="parent_id"> </t> </templates> </kanban>
- widget
An object with 2 keys defining the available actions for the user:
editable: true if the user can edit records, false otherwise;deletable: true if the user can delete records, false otherwise.
This is useful to conditionally display elements requiring specific access rights.
Example
<kanban> <templates> <t t-name="card"> <field name="name"/> </t> <t t-name="menu"> <a t-if="widget.deletable" role="menuitem" type="delete" class="dropdown-item">Delete</a> </t> </templates> </kanban>
- context
Az aktuális kontextus, amely vagy a kanban nézetet megnyitó műveletből, vagy az egy az egyhez vagy sok az egyhez mezőből származik, amely a kanban nézetet egy űrlap nézetbe ágyazza.
- read_only_mode
Indicates that the view is readonly.
- típus
- selection_mode
Whether the kanban view is opened when selecting a many2one or many2many field (in mobile environment).
- típus
- luxon
The luxon object, allowing to manipulate date and datetime field values.
- JSON
The Javascript JSON namespace object containing a
parsemethod allowing to parse json field values into Javascript Objects.
Widgetek¶
The widget element allows to insert dynamically generated (in Javascript) html inside the cards. It
has a mandatory name attribute, referring to a Javascript implementation (an Owl component)
registered to the view_widgets registry.
See the Widget section to discover various widgets and their options.
Layouts¶
Several card layouts can be easily obtained using standard html elements and Bootstrap utility
classes. By default, the card is a flexbox
container
with column direction.
Example
<kanban>
<templates>
<t t-name="card">
<field class="fw-bold fs-5" name="display_name"/>
<field class="text-muted" name="parent_id"/>
<field name="tag_ids" widget="many2many_tags"/>
</t>
</templates>
</kanban>
The footer html element is styled to stick to the bottom of the card, and is as a flexbox
container with row direction, allowing to easily display several fields on the same line.
Example
<kanban>
<templates>
<t t-name="card">
<field class="fw-bold fs-5" name="display_name"/>
<field class="text-muted" name="parent_id"/>
<field name="tag_ids" widget="many2many_tags"/>
<footer>
<field name="priority" widget="priority"/> <!-- bottom left corner -->
<field class="ms-auto" name="activity_ids" widget="kanban_activity"/> <!-- bottom right corner -->
</footer>
</t>
</templates>
</kanban>
To display some content, like an image, on the side of the card, one can use aside and main html
elements, with the flex-row classname on the card. The main node is a flexbox container like the
card is when there’s no aside.
Example
<kanban>
<templates>
<t t-name="card" class="flex-row">
<aside>
<field name="avatar_128" widget="image" alt="Avatar"/>
</aside>
<main class="ms-2">
<field class="fw-bold fs-5" name="display_name"/>
<field class="text-muted" name="parent_id"/>
<field name="tag_ids" widget="many2many_tags"/>
<footer>
<field name="priority" widget="priority"/>
<field class="ms-auto" name="activity_ids" widget="kanban_activity"/>
</footer>
</main>
</t>
</templates>
</kanban>
Javaslat
The classname o_kanban_aside_full set on the aside element removes the padding so that the
image spreads to the borders of the card.
field: declare more fields to fetch¶
The field element can also be used outside the kanban templates. In that case, it allows to declare fields that are
not displayed in the card, but still need to be fetched, for instance because their value is used
in a t-if condition.
Example
<kanban>
<templates>
<field name="is_company"/>
<t t-name="card">
<field name="name"/>
<field t-if="!record.is_company.raw_value" name="parent_id">
</t>
</templates>
</kanban>
progressbar: haladásjelző sávok megjelenítése az oszlopok tetején¶
The progressbar element is used to define a progress bar to display on top of kanban columns in
grouped kanban views.
<kanban>
<progressbar field="FIELD_NAME"/>
...
</kanban>
A progressbar elem a következő attribútumokkal rendelkezhet:
- field
A mező neve, amely alapján a haladási sáv al-csoportjai alapulnak.
- követelmény
Kötelező
- típus
- colors
A haladási sáv mezőértékeinek hozzárendelése a
muted,success,warningésdangerszínértékekhez.- követelmény
Kötelező
- típus
- sum_field
A mező neve, amelyet a haladási sáv mellett megjelenő összegzéshez használnak. Ha nincs beállítva, akkor a rekordok teljes száma jelenik meg helyette.
- követelmény
Opcionális
- típus
- alapértelmezett
''
Lehetséges szerkezet és megjelenítésének reprezentációja
<kanban>
<progressbar field="activity_state"
colors="{'planned': 'success', 'today': 'warning', 'overdue': 'danger'}"
sum_field="expected_revenue"/>
<templates>
...
</templates>
</kanban>
|
QWeb¶
A QWeb nézetek standard QWeb sablonok sablonok egy nézet arch részében. Nincs specifikus gyökérelemük. Mivel a QWeb nézeteknek nincs specifikus gyökérelemük, típusukat kifejezetten meg kell adni (nem lehet a arch mező gyökéreleméből levezetni).
A QWeb nézeteknek két felhasználási esete van:
használhatók frontend sablonként, ebben az esetben sablon használható rövidítésként.
használhatók tényleges qweb nézetként (akcióban megnyitva), ebben az esetben rendes nézetként kell definiálni őket kifejezett
typemegadásával (nem lehet levezetni) és egy modellel.
A qweb-as-view főbb kiegészítései az alap qweb-as-template-hez képest:
a qweb-as-view különleges esettel rendelkezik egy
<nav>elemre, amely ao_qweb_cp_buttonsCSS osztályt viseli: tartalmának gomboknak kell lennie, amelyeket ki kell vonni és át kell helyezni az irányítópult gombterületére, maga a<nav>el lesz távolítva, ez egy megoldás az irányítópult nézetek még nem létezésérea qweb-as-view renderelés több elemet ad hozzá a standard qweb renderelési kontextushoz:
modela modell, amelyhez a qweb nézet kötődik
domaina keresési nézet által biztosított domain
contexta keresési nézet által biztosított kontextus
recordsegy lusta proxy a
model.search(domain)-hez, ezt akkor használhatja, ha csak iterálni szeretné a rekordokat, és nem kíván bonyolultabb műveleteket végrehajtani (pl. csoportosítás)
a qweb-as-view további renderelési horgokat is biztosít:
_qweb_prepare_context(view_id, domain)előkészíti a qweb-as-view-hez specifikus renderelési kontextustqweb_render_view(view_id, domain)az a metódus, amelyet a kliens hív meg, és amely meghívja a kontextus-előkészítő metódusokat, végül pedig azenv['ir.qweb'].render()-t.
Grafikon¶
A grafikon nézetet aggregációk vizualizálására használják egy adott számú rekord vagy rekordcsoport felett. A gyökéreleme a <graph>, amely a következő attribútumokat veheti fel:
type(opcionális)az egyik a következőkből:
bar(alapértelmezett),pieésline, a használni kívánt grafikon típusastacked(opcionális)csak
bardiagramoknál használatos. Állítsa0-ra, hogy megakadályozza a csoporton belüli oszlopok kezdeti egymásra helyezését.disable_linking(opcionális)állítsa
1-re, hogy megakadályozza a grafikonra kattintások átirányítását a lista nézetreorder(opcionális)ha be van állítva, az x-tengely értékei alapértelmezés szerint a megadott sorrend (
ascvagydesc) szerinti mérésük alapján lesznek rendezve. Csakbaréspiediagramoknál használatos.string(opcionális)a kenyérmorzsákban megjelenített szöveg, amikor a lista nézetre irányít át.
- sample
Legyen-e a nézet feltöltve egy mintarekord készlettel, ha a jelenlegi modellhez nem található rekord.
Ezek a hamis rekordok bizonyos mezőnevek/modellek esetén heuristikákat alkalmaznak. Például a
display_namemező ares.usersmodellen mintaszemélyek neveivel lesz feltöltve, míg azemailmező a[email protected]formátumban lesz.A felhasználó nem tud ezekkel az adatokkal interakcióba lépni, és amint egy művelet végrehajtásra kerül (rekord létrehozása, oszlop hozzáadása, stb.), el lesznek vetve.
- követelmény
Opcionális
- típus
- alapértelmezett
False
A grafikon nézetben csak a field elem engedélyezett, amely a következő attribútumokkal rendelkezhet:
name(kötelező)a nézetben használandó mező neve. Ha csoportosításra használják (nem pedig összesítésre)
invisible(opcionális)ha igaz, a mező sem az aktív mértékekben, sem a választható mértékekben nem jelenik meg.
type(opcionális)ha
measure-re van állítva, a mezőt egy csoporton belüli összesített értékként használják, nem pedig csoportosítási kritériumként. Csak az utolsó ilyen attribútummal rendelkező mezőnél működik, de hasznos más mezők esetén is, amelyek string attribútummal rendelkeznek (lásd alább).interval(opcionális)dátum és datetime mezők esetén a megadott intervallum szerint csoportosít (
day,week,month,quartervagyyear) a konkrét datetime (fix másodperc felbontás) vagy dátum (fix nap felbontás) helyett. Az alapértelmezett amonth.string(opcionális)only used for field with
type="measure". The name that will be used to display the field in the graph view, overrides the default python String attribute of the field.
A mértékek automatikusan generálódnak a modell mezőiből; csak az összesíthető mezők kerülnek felhasználásra. Ezek a mértékek a mező szövegének ábécé sorrendje szerint is rendezve vannak.
Figyelem
a grafikon nézet aggregációi az adatbázis tartalmán történnek, nem tárolt függvénymezők nem használhatók grafikon nézetekben
In Graph views, a field can have a widget attribute to dictate its format.
The widget should be a field formatter, of which the most interesting are
float_time, and monetary.
<field name="working_hours_close" widget="float_time"/>
Pivot¶
A pivot nézetet aggregációk pivot táblázat formájában történő megjelenítésére használják. Gyökéreleme a <pivot>, amely a következő attribútumokat veheti fel:
disable_linking(opcionális)Állítsa
1-re, hogy eltávolítsa a táblázat celláinak listanézetre mutató linkjeit.display_quantity(opcionális)Állítsa
1-re, hogy alapértelmezés szerint megjelenítse a Mennyiség oszlopot.default_order(opcionális)A mérőszám neve és a sorrend (növekvő vagy csökkenő), amelyet alapértelmezett sorrendként használ a nézetben.
<pivot default_order="foo asc"> <field name="foo" type="measure"/> </pivot>
A pivot nézetben az egyetlen megengedett elem a field, amely a következő attribútumokkal rendelkezhet:
name(kötelező)a nézetben használandó mező neve. Ha csoportosításra használják (nem pedig összesítésre)
string(opcionális)a név, amelyet a mező megjelenítésére használnak a pivot nézetben, felülírja a mező alapértelmezett python String attribútumát.
type(opcionális)jelzi, hogy a mezőt csoportosítási kritériumként vagy egy csoporton belüli aggregált értékként kell-e használni. Lehetséges értékek:
row(alapértelmezett)a megadott mező szerint csoportosít, minden csoport saját sort kap.
coloszlop szerinti csoportokat hoz létre
measuremező, amelyet egy csoporton belül kell aggregálni
intervaldátum és időmezők esetén a megadott intervallum szerint csoportosít (
day,week,month,quartervagyyear) a konkrét dátum-idő (rögzített másodperc felbontás) vagy dátum (rögzített nap felbontás) helyett.
invisible(opcionális)ha igaz, a mező sem az aktív mértékek között, sem a választható mértékek között nem jelenik meg (hasznos olyan mezők esetén, amelyek aggregálva nem értelmezhetők, mint például különböző egységekben lévő mezők, pl. € és $).
- sample
Legyen-e a nézet feltöltve egy mintarekord készlettel, ha a jelenlegi modellhez nem található rekord.
Ezek a hamis rekordok bizonyos mezőnevek/modellek esetén heuristikákat alkalmaznak. Például a
display_namemező ares.usersmodellen mintaszemélyek neveivel lesz feltöltve, míg azemailmező a[email protected]formátumban lesz.A felhasználó nem tud ezekkel az adatokkal interakcióba lépni, és amint egy művelet végrehajtásra kerül (rekord létrehozása, oszlop hozzáadása, stb.), el lesznek vetve.
- követelmény
Opcionális
- típus
- alapértelmezett
False
A mértékek automatikusan generálódnak a modell mezőiből; csak az összesíthető mezők kerülnek felhasználásra. Ezek a mértékek a mező szövegének ábécé sorrendje szerint is rendezve vannak.
Figyelem
a grafikon nézethez hasonlóan a pivot az adatbázis tartalmán aggregálja az adatokat, ami azt jelenti, hogy a nem tárolt függvénymezők nem használhatók pivot nézetekben
A Pivot nézetben egy field rendelkezhet widget attribútummal, amely meghatározza annak formátumát. A widgetnek egy mezőformázónak kell lennie, amelyek közül a legérdekesebbek a date, datetime, float_time és monetary.
Például egy munkaidő-nyilvántartás pivot nézet így definiálható:
<pivot string="Timesheet">
<field name="employee_id" type="row"/>
<field name="date" interval="month" type="col"/>
<field name="unit_amount" type="measure" widget="float_time"/>
</pivot>
Naptár¶
A naptár nézetek a rekordokat eseményekként jelenítik meg napi, heti, havi vagy éves naptárban.
Megjegyzés
Alapértelmezés szerint a naptár nézet a jelenlegi dátumra (ma) összpontosít. Megadhat egy konkrét kezdő dátumot az akció kontextusában, hogy beállítsa a naptár kezdeti fókuszát az adott időszakra (lásd mode) ezen dátum körül (a használni kívánt kontextuskulcs az initial_date)
Gyökérelemük a <calendar>. A naptár nézet elérhető attribútumai:
- karakterlánc
string (alapértelmezett:
'')Ez a nézet cím csak akkor jelenik meg, ha egy olyan akciót nyit meg, amelynek nincs neve és amelynek célja «new» (egy párbeszédablak megnyitása)
- létrehoz
bool (alapértelmezett:
True)Rekord létrehozásának letiltása/engedélyezése a nézeten.
- szerkesztés
bool (alapértelmezett:
True)Rekord szerkesztésének letiltása/engedélyezése a nézeten.
- törlés
bool (alapértelmezett:
True)Rekord törlésének letiltása/engedélyezése a nézeten az Action legördülő menün keresztül.
date_start(kötelező)az esemény kezdő dátumát tartalmazó rekord mezőjének neve
date_stopaz esemény befejező dátumát tartalmazó rekord mezőjének neve, ha a
date_stopmeg van adva, a rekordok mozgathatóvá válnak (húzással és ejtéssel) közvetlenül a naptárbandate_delayalternatíva a
date_stop-hoz, az esemény időtartamát adja meg a befejező dátum helyett (mértékegység: nap)coloregy rekordmező neve, amelyet szín szegmentálásra használnak. Az azonos szín szegmensbe tartozó rekordok ugyanazt a kiemelő színt kapják a naptárban, a színek félig véletlenszerűen vannak kiosztva. Az oldalsávban a látható rekord display_name/avatar jelenik meg
form_view_idnézet, amely megnyílik, amikor a felhasználó létrehoz vagy szerkeszt egy eseményt. Vegye figyelembe, hogy ha ez az attribútum nincs beállítva, a naptár nézet visszaesik az aktuális művelet űrlap nézetének azonosítójára, ha van ilyen.
event_open_popupHa az «event_open_popup» opció igazra van állítva, akkor a naptár nézet eseményeket (vagy rekordokat) nyit meg egy FormViewDialog-ban. Ellenkező esetben új űrlap nézetben nyitja meg az eseményeket (do_action használatával)
quick_createlehetővé teszi a gyors-esemény létrehozást kattintásra: csak a felhasználótól kér egy
name-et (a mező, amelybe ez az érték mentésre kerül, arec_namesegítségével szabályozható), és megpróbál egy új eseményt létrehozni csak ezzel és a kattintott esemény időpontjával. Teljes űrlap párbeszédablakra esik vissza, ha a gyors létrehozás sikertelenquick_create_view_idNézet, amely megnyílik, amikor a
quick_createattribútum be van állítva, és a felhasználó eseményt hoz létre az alapértelmezett párbeszédablak helyett.create_name_fielda rekord mezőjének neve, amely a rekord szöveges ábrázolását tartalmazza, ezt használják a rekordok «gyors létrehozás» mechanizmusán keresztül történő létrehozásakor
all_daya rekord egy logikai mezőjének neve, amely jelzi, hogy az adott esemény egész naposként van-e megjelölve (és az időtartam nem releváns)
modeAlapértelmezett megjelenítési mód a naptár betöltésekor. Lehetséges attribútumok:
day,week,month,yearscalesVesszővel elválasztott skálák listája, amelyeket biztosítani kell. Alapértelmezés szerint minden skála elérhető. A lehetséges skálaértékekért lásd a mode-t.
create,deletelehetővé teszi a megfelelő művelet letiltását a nézetben azáltal, hogy a megfelelő attribútumot
falseértékre állítja<field>mezőket deklarál az összesítéshez vagy a kanban logikában való használathoz. Ha a mező egyszerűen megjelenik a naptár kártyákon.
A mezőknek lehetnek további attribútumai:
invisibleuse „True” to hide the value in the cards
avatar_fieldcsak x2many mező esetén, hogy az avatart jelenítse meg a display_name helyett a kártyákon
write_modeléswrite_fieldésfilter_fieldhozzáadhat egy szűrőt, és elmentheti az eredményt a meghatározott modellben, a szűrő hozzáadódik az oldalsávhoz. A
filter_fieldopcionális, és lehetővé teszi annak a mezőnek a megadását, amely a szűrő állapotát fogja tartalmazni.filterséscoloruse „True” to add this field in filter in the sidebar. You can specify a
colorfield used to colorize the checkbox.
Model Commons¶
Tevékenység¶
A Tevékenység nézet a rekordokhoz kapcsolódó tevékenységek megjelenítésére szolgál. Az adatok egy diagramon jelennek meg, ahol a rekordok a sorokat, a tevékenységtípusok pedig az oszlopokat alkotják. Minden sor első cellája egy (testreszabható, lásd templates, hasonlóan a Kanban) kártyát jelenít meg, amely a megfelelő rekordot képviseli. Más cellákra kattintva a rekord azonos típusú tevékenységeinek részletes leírása jelenik meg.
Figyelem
A Tevékenység nézet csak akkor érhető el, ha a mail modul telepítve van, és azoknál a modelleknél, amelyek öröklik a mail.activity.mixin-t.
A Tevékenység nézet gyökéreleme az <activity>, amely a következő attribútumokat fogadja el:
string(kötelező)Egy cím, amelynek le kell írnia a nézetet
A nézeti elem lehetséges gyermekei:
fielddeklarálja a mezőket, amelyeket a tevékenység logikájában használnak. Ha a mező egyszerűen megjelenik a tevékenység nézetben, akkor nem szükséges előre deklarálni.
Lehetséges attribútumok:
name(kötelező)a mező neve, amelyet le kell kérni
templatesmeghatározza a QWeb sablonok sablonokat. A kártyák definíciója több sablonra is osztható a tisztaság érdekében, de az aktivitás nézeteknek legalább egy gyökér sablont
activity-boxkell meghatározniuk, amely minden rekordhoz egyszer megjelenik.Az aktivitás nézet többnyire szabványos javascript qweb-et használ, és a következő kontextus változókat biztosítja (további részletekért lásd: Kanban):
widgeta jelenlegi
ActivityRecord(), amely felhasználható néhány meta-információ lekérésére. Ezek a metódusok közvetlenül elérhetők a sablon kontextusában, és nem szükséges őketwidget-en keresztül elérni.recordegy objektum, amely az összes kért mezőt tartalmazza attribútumként. Minden mezőnek két attribútuma van:
valueésraw_value