Está en la página 1de 38

odooerpcloud.com | praxyaformaplus.

com 1

BECOME AN ODOO DEVELOPER


Juan Carlos Montoya
odooerpcloud.com | praxyaformaplus.com 2

M5 Odoo Apps
odooerpcloud.com | praxyaformaplus.com 3

M5 - Creando
Odoo Apps
odooerpcloud.com | praxyaformaplus.com 4

✪ Modelos
✪ Vistas Acciones y Menús
odooerpcloud.com | praxyaformaplus.com 5

M5 - Creando Odoo Apps

✪ Guidelines (Normas de desarrollo):

https://www.odoo.com/documentation/13.0/reference/guidelin
es.html
odooerpcloud.com | praxyaformaplus.com 6

M5 - Creando Odoo Apps

✪ Guidelines
✪ Estándar de desarrollo para Odoo
✪ Estructura de un módulo
✪ Modelos Python
✪ Tipos de campos
✪ Atributos de los campos
odooerpcloud.com | praxyaformaplus.com 7

M5 - Creando Odoo Apps / Guidelines


✪ Nombres de Clases en CamelCase → ResPartner
✪ Métodos snake_case → check_total(self, val1,…)
✪ Variables snake_case → account_id = 145
✪ XML snake_case → product_test_shop_1
odooerpcloud.com | praxyaformaplus.com 8

✪ Herencia XML, el id al contiene el nombre del modulo


seguido de un punto y su id original.
inherit_id=”res_partner.res_partner_form_view”

✪ Líneas de 79 caracteres máximo de longitud en Python.


