Setup guide

Az Odoo telepítésének több módja van, attól függően, hogy milyen felhasználási esetet tervezünk. Az Odoo közösség fejlesztői és az Odoo alkalmazottai számára egyaránt az előnyben részesített módszer a forráskód telepítése (Odoo futtatása a forráskódból).

Fontos

Follow the Környezet beállítása section of the contributing guide to prepare your environment for pushing local changes to the Odoo repositories.

Adapt the environment for the tutorials

By now, you should have downloaded the source code into two local repositories, one for odoo/odoo and one for odoo/enterprise. These repositories are set up to push changes to pre-defined forks on GitHub. This will prove to be convenient when you start contributing to the codebase, but in the scope of following a tutorial, we want to avoid polluting them with training material. Let’s then push your changes in a third repository: odoo/tutorials. Like the first two repositories, it will be part of the addons-path that references all directories containing Odoo modules.

Megjegyzés

Depending on the tutorial that you are following, you might not need to install all the modules that this repository contains.

  1. Ugyanazzal a folyamattal, mint az odoo/odoo és az odoo/enterprise tárolók esetében, klónozza az odoo/tutorials tárolót a gépére:

    $ git clone [email protected]:odoo/tutorials.git
    
  2. Konfigurálja a forkját és a Git-et, hogy a változtatásokat a forkjára küldje, ne pedig a fő kódbázisra. Ha az Odoo-nál dolgozik, konfigurálja a Git-et, hogy a változtatásokat a odoo-dev fiókon létrehozott megosztott forkra küldje.

    1. Látogass el a github.com/odoo/tutorials oldalra, és kattints a Fork gombra, hogy létrehozd a forkot a fiókodban.

    2. Az alábbi parancsban cseréld le a <your_github_account> részt annak a GitHub fióknak a nevére, amelyen létrehoztad a forkot.

      $ cd /TutorialsPath
      $ git remote add dev [email protected]:<your_github_account>/tutorials.git
      

Ennyi az egész! A környezeted most már készen áll arra, hogy az Odoo-t a forrásokból futtasd, és sikeresen létrehoztál egy adattárat, amely kiegészítő könyvtárként szolgál. Ez lehetővé teszi, hogy a munkádat feltöltsd a GitHub-ra.

Fontos

Csak Odoo alkalmazottak számára:

  1. Győződj meg róla, hogy nagyon alaposan elolvasod a Tegye meg az első hozzájárulását részt. Különösen fontos, hogy az ágad neve kövesse a konvencióinkat.

  2. Once you have pushed your first change to the shared fork on odoo-dev, create a PR. Please put your quadrigram in the PR title (e.g., „abcd - Technical Training”).

    Ez lehetővé teszi, hogy megoszd a közelgő munkádat, és visszajelzést kapj a mentoroktól. A folyamatos visszajelzési kör biztosítása érdekében javasoljuk, hogy amint befejezel egy fejezetet a tutorialból, tölts fel egy új commitot. Ne feledd, hogy a PR automatikusan frissül a odoo-dev-re feltöltött commitokkal, nem szükséges több PR-t nyitnod.

  3. Az Odoo-nál széles körben használjuk a Runbot eszközt a CI tesztjeinkhez. Amikor feltöltöd a változtatásaidat a odoo-dev-re, a Runbot új buildet hoz létre, és teszteli a kódodat. Bejelentkezés után láthatod az ágaidat a Tutorials project oldalon.

Megjegyzés

A tárolók fájlrendszerbeli konkrét elhelyezkedése nem létfontosságú. Az egyszerűség kedvéért azonban feltételezzük, hogy az összes tárolót ugyanazon könyvtár alá klónoztad. Ha ez nem így van, győződj meg róla, hogy a következő parancsokat ennek megfelelően módosítod, megadva a megfelelő relatív elérési utat az odoo/odoo tárolótól az odoo/tutorials tárolóig.

Indítsa el a szervert

Indítás odoo-bin-nel

Miután az összes függőség be van állítva, az Odoo elindítható az odoo-bin futtatásával, amely a szerver parancssori felülete.

$ cd $HOME/src/odoo/
$ ./odoo-bin --addons-path="addons/,../enterprise/,../tutorials" -d rd-demo

Több parancssori argumentum is használható a szerver futtatásához. Ebben a képzésben csak néhányra lesz szüksége.

-d <database>

Az adatbázis, amelyet használni fognak.

--addons-path <directories>

Vesszővel elválasztott könyvtárlisták, ahol a modulok tárolva vannak. Ezeket a könyvtárakat átvizsgálják modulok után.

--limit-time-cpu <limit>

Megakadályozza, hogy a munkavállaló több mint <limit> CPU másodpercet használjon fel minden kéréshez.

--limit-time-real <limit>

Megakadályozza, hogy a munkavállaló több mint <limit> másodpercet vegyen igénybe egy kérés feldolgozásához.

Javaslat

  • A --limit-time-cpu és --limit-time-real argumentumok használhatók annak megakadályozására, hogy a munkavállalót megöljék a forráskód hibakeresése során.

  • Hiba léphet fel, amely hasonló az AttributeError: module '<MODULE_NAME>' has no attribute '<$ATTRIBUTE'> hibához. Ebben az esetben szükség lehet a modul újratelepítésére a $ pip install --upgrade --force-reinstall <MODULE_NAME> parancs segítségével.
    Ha ez a hiba több modulnál is előfordul, szükség lehet az összes követelmény újratelepítésére a következő parancs használatával: $ pip install --upgrade --force-reinstall -r requirements.txt.
    A probléma megoldásához törölheti a python gyorsítótárat is:
    $ cd $HOME/.local/lib/python3.8/site-packages/
    $ find -name '*.pyc' -type f -delete
    
  • Más gyakran használt argumentumok:

    • -i: Néhány modul telepítése a szerver futtatása előtt (vesszővel elválasztott lista). Ez egyenértékű azzal, hogy a felhasználói felületen a Alkalmazások menüpontra megy, és onnan telepíti a modult.

    • -u: Néhány modul frissítése a szerver futtatása előtt (vesszővel elválasztott lista). Ez egyenértékű azzal, hogy a felhasználói felületen a Alkalmazások menüpontra megy, kiválaszt egy modult, és onnan frissíti azt.

