Creació de mòduls
OpenObject
Model, Vista, Controlador
La base de dades
Noms dels models
Odoo possibilita recuperar el nom del model que defineix la informació d’un formulari i el nom dels ‘fields’ corresponents a cada camp del formulari.
Models vs Taules
Observant una taula
\d res_partner
Per a veure el nom de la classe
Cal activar el mode desenvolupador
Estructura dels mòduls
Crear un mòdul nou
__init__.py
import openacademy�
__odoo__.py
Diccionari Python literal, és responsable de:
__odoo__.py
{� 'name' : "OpenAcademy",� 'version' : "1.0",� 'author' : "Odoo SA",� 'category' : "Tools",� 'depends' : ['mail'],� 'data' : [� 'openacademy_view.xml',� 'openacademy_data.xml',� 'report/module_report.xml',� 'wizard/module_wizard.xml',� ],� 'demo' : ['openacademy_demo.xml'],� 'installable': True,�}
Models
account.transfer: una transferència de diners�account.invoice: una factura�account.invoice.line: una línia de factura�
Fitxers XML
El primer mòdul
Creació d’un mòdul molt simple amb un poc de tot per poder començar a treballar. Més endavant es veurà cada part per separat i en detall.
Depuració Odoo
odoo -u mòdul -d empresa
Empresa de proves
En Odoo, cada empresa té una base de dades.
Podem crear una base de dades en la interfície web o per terminal:
$ odoo -d demodb
En l’empresa de proves, afegirem les dades d’exemple.
Creació d’un mòdul buit
odoo scaffold <module name> <where to put it>
odoo scaffold openacademy ./modules
odoo -d demo3 --addons-path="/var/lib/odoo/modules,./addons" --save
(Este comandament està fet des de la ruta d’instal·lació d’Odoo)
odoo -d empresa -u modul
Analitzem els fitxers resultants
Creació del model
Podem afegir al .py del nostre mòdul buit un model paregut a este:
from openerp import models, fields, api��class Course(models.Model):� _name = 'openacademy.course'�� name = fields.Char(string="Title", required=True)� description = fields.Text()�
Observar el resultat
Els permisos
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_prova_prova,prova.prova,model_prova_prova,,1,0,0,0
El menú
En un fitxer xml:
<?xml version="1.0" encoding="UTF-8"?>�<openerp>� <data>� <record model="ir.actions.act_window" id="course_list_action">� <field name="name">Courses</field>� <field name="res_model">openacademy.course</field>� <field name="view_type">form</field>� <field name="view_mode">tree,form</field>� <field name="help" type="html">� <p class="oe_view_nocontent_create">Create the first course</p>� </field>� </record>� <menuitem id="main_openacademy_menu" name="Open Academy"/>� <menuitem id="openacademy_menu" name="Open Academy" parent="main_openacademy_menu"/>� <menuitem id="courses_menu" name="Courses" parent="openacademy_menu" action="course_list_action"/>
</data>�</openerp>
Dades d’exemple
<record model="openacademy.course" id="course0">� <field name="name">Course 0</field>� <field name="description">Course 0's description��Can have multiple lines� </field>� </record>� <record model="openacademy.course" id="course1">� <field name="name">Course 1</field>� <!-- no description for this one -->� </record>� <record model="openacademy.course" id="course2">� <field name="name">Course 2</field>� <field name="description">Course 2's description</field>� </record>