1. fejezet: Architektúra áttekintése

Többrétegű alkalmazás

Az Odoo többrétegű architektúrát követ, ami azt jelenti, hogy a megjelenítés, az üzleti logika és az adat tárolása elkülönül. Pontosabban, háromrétegű architektúrát használ (kép a Wikipédiáról):

Háromrétegű architektúra

A megjelenítési réteg HTML5, JavaScript és CSS kombinációja. A logikai réteg kizárólag Python nyelven íródott, míg az adat réteg csak a PostgreSQL-t támogatja RDBMS-ként.

A modulod hatókörétől függően az Odoo fejlesztés bármelyik rétegben elvégezhető. Ezért, mielőtt továbbmennél, érdemes lehet felfrissíteni az emlékezetedet, ha nincs középszintű tudásod ezekben a témákban.

Ahhoz, hogy végigmenj ezen az útmutatón, szükséged lesz alapvető HTML ismeretekre és középszintű Python tudásra. A haladó témákhoz több ismeretre lesz szükség más területeken. Számos szabadon hozzáférhető útmutató létezik, így nem tudunk egyet sem különösen ajánlani, mivel ez a háttértudásodtól függ.

Referenciaként ez a hivatalos Python útmutató.

Megjegyzés

A 15.0 verzió óta az Odoo aktívan átáll saját fejlesztésű OWL keretrendszer használatára a megjelenítési réteg részeként. A régi JavaScript keretrendszer továbbra is támogatott, de idővel elavulttá válik. Erről bővebben a haladó témákban lesz szó.

Odoo modulok

Mind a szerver, mind a kliens kiterjesztések modulokként vannak csomagolva, amelyek opcionálisan betöltődnek egy adatbázisba. Egy modul egy adott célra irányuló funkciók és adatok gyűjteménye.

Az Odoo modulok vagy új üzleti logikát adhatnak hozzá egy Odoo rendszerhez, vagy módosíthatják és kiterjeszthetik a meglévő üzleti logikát. Egy modul létrehozható, hogy hozzáadja az országod számviteli szabályait az Odoo általános számviteli támogatásához, míg egy másik modul támogatást adhat egy buszflotta valós idejű vizualizációjához.

Az Odoo-ban minden modulokkal kezdődik és végződik.

Terminológia: a fejlesztők az üzleti funkcióikat Odoo modulokba csoportosítják. A fő felhasználói modulok Alkalmazásokként vannak megjelölve és megjelenítve, de a modulok többsége nem Alkalmazás. A modulokat kiegészítőknek is nevezhetjük, és azok a könyvtárak, ahol az Odoo szerver megtalálja őket, alkotják az addons_path-t.

Egy modul összetétele

Egy Odoo modul tartalmazhat számos elemet:

Üzleti objektumok

Egy üzleti objektum (pl. egy számla) Python osztályként van deklarálva. Az ezekben az osztályokban definiált mezők automatikusan leképeződnek az adatbázis oszlopaira az ORM rétegnek köszönhetően.

Objektum nézetek

UI megjelenítés meghatározása

Adatfájlok

XML vagy CSV fájlok, amelyek a modell adatokat deklarálják:

Webes vezérlők

Kérések kezelése webböngészőkből

Statikus webadatok

A webes felület vagy weboldal által használt képek, CSS vagy JavaScript fájlok

Ezen elemek egyike sem kötelező. Néhány modul csak adatfájlokat adhat hozzá (pl. ország-specifikus könyvelési konfiguráció), míg mások csak üzleti objektumokat adhatnak hozzá. Ezen a képzésen üzleti objektumokat, objektum nézeteket és adatfájlokat fogunk létrehozni.

Modulstruktúra

Minden modul egy könyvtár egy modul könyvtáron belül. A modul könyvtárakat a --addons-path opció használatával lehet megadni.

Egy Odoo modul a manifest által van deklarálva.

Amikor egy Odoo modul üzleti objektumokat (azaz Python fájlokat) tartalmaz, azok Python csomagként vannak szervezve egy __init__.py fájllal. Ez a fájl tartalmazza az import utasításokat a modul különböző Python fájljaihoz.

Íme egy egyszerűsített modul könyvtár:

module
├── models
│   ├── *.py
│   └── __init__.py
├── data
│   └── *.xml
├── __init__.py
└── __manifest__.py

Odoo Kiadások

Az Odoo két verzióban érhető el: Odoo Enterprise (licencelt és megosztott források) és Odoo Community (nyílt forráskódú). A támogatás vagy frissítések mellett az Enterprise verzió további funkciókat biztosít az Odoo számára. Technikai szempontból ezek a funkciók egyszerűen új modulok, amelyeket a Community verzió által biztosított modulok tetejére telepítenek.

Ready to start? It is now time to write your own application!