Chapter 6: Basic Views

We have seen in the previous chapter that Odoo is able to generate default views for a given model. In practice, the default view is never acceptable for a business application. Instead, we should at least organize the various fields in a logical manner.

A nézetek XML fájlokban vannak meghatározva, akciókkal és menükkel. Ezek az ir.ui.view modell példányai.

Az ingatlan modulunkban logikus módon kell elrendezni a mezőket:

  • in the list view, we want to display more than just the name.

  • az űrlap nézetben a mezőket csoportosítani kell.

  • a keresési nézetben több szempont alapján kell tudnunk keresni, mint csupán a név. Különösen szeretnénk egy szűrőt az «Elérhető» ingatlanokra, és egy gyorsgombot az irányítószám szerinti csoportosításhoz.

Lista

Referencia: a témával kapcsolatos dokumentáció megtalálható a Lista.

Megjegyzés

Cél: a szakasz végére a lista nézetnek így kell kinéznie:

Lista nézet

List views, also called list views, display records in a tabular form.

Their root element is <list>. The most basic version of this view simply lists all the fields to display in the table (where each field is a column):

<list string="Tests">
    <field name="name"/>
    <field name="last_seen"/>
</list>

A simple example can be found here.

Exercise

Adjon hozzá egy egyedi lista nézetet.

Határozzon meg egy lista nézetet az estate.property modellhez a megfelelő XML fájlban. Ellenőrizze ennek a szakasznak a Célját a megjelenítendő mezőkért.

Tippek:

  • do not add the editable="bottom" attribute that you can find in the example above. We’ll come back to it later.

  • néhány mező címkéjét szükség lehet a referenciához igazítani.

Mint mindig, újra kell indítania a szervert (ne felejtse el a -u opciót) és frissítenie kell a böngészőt az eredmény megtekintéséhez.

Figyelem

Valószínűleg használni fog némi másolást-beillesztést ebben a fejezetben, ezért mindig győződjön meg arról, hogy az id egyedi marad minden nézethez!

Figyelem

Remember to set the correct access rights to the user as explained in the security intro!

The Create button is not shown if the user has only read permission.

Űrlap

Referencia: a témához kapcsolódó dokumentáció megtalálható a Űrlap.

Megjegyzés

Cél: a szakasz végén a form nézetnek így kell kinéznie:

Űrlap nézet

Az űrlapokat egyedi rekordok létrehozására és szerkesztésére használják.

Gyökérelemük a <form>. Magas szintű szerkezeti elemekből (csoportok és jegyzetfüzetek) és interaktív elemekből (gombok és mezők) állnak:

<form string="Test">
    <sheet>
        <group>
            <group>
                <field name="name"/>
            </group>
            <group>
                <field name="last_seen"/>
            </group>
        </group>
        <notebook>
            <page string="Description">
                <field name="description"/>
            </page>
        </notebook>
    </sheet>
</form>

Lehetőség van szokásos HTML címkék, mint például a div és h1, valamint a class attribútum használatára (az Odoo néhány beépített osztályt biztosít) a megjelenés finomhangolásához.

Egy egyszerű példa található itt.

Exercise

Adjon hozzá egy egyedi űrlap nézetet.

Határozzon meg egy űrlap nézetet az estate.property modellhez a megfelelő XML fájlban. Ellenőrizze ennek a szakasznak a Célkitűzés részét az oldal várható végső kialakításához.

Ez némi próbálkozást és hibázást igényelhet, mielőtt elérné a kívánt eredményt ;-) Javasolt, hogy egyszerre csak egy mezőt és címkét adjon hozzá, hogy jobban megértse, hogyan működik.

Annak érdekében, hogy elkerülje a szerver újraindítását minden alkalommal, amikor módosítást végez a nézeten, kényelmes lehet a szerver indításakor a --dev xml paraméter használata:

$ ./odoo-bin --addons-path=addons,../enterprise/,../tutorials/ -d rd-demo -u estate --dev xml

Ez a paraméter lehetővé teszi, hogy csak frissítse az oldalt a nézet módosításainak megtekintéséhez.

Domainek

Referencia: a témához kapcsolódó dokumentáció megtalálható a Keresési tartományok.

Az Odoo-ban a domain feltételeket kódol a rekordokra: a domain egy kritériumlista, amelyet egy modell rekordjainak részhalmazának kiválasztására használnak. Minden kritérium egy hármas, amely tartalmaz egy mezőnevet, egy operátort és egy értéket. Egy rekord akkor elégíti ki a kritériumot, ha a megadott mező megfelel az operátor által az értékre alkalmazott feltételnek.

Például, amikor a Termék modellen használjuk, a következő domain kiválasztja az összes szolgáltatást, amelynek egységára nagyobb, mint 1000:

[('product_type', '=', 'service'), ('unit_price', '>', 1000)]

Alapértelmezés szerint a kritériumok implicit ÉS-sel vannak kombinálva, ami azt jelenti, hogy minden kritériumnak teljesülnie kell ahhoz, hogy egy rekord megfeleljen egy domainnek. A logikai operátorok & (ÉS), | (VAGY) és ! (NEM) használhatók a kritériumok explicit kombinálására. Ezeket előtagként használják (az operátor az argumentumai előtt van, nem közöttük). Például, hogy kiválasszuk azokat a termékeket, «amelyek szolgáltatások VAGY egységáruk NEM esik 1000 és 2000 közé»:

['|',
    ('product_type', '=', 'service'),
    '!', '&',
        ('unit_price', '>=', 1000),
        ('unit_price', '<', 2000)]

Megjegyzés

Az XML nem engedélyezi a < és & használatát XML elemekben. A feldolgozási hibák elkerülése érdekében entitás hivatkozásokat kell használni: &lt; a < és &amp; a & helyett. Más entitás hivatkozások (&gt;, &apos; & &quot;) opcionálisak.

Example

<filter name="negative" domain="[('test_val', '&lt;', 0)]"/>

Exercise

Szűrő és Csoportosítás hozzáadása.

A következőket kell hozzáadni a korábban létrehozott keresési nézethez:

  • egy szűrő, amely megjeleníti az elérhető ingatlanokat, azaz az állapotnak «Új» vagy «Ajánlat érkezett» kell lennie.

  • az eredmények irányítószám szerinti csoportosításának képessége.

Looking good? At this point we are already able to create models and design a user interface which makes sense business-wise. However, a key component is still missing: the link between models.