Odoo
A partir de la versió 8, OpenERP passa a anomenar-se Odoo.
Les novetats que ens interessen més són la possibilitat de crear una web per als clients i les noves funcions de l'API.
El servidor Odoo
El servidor Odoo s'arranca símplement amb el comandament:
$ odoo.py
Tal vegada es necessita ficar la ruta on està instal·lat.
Pot ser que estiga configurat el servici en l'arranc del sistema operatiu. No obstant, si volem depurar, cal parar el servici i arrancar de manera manual.
El servici Odoo proporciona accés als clients via RPC, Odoo proporciona per defecte un client web.
Els mòduls
Tant el servidor com els clients són mòduls. Tots estàn guardats en una base de dades. Tot els que es puga fer per modificar Odoo es fa en mòduls.
Composició d'un mòdul
Els mòduls d'Odoo amplien o modifiquen parts de Model-Vista-Controlador. D'aquesta manera, un mòdul pot tindre:
- Objectes de negoci: Són la part del model, estan definits en classes de Python segons una sintaxy pròpia de l'ORM d'Odoo.
- Fitxers de dades: Són fitxers XML que poden definir dades, vistes o configuracions.
- Controladors web: Gestionen les peticions dels navegadors web.
- Dades estàtiques: Imatges, CSS, o javascript utilitzats per l'interficie web.
Estructura de fitxers d'un mòdul
Tots el mòduls estan en un directori definit en l'opció --addons-path o el fitxer de configuració. Poden ser més d'un directori.
Un mòdul de python es declara en un fitxer de manifest que dona informació sobre el mòdul, el que fa el mòduls dels que depen i cóm s'ha d'instal·lar o actualitzar. [1]
Un mòdul es un paquet de Python que necessita un __init__.py per a instanciar tots els fitxers python.
Creació de mòduls
Per ajudar al programador, Odoo conté un comandament per crear mòduls buits. Aquest crea l'estructura de fitxers necessaria per començar a treballar:
$ odoo.py scaffold <module name> <where to put it>
ORM
Odoo mapeja els seus objectes en una base de dades amb ORM, evitant la majoria de consultes SQL. D'aquesta manera el desenvolupament dels mòduls és molt ràpid i evitem errades de programació.