Jelentkezzen be az Odoo-ba

Nyissa meg a http://localhost:8069/ címet a böngészőjében. Ajánljuk a Chrome, Firefox vagy bármely más fejlesztői eszközökkel rendelkező böngésző használatát.

Az adminisztrátor felhasználóként való bejelentkezéshez használja a következő hitelesítő adatokat:

  • email: admin

  • jelszó: admin

Fejlesztői mód engedélyezése

The developer or debug mode is useful for training as it gives access to additional (advanced) tools. Enable the developer mode now. Choose the method that you prefer; they are all equivalent.

Extra eszközök

Hasznos Git parancsok

Íme néhány hasznos Git parancs a mindennapi munkájához.

  • Ágak váltása:
    Amikor ágakat vált, mindkét adattárnak (odoo és enterprise) szinkronizáltnak kell lennie, azaz mindkettőnek ugyanabban az ágban kell lennie.
    $ cd $HOME/src/odoo
    $ git switch 18.0
    
    $ cd $HOME/src/enterprise
    $ git switch 18.0
    
  • Lekérés és újraalapozás:

    $ cd $HOME/src/odoo
    $ git fetch --all --prune
    $ git rebase --autostash odoo/18.0
    
    $ cd $HOME/src/enterprise
    $ git fetch --all --prune
    $ git rebase --autostash enterprise/18.0
    

Kódszerkesztő

Ha az Odoo-nál dolgozik, sok kollégája használja a VSCode, VSCodium (a nyílt forráskódú megfelelője), PyCharm vagy Sublime Text szerkesztőket. Azonban szabadon választhatja meg a preferált szerkesztőjét.

Fontos, hogy helyesen konfigurálja a lintereket. A linter használata segít a szintaktikai és szemantikai figyelmeztetések vagy hibák megjelenítésével. Az Odoo forráskód igyekszik tiszteletben tartani a Python és JavaScript szabványait, de néhányat figyelmen kívül lehet hagyni.

Python esetében a PEP8-at használjuk ezekkel a figyelmen kívül hagyott opciókkal:

  • E501: túl hosszú sor

  • E301: 1 üres sor várt, 0 található

  • E302: 2 üres sor várt, 1 található

JavaScript esetében az ESLint-et használjuk, és itt található egy konfigurációs fájl példa.

PostgreSQL adminisztrátori eszközök

A PostgreSQL adatbázisokat kezelheti parancssorból, ahogy korábban bemutattuk, vagy használhat egy grafikus felhasználói felületű alkalmazást, mint például a pgAdmin vagy a DBeaver.

Ahhoz, hogy a grafikus felhasználói felületű alkalmazást csatlakoztassa az adatbázisához, javasoljuk, hogy Unix socket használatával csatlakozzon.

  • Hosztnév/cím: /var/run/postgresql

  • Port: 5432

  • Felhasználónév: $USER

Python hibakeresés

Ha hibával szembesül, vagy megpróbálja megérteni, hogyan működik a kód, az egyszerű kiíratás sokat segíthet, de egy megfelelő hibakereső sok időt takaríthat meg.

Használhat klasszikus Python könyvtári hibakeresőt (pdb, pudb vagy ipdb), vagy használhatja a szerkesztője hibakeresőjét.

A következő példában az ipdb-t használjuk, de a folyamat hasonló más könyvtárakkal is.

  1. Telepítse a könyvtárat:

    pip install ipdb
    
  2. Helyezzen el egy triggert (töréspontot):

    import ipdb; ipdb.set_trace()
    

    Example

    def copy(self, default=None):
        import ipdb; ipdb.set_trace()
        self.ensure_one()
        chosen_name = default.get('name') if default else ''
        new_name = chosen_name or _('%s (copy)') % self.name
        default = dict(default or {}, name=new_name)
        return super(Partner, self).copy(default)
    

Itt található a parancsok listája:

h(elp) [command]

Nyomtassa ki az elérhető parancsok listáját, ha nincs megadva argumentum. Ha egy parancs van megadva argumentumként, nyomtassa ki a segítséget az adott parancsról.

pp expression

Az expression értéke szépen formázva van kiírva a pprint modul használatával.

w(here)

Nyomtasson ki egy verem nyomkövetést a legfrissebb kerettel alul.

d(own)

Mozgassa az aktuális keretet egy szinttel lejjebb a verem nyomkövetésben (egy újabb kerethez).

u(p)

Mozgassa az aktuális keretet egy szinttel feljebb a verem nyomkövetésben (egy régebbi kerethez).

n(ext)

Folytassa a végrehajtást, amíg el nem éri a következő sort az aktuális függvényben, vagy amíg az vissza nem tér.

c(ontinue)

Folytassa a végrehajtást, és csak akkor álljon meg, ha egy töréspontot talál.

s(tep)

Hajtsa végre az aktuális sort. Álljon meg az első lehetséges alkalommal (akár egy hívott függvényben, akár az aktuális függvény következő sorában).

q(uit)

Kilépés a hibakeresőből. A végrehajtott program megszakad.