Professional Documents
Culture Documents
Odoo Basic
by @mario21ic
Agenda
Introduccin
Configuracin de mdulos
Creacin de un mdulo
Definicin de menu, action, vista
Fundamentos bsicos 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 mtodos
Instalacin - Paquetera
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
Instalacin - 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
Instalacin - Docker-compose
Crear archivo:
docker-compose.yml
Luego ejecutar:
$ docker-compose up
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
Creating database
Quick tour
Technical features
Technical features
Estructura de un mdulo
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
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="Todo 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="ToDo 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 - 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 - 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:
Char
Boolean
Integer
Float
Text
Selection
Date / Datetime
* Computed
Mas info:
https://www.odoo.com/documentation/8.0/reference/orm.html#fields
Field - Selection
Actualizar module, listar y crear:
Ejercicios
Agregarle un campo de tipo fecha.
Al mdulo crearle un acceso desde el men
principal
Agregarle un campo tipo selection que sea
generado dinamicamente.