SlideShare una empresa de Scribd logo
Development
Odoo Basic
by @mario21ic
Agenda
●  Introducción
●  Configuración de módulos
●  Creación de un módulo
●  Definición de menu, action, vista
●  Fundamentos básicos de objetos
●  Vistas bussiness document
¿Qué es?
●  ERP + CMS
●  MVC
●  OpenObject
●  Python
●  PostgreSQL
●  Flexible
●  OpenSource
Arquitectura
Modelo MVC
•  Model: todo_model.py
•  View: todo_view.xml
•  Controller: ORM y métodos
●  Debian/Ubuntu derivados:
Descargar de:
http://nightly.odoo.com/8.0/nightly/deb/odoo_8.0.latest_all.deb
$ sudo dpkg –i odoo*.deb
$ sudo apt-get install -f
●  RedHat/CentOS/Fedora derivados:
Descargar de:
http://nightly.odoo.com/8.0/nightly/rpm/odoo_8.0.latest.noarch.rpm
$ sudo rpm –Uvh odoo*.rpm
Instalación - Paquetería
Instalación - Docker
●  PostgreSQL:
$ docker run -d -e POSTGRES_USER=odoo -e
POSTGRES_PASSWORD=odoo --name db postgres
●  Odoo:
$ docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db -
t odoo
●  Acciones:
$ docker stop|start|restart odoo
Instalación - Docker-compose
web:
image: odoo:8
volumes:
- ./todo_app:/mnt/extra-addons/todo_app
links:
- db
ports:
- "8069:8069"
db:
image: postgres:latest
environment:
POSTGRES_USER: odoo
POSTGRES_PASSWORD: odoo
Luego ejecutar:
$ docker-compose up
Crear archivo:
docker-compose.yml
Creating database
Quick tour
Technical features
Technical features
Estructura de un módulo
nombre_modulo/
security/
ir.model.access.csv
i18n/
es_PE.po
submodulo/
__init__.py
submodulo.py
modulo_view.xml
modulo.py
__init__.py
__openerp__.py
__openerp__.py
{
'name': 'To-Do Application',
'description': 'Maneja tus tareas personales',
'author': 'taller',
'depends': [’mail'],
'application': True,
}
https://www.odoo.com/documentation/8.0/reference/module.html
Actualizando lista de módulos
Instalando module
Modelo: todo_model.py
# -*- coding: utf-8 -*-
from openerp import models, fields
class TodoTask(models.Model):
_name = 'todo.task'
name = fields.Char('Description', required=True)
is_done = fields.Boolean('Done?')
active = fields.Boolean('Active?', default=True)
Importando model
•  Archivo __init__.py:
from . import todo_model
Actualizando module
Campos predefinidos
•  id
•  create_date
•  create_uid
•  write_date
•  write_uid
View - Structure
•  Archivo todo_view.xml:
<?xml version="1.0"?>
<openerp>
<data>
<!-- Data -->
</data>
</openerp>
View - Action
•  Agregamos action:
<!-- Action to open To-do Task list -->
<act_window id="action_todo_task" name="To-
do Task" res_model="todo.task"
view_mode="tree,form" />
View - Menu
•  Agregamos menu:
<!-- Menu item to open To-do Task list -->
<menuitem id="menu_todo_task" name="To-
Do Tasks" parent="mail.mail_feeds"
sequence="20" action="action_todo_task" />
Activando todo_view.xml
•  Agregar en __openerp__.py
‘data': ['todo_view.xml'],
Vista - Tree
Vista - Form
Vista - Form personalizada
•  Agregar el siguiente record:
<record id="view_form_todo_task" model="ir.ui.view”>
<field name="name">To-do Task Form</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<form string="To-do Task”>
<field name="name"/>
<field name="is_done"/>
<field name="active" readonly="1"/>
</form>
</field>
</record>
Vista - Form personalizada
•  Actualizar module y crear:
Vista - Bussines document
<form>
<header>
<!-- Buttons go here -->
</header>
<sheet>
<!-- Content goes here -->
<field name="name"/>
<field name="is_done"/>
</sheet>
</form>
Vista - Buttons
•  Agregar:
<header>
<button name="do_toggle_done" type="object"
string="Toggle Done" class="oe_highlight" />
<button name="do_clear_done" type="object"
string="Clear All Done" />
</header>
Vista - Grupos
<sheet>
<group name="group_top”>
<group name="group_left”>
<field name="name"/>
</group>
<group name="group_right”>
<field name="is_done"/>
<field name="active" readonly="1"/>
</group>
</group>
</sheet>
Vista - Bussines document
•  Actualizar module y crear:
Vista - List
<record id="view_tree_todo_task" model="ir.ui.view”>
<field name="name">To-do Task Tree</field>
<field name="model">todo.task</field>
<field name="arch" type="xml”>
<tree colors="gray:is_done==True”>
<field name="name"/>
<field name="is_done"/>
</tree>
</field>
</record>
Vista - List
•  Actualizar y ver:
Vista - Search
<record id="view_filter_todo_task" model="ir.ui.view”>
<field name="name">To-do Task Filter</field>
<field name="model">todo.task</field>
<field name="arch" type="xml”>
<search>
<field name="name"/>
<filter string="Not Done" domain="[('is_done','=',False)]"/>
<filter string="Done" domain="[('is_done','!=',False)]"/>
</search>
</field>
</record>
Vista - Search
•  Actualizar y buscar:
Agregando lógicade negocio
•  Agregar al inicio de todo_model.py
from openerp import models, fields, api
•  Y como método:
@api.one
def do_toggle_done(self):
self.is_done = not self.is_done
return True
Agregando lógica de negocio
@api.multi
def do_clear_done(self):
done_recs = self.search([('is_done', '=', True)])
done_recs.write({'active': False})
return True
Field - Tipos básicos
•  Char
•  Boolean
•  Integer
•  Float
•  Text
•  Selection
•  Date / Datetime
•  * Computed
Mas info:
https://www.odoo.com/documentation/8.0/reference/orm.html#fields
Field - Agregando un Selection
•  En todo_model.py agregar:
level = fields.Selection((
('0', 'Urgente'), ('1','Alto'), ('2', 'Normal')),
'Prioridad')
•  En todo_view.xml agregar en form y tree:
<field name="level"/>
Field - Selection
Actualizar module, listar y crear:
Ejercicios
•  Agregarle un campo de tipo fecha.
•  Al módulo crearle un acceso desde el menú
principal
•  Agregarle un campo tipo selection que sea
generado dinamicamente.

Más contenido relacionado

La actualidad más candente (8)

DOCX
Biografia jessier quirino
Keda Silva
 
PDF
WebSockets with Spring 4
Sergi Almar i Graupera
 
PDF
Direito do consumidor 03
Onésimo Loureiro
 
PPTX
AL ICT at Aurora Computer Studies
Aurora Computer Studies
 
PDF
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Loiane Groner
 
PPSX
Introdução a Bootstrap 3
Iago Effting
 
PPTX
kintoneの開発プロセスとプロジェクト管理ツール
Yuki Okada
 
PDF
Teoria de Excel
Micheli Wink
 
Biografia jessier quirino
Keda Silva
 
WebSockets with Spring 4
Sergi Almar i Graupera
 
Direito do consumidor 03
Onésimo Loureiro
 
AL ICT at Aurora Computer Studies
Aurora Computer Studies
 
Curso Java Básico Aula 01: Introdução e Dicas para quem está Começando
Loiane Groner
 
Introdução a Bootstrap 3
Iago Effting
 
kintoneの開発プロセスとプロジェクト管理ツール
Yuki Okada
 
Teoria de Excel
Micheli Wink
 

Destacado (9)

PPTX
Timesheet based payroll
Celine George
 
PPTX
How to configure PyCharm for Odoo development in Windows?
Celine George
 
PPTX
Odoo (OpenERP) - Creating a module
Tarun Behal
 
PPTX
Xml operations in odoo
Celine George
 
PPTX
Widgets in odoo
Celine George
 
PPTX
Odoo Web Services
Celine George
 
PDF
Odoo - Create themes for website
Odoo
 
PDF
User Manual For Crafito Odoo Theme
AppJetty
 
PDF
Odoo - Backend modules in v8
Odoo
 
Timesheet based payroll
Celine George
 
How to configure PyCharm for Odoo development in Windows?
Celine George
 
Odoo (OpenERP) - Creating a module
Tarun Behal
 
Xml operations in odoo
Celine George
 
Widgets in odoo
Celine George
 
Odoo Web Services
Celine George
 
Odoo - Create themes for website
Odoo
 
User Manual For Crafito Odoo Theme
AppJetty
 
Odoo - Backend modules in v8
Odoo
 
Publicidad

Similar a Development Odoo Basic (20)

PPTX
DIAPO CAP 12 ODOO CONVERTIRSE EN DESARROLLADOR.pptx
EmilioJoseRodriguezO
 
PDF
ODOO (2).pdf
NLVP2
 
PDF
Prueba-Velneo.pdf
OscarTorrez9
 
PDF
DocOpenERP - Open erp tutorial_basico
Finanzas Empresa - Open ERP
 
PDF
Open ERP Doc-05-open_erp_tutorial_basico
Open ERP Finanzas
 
PPT
DESARROLLO RAPIDO DE APLICACIONES WEB
Javier Condori Flores
 
PPTX
Taller desarrollo de apis
CloudAppi
 
PPT
02 webinar gestion_expedientes_v0.6.1-intix
Roger CARHUATOCTO
 
PDF
Node js mongo crud tareas
LeocadioCruzGarcia
 
PPTX
JSDays Desarrolla tu primera API
CloudAppi
 
PPTX
Mule softmeetupvalencia #06 cómo evolucionar de una api monolítica a orient...
Antonio Martínez Peiró
 
PDF
Interfaz alfresco
Jose Antonio Albalat Almenara
 
PPTX
Diseño de Base de Datos Ragic 101
Ragic
 
PPTX
Alfresco
Francisco De la Hoz
 
PDF
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Juan Carlos Gonzales Vitte.
 
PPTX
Zoho projects app training
Chukalicious
 
PPT
Abap presentacion-ALV_Orientado_a_Objetos.ppt
Edgarpea71
 
PDF
Open erp tutorial_basico
Luz maria Barrera
 
PDF
Open erp tutorial_basico
Cecilia Corazza
 
PDF
Open erp tutorial_basico
Ma Fer Ajoy
 
DIAPO CAP 12 ODOO CONVERTIRSE EN DESARROLLADOR.pptx
EmilioJoseRodriguezO
 
ODOO (2).pdf
NLVP2
 
Prueba-Velneo.pdf
OscarTorrez9
 
DocOpenERP - Open erp tutorial_basico
Finanzas Empresa - Open ERP
 
Open ERP Doc-05-open_erp_tutorial_basico
Open ERP Finanzas
 
DESARROLLO RAPIDO DE APLICACIONES WEB
Javier Condori Flores
 
Taller desarrollo de apis
CloudAppi
 
02 webinar gestion_expedientes_v0.6.1-intix
Roger CARHUATOCTO
 
Node js mongo crud tareas
LeocadioCruzGarcia
 
JSDays Desarrolla tu primera API
CloudAppi
 
Mule softmeetupvalencia #06 cómo evolucionar de una api monolítica a orient...
Antonio Martínez Peiró
 
Diseño de Base de Datos Ragic 101
Ragic
 
Py Qt Desarrollando Aplicaciones De Escritorio El Co Di Go K
Juan Carlos Gonzales Vitte.
 
Zoho projects app training
Chukalicious
 
Abap presentacion-ALV_Orientado_a_Objetos.ppt
Edgarpea71
 
Open erp tutorial_basico
Luz maria Barrera
 
Open erp tutorial_basico
Cecilia Corazza
 
Open erp tutorial_basico
Ma Fer Ajoy
 
Publicidad

Más de Mario IC (20)

PDF
Testing Day Peru 2025 Introducción al testing en Infrastructure as Code
Mario IC
 
PDF
RAG en AWS llevando la IA Generativa al Siguiente Nivel
Mario IC
 
PPTX
Seguridad Digital un encuentro con la Criptografía de la mano de AWS KMS
Mario IC
 
PPTX
AWS Community Day Peru 2024 - Generative IA con AWS Bedrock + Langchain
Mario IC
 
PPTX
Pentesting Kubernetes con AWS EKS GuardDuty Detective ECR e Inspector
Mario IC
 
PPTX
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Mario IC
 
PPTX
Aws Security Latam - Criptografia con KMS
Mario IC
 
PDF
Aws Community Day Guatemala Criptografia con AWS KMS
Mario IC
 
PDF
Testing Ansible Playbook con Molecule + TestInfra
Mario IC
 
PDF
Automatización de tareas con Ansible
Mario IC
 
PDF
Earthly, Dockerfile con esteroides
Mario IC
 
PDF
Infraestructura como Codigo para Developers
Mario IC
 
PDF
Terraspace, the definitive terraform framework
Mario IC
 
PDF
Manejo de packages en Kubernetes con Helm
Mario IC
 
PPTX
Cloud native Computing Perú Octubre
Mario IC
 
PDF
Agiles Peru 2019 - Infrastructure As Code
Mario IC
 
PDF
Workshop Infrastructure as Code - Suestra
Mario IC
 
PDF
Docker Compose to Production with Docker Swarm
Mario IC
 
PDF
GDG Lima - Docker Compose
Mario IC
 
PDF
Docker Lima meetup - 22 de junio
Mario IC
 
Testing Day Peru 2025 Introducción al testing en Infrastructure as Code
Mario IC
 
RAG en AWS llevando la IA Generativa al Siguiente Nivel
Mario IC
 
Seguridad Digital un encuentro con la Criptografía de la mano de AWS KMS
Mario IC
 
AWS Community Day Peru 2024 - Generative IA con AWS Bedrock + Langchain
Mario IC
 
Pentesting Kubernetes con AWS EKS GuardDuty Detective ECR e Inspector
Mario IC
 
Dominando AWS KMS desde cifrado básico hasta firma avanzada - aws community d...
Mario IC
 
Aws Security Latam - Criptografia con KMS
Mario IC
 
Aws Community Day Guatemala Criptografia con AWS KMS
Mario IC
 
Testing Ansible Playbook con Molecule + TestInfra
Mario IC
 
Automatización de tareas con Ansible
Mario IC
 
Earthly, Dockerfile con esteroides
Mario IC
 
Infraestructura como Codigo para Developers
Mario IC
 
Terraspace, the definitive terraform framework
Mario IC
 
Manejo de packages en Kubernetes con Helm
Mario IC
 
Cloud native Computing Perú Octubre
Mario IC
 
Agiles Peru 2019 - Infrastructure As Code
Mario IC
 
Workshop Infrastructure as Code - Suestra
Mario IC
 
Docker Compose to Production with Docker Swarm
Mario IC
 
GDG Lima - Docker Compose
Mario IC
 
Docker Lima meetup - 22 de junio
Mario IC
 

Último (20)

PPTX
teoria de control electronico de motores.pptx
PalaciosSernaqueMisa
 
PPTX
Presentación 4.pptxxxxxxxxxxxxxxxxxxxxxxxxxxx
EduardoManuelPeralta
 
PPTX
Foro 2 -Resolución de casos Empowerment.pptx
f8wvrr8wck
 
PPTX
20200612-Presentación-SEC Inducción-Gral-Final.pptx
Luis Eduardo Chavez Perdomo
 
PPT
Ergonomia laboral enfocado al ambito preventivo
sebastiancastrog05
 
PDF
Cálculo-De-Estructuras-Metálicas para Ingenieros.pdf
Jorge Chavez Rincon
 
PDF
Manual-de-ciudades-Inteligentes-2da-edicion-digital-0.1(1).pdf
ssuser1f0527
 
PDF
Explicacion de motores polifasios de corriente Alterna
julianitslp
 
PPTX
Graficos en el Analisis de Datos con Python
Dare_Devil
 
PPTX
Ese mismo uyiiiiiiiiiiiiiiiiiwwwwwwwwdjjjjjjjjjsaaa
JosiasDiazCuevas
 
PDF
TABLA_DE_dkdksCRIBADO_DEL_TEA_1748219556.pdf
JulyPilarAuquiPongo1
 
PDF
PRESUPUESTO Y CONSTRUCCION Marckual busqueda[1] Sept 2024-feb 2025.pdf
pcorez27
 
PPTX
PPT MINTRONICK comercial proyectos ing.pptx
IsaacFernandoPrezSal1
 
PPTX
3. Plantas de Generación de Energía.pptx
mariourieljuarezrosa
 
PPTX
DIDZENER-07.2025I medidas amperaje rectificador
frank377652
 
PPTX
Notas de importación de mercancías a Colombia.pptx
robertocarlosangel
 
PDF
impactos ambientales del analisis de riesgo
JCarlos186197
 
PDF
PREVENCION Y PROTECCION CONTRA CAIDAS-Modulo 8.pdf
SHMARAESARAESA
 
PDF
5.- PPT - TRÁFICO- PRESENTACIONDE DIAPOS.pdf
Roger Paulo
 
PPTX
Agregados pétreos empleados en ingeniería.pptx
FranciscoPeSa
 
teoria de control electronico de motores.pptx
PalaciosSernaqueMisa
 
Presentación 4.pptxxxxxxxxxxxxxxxxxxxxxxxxxxx
EduardoManuelPeralta
 
Foro 2 -Resolución de casos Empowerment.pptx
f8wvrr8wck
 
20200612-Presentación-SEC Inducción-Gral-Final.pptx
Luis Eduardo Chavez Perdomo
 
Ergonomia laboral enfocado al ambito preventivo
sebastiancastrog05
 
Cálculo-De-Estructuras-Metálicas para Ingenieros.pdf
Jorge Chavez Rincon
 
Manual-de-ciudades-Inteligentes-2da-edicion-digital-0.1(1).pdf
ssuser1f0527
 
Explicacion de motores polifasios de corriente Alterna
julianitslp
 
Graficos en el Analisis de Datos con Python
Dare_Devil
 
Ese mismo uyiiiiiiiiiiiiiiiiiwwwwwwwwdjjjjjjjjjsaaa
JosiasDiazCuevas
 
TABLA_DE_dkdksCRIBADO_DEL_TEA_1748219556.pdf
JulyPilarAuquiPongo1
 
PRESUPUESTO Y CONSTRUCCION Marckual busqueda[1] Sept 2024-feb 2025.pdf
pcorez27
 
PPT MINTRONICK comercial proyectos ing.pptx
IsaacFernandoPrezSal1
 
3. Plantas de Generación de Energía.pptx
mariourieljuarezrosa
 
DIDZENER-07.2025I medidas amperaje rectificador
frank377652
 
Notas de importación de mercancías a Colombia.pptx
robertocarlosangel
 
impactos ambientales del analisis de riesgo
JCarlos186197
 
PREVENCION Y PROTECCION CONTRA CAIDAS-Modulo 8.pdf
SHMARAESARAESA
 
5.- PPT - TRÁFICO- PRESENTACIONDE DIAPOS.pdf
Roger Paulo
 
Agregados pétreos empleados en ingeniería.pptx
FranciscoPeSa
 

Development Odoo Basic

  • 2. Agenda ●  Introducción ●  Configuración de módulos ●  Creación de un módulo ●  Definición de menu, action, vista ●  Fundamentos básicos de objetos ●  Vistas bussiness document
  • 3. ¿Qué es? ●  ERP + CMS ●  MVC ●  OpenObject ●  Python ●  PostgreSQL ●  Flexible ●  OpenSource
  • 5. Modelo MVC •  Model: todo_model.py •  View: todo_view.xml •  Controller: ORM y métodos
  • 6. ●  Debian/Ubuntu derivados: Descargar de: http://nightly.odoo.com/8.0/nightly/deb/odoo_8.0.latest_all.deb $ sudo dpkg –i odoo*.deb $ sudo apt-get install -f ●  RedHat/CentOS/Fedora derivados: Descargar de: http://nightly.odoo.com/8.0/nightly/rpm/odoo_8.0.latest.noarch.rpm $ sudo rpm –Uvh odoo*.rpm Instalación - Paquetería
  • 7. Instalación - Docker ●  PostgreSQL: $ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --name db postgres ●  Odoo: $ docker run -p 127.0.0.1:8069:8069 --name odoo --link db:db - t odoo ●  Acciones: $ docker stop|start|restart odoo
  • 8. Instalación - Docker-compose web: image: odoo:8 volumes: - ./todo_app:/mnt/extra-addons/todo_app links: - db ports: - "8069:8069" db: image: postgres:latest environment: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo Luego ejecutar: $ docker-compose up Crear archivo: docker-compose.yml
  • 13. Estructura de un módulo nombre_modulo/ security/ ir.model.access.csv i18n/ es_PE.po submodulo/ __init__.py submodulo.py modulo_view.xml modulo.py __init__.py __openerp__.py
  • 14. __openerp__.py { 'name': 'To-Do Application', 'description': 'Maneja tus tareas personales', 'author': 'taller', 'depends': [’mail'], 'application': True, } https://www.odoo.com/documentation/8.0/reference/module.html
  • 17. Modelo: todo_model.py # -*- coding: utf-8 -*- from openerp import models, fields class TodoTask(models.Model): _name = 'todo.task' name = fields.Char('Description', required=True) is_done = fields.Boolean('Done?') active = fields.Boolean('Active?', default=True)
  • 18. Importando model •  Archivo __init__.py: from . import todo_model
  • 20. Campos predefinidos •  id •  create_date •  create_uid •  write_date •  write_uid
  • 21. View - Structure •  Archivo todo_view.xml: <?xml version="1.0"?> <openerp> <data> <!-- Data --> </data> </openerp>
  • 22. View - Action •  Agregamos action: <!-- Action to open To-do Task list --> <act_window id="action_todo_task" name="To- do Task" res_model="todo.task" view_mode="tree,form" />
  • 23. View - Menu •  Agregamos menu: <!-- Menu item to open To-do Task list --> <menuitem id="menu_todo_task" name="To- Do Tasks" parent="mail.mail_feeds" sequence="20" action="action_todo_task" />
  • 24. Activando todo_view.xml •  Agregar en __openerp__.py ‘data': ['todo_view.xml'],
  • 27. Vista - Form personalizada •  Agregar el siguiente record: <record id="view_form_todo_task" model="ir.ui.view”> <field name="name">To-do Task Form</field> <field name="model">todo.task</field> <field name="arch" type="xml"> <form string="To-do Task”> <field name="name"/> <field name="is_done"/> <field name="active" readonly="1"/> </form> </field> </record>
  • 28. Vista - Form personalizada •  Actualizar module y crear:
  • 29. Vista - Bussines document <form> <header> <!-- Buttons go here --> </header> <sheet> <!-- Content goes here --> <field name="name"/> <field name="is_done"/> </sheet> </form>
  • 30. Vista - Buttons •  Agregar: <header> <button name="do_toggle_done" type="object" string="Toggle Done" class="oe_highlight" /> <button name="do_clear_done" type="object" string="Clear All Done" /> </header>
  • 31. Vista - Grupos <sheet> <group name="group_top”> <group name="group_left”> <field name="name"/> </group> <group name="group_right”> <field name="is_done"/> <field name="active" readonly="1"/> </group> </group> </sheet>
  • 32. Vista - Bussines document •  Actualizar module y crear:
  • 33. Vista - List <record id="view_tree_todo_task" model="ir.ui.view”> <field name="name">To-do Task Tree</field> <field name="model">todo.task</field> <field name="arch" type="xml”> <tree colors="gray:is_done==True”> <field name="name"/> <field name="is_done"/> </tree> </field> </record>
  • 34. Vista - List •  Actualizar y ver:
  • 35. Vista - Search <record id="view_filter_todo_task" model="ir.ui.view”> <field name="name">To-do Task Filter</field> <field name="model">todo.task</field> <field name="arch" type="xml”> <search> <field name="name"/> <filter string="Not Done" domain="[('is_done','=',False)]"/> <filter string="Done" domain="[('is_done','!=',False)]"/> </search> </field> </record>
  • 36. Vista - Search •  Actualizar y buscar:
  • 37. Agregando lógicade negocio •  Agregar al inicio de todo_model.py from openerp import models, fields, api •  Y como método: @api.one def do_toggle_done(self): self.is_done = not self.is_done return True
  • 38. Agregando lógica de negocio @api.multi def do_clear_done(self): done_recs = self.search([('is_done', '=', True)]) done_recs.write({'active': False}) return True
  • 39. Field - Tipos básicos •  Char •  Boolean •  Integer •  Float •  Text •  Selection •  Date / Datetime •  * Computed Mas info: https://www.odoo.com/documentation/8.0/reference/orm.html#fields
  • 40. Field - Agregando un Selection •  En todo_model.py agregar: level = fields.Selection(( ('0', 'Urgente'), ('1','Alto'), ('2', 'Normal')), 'Prioridad') •  En todo_view.xml agregar en form y tree: <field name="level"/>
  • 41. Field - Selection Actualizar module, listar y crear:
  • 42. Ejercicios •  Agregarle un campo de tipo fecha. •  Al módulo crearle un acceso desde el menú principal •  Agregarle un campo tipo selection que sea generado dinamicamente.