✪ Comentarios Python (#) (“”” bloques ”””)
✪ Importar las librerías del sistema primero, después las de
Odoo
odooerpcloud.com | praxyaformaplus.com 9

✪ Usar espacios o tabulaciones (nunca mezclar)


✪ En las vistas Qweb definimos siempre ids o clases css para
localizar más fácil con xpath o jquery dependiendo del lado
cliente o servidor.

✪ Dejar un línea en blanco al final en los ficheros .py


✪ PEP8 para correcciones y validaciones de código Python (Es
bueno conocerlas, pero si usamos un editor estilo Pycharm nos
formatea el código adecuadamente al Estándar PEP8).
odooerpcloud.com | praxyaformaplus.com 10

✪ Guidelines
✪ Estándar de desarrollo para Odoo
✪ Estructura de un módulo
✪ Modelos Python
✪ Tipos de campos
✪ Atributos de los campos
11

M5 - Creando Odoo Apps


✪ Estructura de un módulo
odooerpcloud.com | praxyaformaplus.com 12

M5 - Creando Odoo Apps


✪ Estructura de un módulo
Campo OBS
controllers Controladores python (website)

i18n Traducciones modulo

models Modelos python

security Ficheros seguridad (permisos, grupos, reglas, etc.)

static Elementos, imágenes, estilos, *.js

views Ficheros xml vistas, templates.

__manifest__ Metainformación modulo

__init__ Cada folder del modulo que contenga python


tendrá que tener uno con las librerías a importar
odooerpcloud.com | praxyaformaplus.com 13

M5 - Creando Odoo Apps


✪ Guidelines
✪ Estructura de un módulo
✪ Modelos Python
✪ Tipos de campos
✪ Atributos de los campos
odooerpcloud.com | praxyaformaplus.com 14

M5 - Creando Odoo Apps


✪ Modelos Python
✪ Clases en python que pueden traducirse en una tabla SQL
mas tarde (Modelos con persistencia)

Estas clases contienen una serie de atributos, métodos por defecto


dependiendo del tipo de herencia que hagamos.
odooerpcloud.com | praxyaformaplus.com 15

M5 - Creando Odoo Apps


✪ Modelos Python / Atributos especiales
Campo Tipo OBS
_name Especial Nombre de la tabla en SQL

_inherit Especial Herencia de modelos

Id Integer Id registro autoincremental

create_date Datetime Fecha creación

write_date Datetime Fecha modificación

create_uid Integer Id creador registro

write_uid Integer Id modificador registro


odooerpcloud.com | praxyaformaplus.com 16

M5 - Creando Odoo Apps


✪ Modelos Python product_template (PostgreSQL)
Id Integer not null autoinc.
create_date Timestamp
write_date Timestamp
create_uid Integer
write_uid Integer
code char
list_Price numeric
odooerpcloud.com | praxyaformaplus.com 17

M5 - Creando Odoo Apps


✪ Modelos Python / imports
✪ El Framework de Odoo nos proporciona una serie de
Herramientas y librerías para generar dichos modelos.

Estas librerías se deberán importar al inicio de un fichero .py


antes de declarar cualquier clase o función Python.
odooerpcloud.com | praxyaformaplus.com 18

M5 - Creando Odoo Apps


✪ Modelos Python / importar librerías

odoo (Main)
✪ fields Tipos de datos
✪ models Tipos Modelo (Abstract, Transient, Model
✪ api Decoradores
✪ exceptions Manejo de errores
✪_ Traducciones
odooerpcloud.com | praxyaformaplus.com 19

M5 - Creando Odoo Apps


✪ models

Tipos Modelo:
* Abstract (Memoria)
* Transient (Temporal, “Wizards”)
* Model (Persistente)
odooerpcloud.com | praxyaformaplus.com 20

M5 - Creando Odoo Apps


✪ Guidelines
✪ Estructura de un módulo
✪ Modelos Python
✪ Tipos de campos
✪ Atributos de los campos
odooerpcloud.com | praxyaformaplus.com 21

M5 - Creando Odoo Apps


✪ Tipos de campos
Fields.py
✪ Float Decimales, coma flotante
✪ Integer Entero
✪ Monetary Especial valores monetarios (>= v9.0)
✪ Char Texto
✪ Text Texto
✪ Html Texto enriquecido
✪ Selection Dropdown
✪ Date Fecha simple
✪ Datetime Fecha + hora
✪ Binary Binarios, ficheros
✪ Boolean (True/False)
odooerpcloud.com | praxyaformaplus.com 22

M5 - Creando Odoo Apps


✪ Guidelines
✪ Estructura de un módulo
✪ Modelos Python
✪ Tipos de campos
✪ Atributos de los campos
23

M5 - Creando Odoo Apps


✪ Atributos de campo
Field Attributes
✪ string Nombre / Tag
✪ help “Tooltip”
✪ related Campos relacionados
✪ compute Campos calculados
✪ readonly Solo lectura
✪ required Obligatorio
✪ default Valores por defecto
✪ copy Se puede copiar (True, False)
✪ states Estado accesibilidad de los campos
✪ groups Grupos seguridad
odooerpcloud.com | praxyaformaplus.com 24

M5 - Creando Odoo Apps


✪ Práctica en vivo

LIVE TUTORIAL
odooerpcloud.com | praxyaformaplus.com 25

Views
odooerpcloud.com | praxyaformaplus.com 26

Menú Acción View Model


odooerpcloud.com | praxyaformaplus.com 27

Views

✪ Declaración de una vista


✪ Tipos de vistas
✪ Acciones
✪ Menús
odooerpcloud.com | praxyaformaplus.com 28

Views

✪ Declaración de una vista


Tag XML Attribute
record id: xml id unico
model: ir.ui.view
odooerpcloud.com | praxyaformaplus.com 29

Views

✪ Declaración de una vista


Fields Descripción
name Nombre de la vista
model Modelo de datos donde se representará la vista
arch Estructura de una vista
inherit_id Para aplicar herencia XML
odooerpcloud.com | praxyaformaplus.com 30

Views
✪ Declaración de una vista
✪ Tipos de vistas
✪ Acciones
✪ Menús
odooerpcloud.com | praxyaformaplus.com 31

Views / Form
odooerpcloud.com | praxyaformaplus.com 32

Views / Tree
odooerpcloud.com | praxyaformaplus.com 33

Views
✪ Declaración de una vista
✪ Tipos de vistas
✪ Acciones
✪ Menús
odooerpcloud.com | praxyaformaplus.com 34

Views / Action
odooerpcloud.com | praxyaformaplus.com 35

Views
✪ Declaración de una vista
✪ Tipos de vistas
✪ Acciones
✪ Menús
odooerpcloud.com | praxyaformaplus.com 36

Views / Menús
odooerpcloud.com | praxyaformaplus.com 37

Views
✪ Práctica en vivo de todo el capítulo

LIVE TUTORIAL
38

Final M5
✪ Preguntas y respuestas

También podría gustarte